001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.r4.model.Enumerations.*; 038import ca.uhn.fhir.model.api.annotation.ResourceDef; 039import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.ChildOrder; 042import ca.uhn.fhir.model.api.annotation.Description; 043import ca.uhn.fhir.model.api.annotation.Block; 044import org.hl7.fhir.instance.model.api.*; 045import org.hl7.fhir.exceptions.FHIRException; 046/** 047 * This resource provides payment details and claim references supporting a bulk payment. 048 */ 049@ResourceDef(name="PaymentReconciliation", profile="http://hl7.org/fhir/StructureDefinition/PaymentReconciliation") 050public class PaymentReconciliation extends DomainResource { 051 052 public enum PaymentReconciliationStatus { 053 /** 054 * The instance is currently in-force. 055 */ 056 ACTIVE, 057 /** 058 * The instance is withdrawn, rescinded or reversed. 059 */ 060 CANCELLED, 061 /** 062 * A new instance the contents of which is not complete. 063 */ 064 DRAFT, 065 /** 066 * The instance was entered in error. 067 */ 068 ENTEREDINERROR, 069 /** 070 * added to help the parsers with the generic types 071 */ 072 NULL; 073 public static PaymentReconciliationStatus fromCode(String codeString) throws FHIRException { 074 if (codeString == null || "".equals(codeString)) 075 return null; 076 if ("active".equals(codeString)) 077 return ACTIVE; 078 if ("cancelled".equals(codeString)) 079 return CANCELLED; 080 if ("draft".equals(codeString)) 081 return DRAFT; 082 if ("entered-in-error".equals(codeString)) 083 return ENTEREDINERROR; 084 if (Configuration.isAcceptInvalidEnums()) 085 return null; 086 else 087 throw new FHIRException("Unknown PaymentReconciliationStatus code '"+codeString+"'"); 088 } 089 public String toCode() { 090 switch (this) { 091 case ACTIVE: return "active"; 092 case CANCELLED: return "cancelled"; 093 case DRAFT: return "draft"; 094 case ENTEREDINERROR: return "entered-in-error"; 095 default: return "?"; 096 } 097 } 098 public String getSystem() { 099 switch (this) { 100 case ACTIVE: return "http://hl7.org/fhir/fm-status"; 101 case CANCELLED: return "http://hl7.org/fhir/fm-status"; 102 case DRAFT: return "http://hl7.org/fhir/fm-status"; 103 case ENTEREDINERROR: return "http://hl7.org/fhir/fm-status"; 104 default: return "?"; 105 } 106 } 107 public String getDefinition() { 108 switch (this) { 109 case ACTIVE: return "The instance is currently in-force."; 110 case CANCELLED: return "The instance is withdrawn, rescinded or reversed."; 111 case DRAFT: return "A new instance the contents of which is not complete."; 112 case ENTEREDINERROR: return "The instance was entered in error."; 113 default: return "?"; 114 } 115 } 116 public String getDisplay() { 117 switch (this) { 118 case ACTIVE: return "Active"; 119 case CANCELLED: return "Cancelled"; 120 case DRAFT: return "Draft"; 121 case ENTEREDINERROR: return "Entered in Error"; 122 default: return "?"; 123 } 124 } 125 } 126 127 public static class PaymentReconciliationStatusEnumFactory implements EnumFactory<PaymentReconciliationStatus> { 128 public PaymentReconciliationStatus fromCode(String codeString) throws IllegalArgumentException { 129 if (codeString == null || "".equals(codeString)) 130 if (codeString == null || "".equals(codeString)) 131 return null; 132 if ("active".equals(codeString)) 133 return PaymentReconciliationStatus.ACTIVE; 134 if ("cancelled".equals(codeString)) 135 return PaymentReconciliationStatus.CANCELLED; 136 if ("draft".equals(codeString)) 137 return PaymentReconciliationStatus.DRAFT; 138 if ("entered-in-error".equals(codeString)) 139 return PaymentReconciliationStatus.ENTEREDINERROR; 140 throw new IllegalArgumentException("Unknown PaymentReconciliationStatus code '"+codeString+"'"); 141 } 142 public Enumeration<PaymentReconciliationStatus> fromType(Base code) throws FHIRException { 143 if (code == null) 144 return null; 145 if (code.isEmpty()) 146 return new Enumeration<PaymentReconciliationStatus>(this); 147 String codeString = ((PrimitiveType) code).asStringValue(); 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("active".equals(codeString)) 151 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.ACTIVE); 152 if ("cancelled".equals(codeString)) 153 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.CANCELLED); 154 if ("draft".equals(codeString)) 155 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.DRAFT); 156 if ("entered-in-error".equals(codeString)) 157 return new Enumeration<PaymentReconciliationStatus>(this, PaymentReconciliationStatus.ENTEREDINERROR); 158 throw new FHIRException("Unknown PaymentReconciliationStatus code '"+codeString+"'"); 159 } 160 public String toCode(PaymentReconciliationStatus code) { 161 if (code == PaymentReconciliationStatus.ACTIVE) 162 return "active"; 163 if (code == PaymentReconciliationStatus.CANCELLED) 164 return "cancelled"; 165 if (code == PaymentReconciliationStatus.DRAFT) 166 return "draft"; 167 if (code == PaymentReconciliationStatus.ENTEREDINERROR) 168 return "entered-in-error"; 169 return "?"; 170 } 171 public String toSystem(PaymentReconciliationStatus code) { 172 return code.getSystem(); 173 } 174 } 175 176 @Block() 177 public static class DetailsComponent extends BackboneElement implements IBaseBackboneElement { 178 /** 179 * Code to indicate the nature of the payment, adjustment, funds advance, etc. 180 */ 181 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 182 @Description(shortDefinition="Type code", formalDefinition="Code to indicate the nature of the payment, adjustment, funds advance, etc." ) 183 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/payment-type") 184 protected CodeableConcept type; 185 186 /** 187 * The claim or financial resource. 188 */ 189 @Child(name = "request", type = {Reference.class}, order=2, min=0, max=1, modifier=false, summary=false) 190 @Description(shortDefinition="Claim", formalDefinition="The claim or financial resource." ) 191 protected Reference request; 192 193 /** 194 * The actual object that is the target of the reference (The claim or financial resource.) 195 */ 196 protected Resource requestTarget; 197 198 /** 199 * The claim response resource. 200 */ 201 @Child(name = "response", type = {Reference.class}, order=3, min=0, max=1, modifier=false, summary=false) 202 @Description(shortDefinition="Claim Response", formalDefinition="The claim response resource." ) 203 protected Reference response; 204 205 /** 206 * The actual object that is the target of the reference (The claim response resource.) 207 */ 208 protected Resource responseTarget; 209 210 /** 211 * The Organization which submitted the claim or financial transaction. 212 */ 213 @Child(name = "submitter", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 214 @Description(shortDefinition="Organization which submitted the claim", formalDefinition="The Organization which submitted the claim or financial transaction." ) 215 protected Reference submitter; 216 217 /** 218 * The actual object that is the target of the reference (The Organization which submitted the claim or financial transaction.) 219 */ 220 protected Organization submitterTarget; 221 222 /** 223 * The organization which is receiving the payment. 224 */ 225 @Child(name = "payee", type = {Organization.class}, order=5, min=0, max=1, modifier=false, summary=false) 226 @Description(shortDefinition="Organization which is receiving the payment", formalDefinition="The organization which is receiving the payment." ) 227 protected Reference payee; 228 229 /** 230 * The actual object that is the target of the reference (The organization which is receiving the payment.) 231 */ 232 protected Organization payeeTarget; 233 234 /** 235 * The date of the invoice or financial resource. 236 */ 237 @Child(name = "date", type = {DateType.class}, order=6, min=0, max=1, modifier=false, summary=false) 238 @Description(shortDefinition="Invoice date", formalDefinition="The date of the invoice or financial resource." ) 239 protected DateType date; 240 241 /** 242 * Amount paid for this detail. 243 */ 244 @Child(name = "amount", type = {Money.class}, order=7, min=0, max=1, modifier=false, summary=false) 245 @Description(shortDefinition="Amount being paid", formalDefinition="Amount paid for this detail." ) 246 protected Money amount; 247 248 private static final long serialVersionUID = 661095855L; 249 250 /** 251 * Constructor 252 */ 253 public DetailsComponent() { 254 super(); 255 } 256 257 /** 258 * Constructor 259 */ 260 public DetailsComponent(CodeableConcept type) { 261 super(); 262 this.type = type; 263 } 264 265 /** 266 * @return {@link #type} (Code to indicate the nature of the payment, adjustment, funds advance, etc.) 267 */ 268 public CodeableConcept getType() { 269 if (this.type == null) 270 if (Configuration.errorOnAutoCreate()) 271 throw new Error("Attempt to auto-create DetailsComponent.type"); 272 else if (Configuration.doAutoCreate()) 273 this.type = new CodeableConcept(); // cc 274 return this.type; 275 } 276 277 public boolean hasType() { 278 return this.type != null && !this.type.isEmpty(); 279 } 280 281 /** 282 * @param value {@link #type} (Code to indicate the nature of the payment, adjustment, funds advance, etc.) 283 */ 284 public DetailsComponent setType(CodeableConcept value) { 285 this.type = value; 286 return this; 287 } 288 289 /** 290 * @return {@link #request} (The claim or financial resource.) 291 */ 292 public Reference getRequest() { 293 if (this.request == null) 294 if (Configuration.errorOnAutoCreate()) 295 throw new Error("Attempt to auto-create DetailsComponent.request"); 296 else if (Configuration.doAutoCreate()) 297 this.request = new Reference(); // cc 298 return this.request; 299 } 300 301 public boolean hasRequest() { 302 return this.request != null && !this.request.isEmpty(); 303 } 304 305 /** 306 * @param value {@link #request} (The claim or financial resource.) 307 */ 308 public DetailsComponent setRequest(Reference value) { 309 this.request = value; 310 return this; 311 } 312 313 /** 314 * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The claim or financial resource.) 315 */ 316 public Resource getRequestTarget() { 317 return this.requestTarget; 318 } 319 320 /** 321 * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The claim or financial resource.) 322 */ 323 public DetailsComponent setRequestTarget(Resource value) { 324 this.requestTarget = value; 325 return this; 326 } 327 328 /** 329 * @return {@link #response} (The claim response resource.) 330 */ 331 public Reference getResponse() { 332 if (this.response == null) 333 if (Configuration.errorOnAutoCreate()) 334 throw new Error("Attempt to auto-create DetailsComponent.response"); 335 else if (Configuration.doAutoCreate()) 336 this.response = new Reference(); // cc 337 return this.response; 338 } 339 340 public boolean hasResponse() { 341 return this.response != null && !this.response.isEmpty(); 342 } 343 344 /** 345 * @param value {@link #response} (The claim response resource.) 346 */ 347 public DetailsComponent setResponse(Reference value) { 348 this.response = value; 349 return this; 350 } 351 352 /** 353 * @return {@link #response} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The claim response resource.) 354 */ 355 public Resource getResponseTarget() { 356 return this.responseTarget; 357 } 358 359 /** 360 * @param value {@link #response} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The claim response resource.) 361 */ 362 public DetailsComponent setResponseTarget(Resource value) { 363 this.responseTarget = value; 364 return this; 365 } 366 367 /** 368 * @return {@link #submitter} (The Organization which submitted the claim or financial transaction.) 369 */ 370 public Reference getSubmitter() { 371 if (this.submitter == null) 372 if (Configuration.errorOnAutoCreate()) 373 throw new Error("Attempt to auto-create DetailsComponent.submitter"); 374 else if (Configuration.doAutoCreate()) 375 this.submitter = new Reference(); // cc 376 return this.submitter; 377 } 378 379 public boolean hasSubmitter() { 380 return this.submitter != null && !this.submitter.isEmpty(); 381 } 382 383 /** 384 * @param value {@link #submitter} (The Organization which submitted the claim or financial transaction.) 385 */ 386 public DetailsComponent setSubmitter(Reference value) { 387 this.submitter = value; 388 return this; 389 } 390 391 /** 392 * @return {@link #submitter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Organization which submitted the claim or financial transaction.) 393 */ 394 public Organization getSubmitterTarget() { 395 if (this.submitterTarget == null) 396 if (Configuration.errorOnAutoCreate()) 397 throw new Error("Attempt to auto-create DetailsComponent.submitter"); 398 else if (Configuration.doAutoCreate()) 399 this.submitterTarget = new Organization(); // aa 400 return this.submitterTarget; 401 } 402 403 /** 404 * @param value {@link #submitter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Organization which submitted the claim or financial transaction.) 405 */ 406 public DetailsComponent setSubmitterTarget(Organization value) { 407 this.submitterTarget = value; 408 return this; 409 } 410 411 /** 412 * @return {@link #payee} (The organization which is receiving the payment.) 413 */ 414 public Reference getPayee() { 415 if (this.payee == null) 416 if (Configuration.errorOnAutoCreate()) 417 throw new Error("Attempt to auto-create DetailsComponent.payee"); 418 else if (Configuration.doAutoCreate()) 419 this.payee = new Reference(); // cc 420 return this.payee; 421 } 422 423 public boolean hasPayee() { 424 return this.payee != null && !this.payee.isEmpty(); 425 } 426 427 /** 428 * @param value {@link #payee} (The organization which is receiving the payment.) 429 */ 430 public DetailsComponent setPayee(Reference value) { 431 this.payee = value; 432 return this; 433 } 434 435 /** 436 * @return {@link #payee} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is receiving the payment.) 437 */ 438 public Organization getPayeeTarget() { 439 if (this.payeeTarget == null) 440 if (Configuration.errorOnAutoCreate()) 441 throw new Error("Attempt to auto-create DetailsComponent.payee"); 442 else if (Configuration.doAutoCreate()) 443 this.payeeTarget = new Organization(); // aa 444 return this.payeeTarget; 445 } 446 447 /** 448 * @param value {@link #payee} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is receiving the payment.) 449 */ 450 public DetailsComponent setPayeeTarget(Organization value) { 451 this.payeeTarget = value; 452 return this; 453 } 454 455 /** 456 * @return {@link #date} (The date of the invoice or financial resource.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 457 */ 458 public DateType getDateElement() { 459 if (this.date == null) 460 if (Configuration.errorOnAutoCreate()) 461 throw new Error("Attempt to auto-create DetailsComponent.date"); 462 else if (Configuration.doAutoCreate()) 463 this.date = new DateType(); // bb 464 return this.date; 465 } 466 467 public boolean hasDateElement() { 468 return this.date != null && !this.date.isEmpty(); 469 } 470 471 public boolean hasDate() { 472 return this.date != null && !this.date.isEmpty(); 473 } 474 475 /** 476 * @param value {@link #date} (The date of the invoice or financial resource.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 477 */ 478 public DetailsComponent setDateElement(DateType value) { 479 this.date = value; 480 return this; 481 } 482 483 /** 484 * @return The date of the invoice or financial resource. 485 */ 486 public Date getDate() { 487 return this.date == null ? null : this.date.getValue(); 488 } 489 490 /** 491 * @param value The date of the invoice or financial resource. 492 */ 493 public DetailsComponent setDate(Date value) { 494 if (value == null) 495 this.date = null; 496 else { 497 if (this.date == null) 498 this.date = new DateType(); 499 this.date.setValue(value); 500 } 501 return this; 502 } 503 504 /** 505 * @return {@link #amount} (Amount paid for this detail.) 506 */ 507 public Money getAmount() { 508 if (this.amount == null) 509 if (Configuration.errorOnAutoCreate()) 510 throw new Error("Attempt to auto-create DetailsComponent.amount"); 511 else if (Configuration.doAutoCreate()) 512 this.amount = new Money(); // cc 513 return this.amount; 514 } 515 516 public boolean hasAmount() { 517 return this.amount != null && !this.amount.isEmpty(); 518 } 519 520 /** 521 * @param value {@link #amount} (Amount paid for this detail.) 522 */ 523 public DetailsComponent setAmount(Money value) { 524 this.amount = value; 525 return this; 526 } 527 528 protected void listChildren(List<Property> children) { 529 super.listChildren(children); 530 children.add(new Property("type", "CodeableConcept", "Code to indicate the nature of the payment, adjustment, funds advance, etc.", 0, 1, type)); 531 children.add(new Property("request", "Reference(Any)", "The claim or financial resource.", 0, 1, request)); 532 children.add(new Property("response", "Reference(Any)", "The claim response resource.", 0, 1, response)); 533 children.add(new Property("submitter", "Reference(Organization)", "The Organization which submitted the claim or financial transaction.", 0, 1, submitter)); 534 children.add(new Property("payee", "Reference(Organization)", "The organization which is receiving the payment.", 0, 1, payee)); 535 children.add(new Property("date", "date", "The date of the invoice or financial resource.", 0, 1, date)); 536 children.add(new Property("amount", "Money", "Amount paid for this detail.", 0, 1, amount)); 537 } 538 539 @Override 540 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 541 switch (_hash) { 542 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "Code to indicate the nature of the payment, adjustment, funds advance, etc.", 0, 1, type); 543 case 1095692943: /*request*/ return new Property("request", "Reference(Any)", "The claim or financial resource.", 0, 1, request); 544 case -340323263: /*response*/ return new Property("response", "Reference(Any)", "The claim response resource.", 0, 1, response); 545 case 348678409: /*submitter*/ return new Property("submitter", "Reference(Organization)", "The Organization which submitted the claim or financial transaction.", 0, 1, submitter); 546 case 106443592: /*payee*/ return new Property("payee", "Reference(Organization)", "The organization which is receiving the payment.", 0, 1, payee); 547 case 3076014: /*date*/ return new Property("date", "date", "The date of the invoice or financial resource.", 0, 1, date); 548 case -1413853096: /*amount*/ return new Property("amount", "Money", "Amount paid for this detail.", 0, 1, amount); 549 default: return super.getNamedProperty(_hash, _name, _checkValid); 550 } 551 552 } 553 554 @Override 555 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 556 switch (hash) { 557 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 558 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 559 case -340323263: /*response*/ return this.response == null ? new Base[0] : new Base[] {this.response}; // Reference 560 case 348678409: /*submitter*/ return this.submitter == null ? new Base[0] : new Base[] {this.submitter}; // Reference 561 case 106443592: /*payee*/ return this.payee == null ? new Base[0] : new Base[] {this.payee}; // Reference 562 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateType 563 case -1413853096: /*amount*/ return this.amount == null ? new Base[0] : new Base[] {this.amount}; // Money 564 default: return super.getProperty(hash, name, checkValid); 565 } 566 567 } 568 569 @Override 570 public Base setProperty(int hash, String name, Base value) throws FHIRException { 571 switch (hash) { 572 case 3575610: // type 573 this.type = castToCodeableConcept(value); // CodeableConcept 574 return value; 575 case 1095692943: // request 576 this.request = castToReference(value); // Reference 577 return value; 578 case -340323263: // response 579 this.response = castToReference(value); // Reference 580 return value; 581 case 348678409: // submitter 582 this.submitter = castToReference(value); // Reference 583 return value; 584 case 106443592: // payee 585 this.payee = castToReference(value); // Reference 586 return value; 587 case 3076014: // date 588 this.date = castToDate(value); // DateType 589 return value; 590 case -1413853096: // amount 591 this.amount = castToMoney(value); // Money 592 return value; 593 default: return super.setProperty(hash, name, value); 594 } 595 596 } 597 598 @Override 599 public Base setProperty(String name, Base value) throws FHIRException { 600 if (name.equals("type")) { 601 this.type = castToCodeableConcept(value); // CodeableConcept 602 } else if (name.equals("request")) { 603 this.request = castToReference(value); // Reference 604 } else if (name.equals("response")) { 605 this.response = castToReference(value); // Reference 606 } else if (name.equals("submitter")) { 607 this.submitter = castToReference(value); // Reference 608 } else if (name.equals("payee")) { 609 this.payee = castToReference(value); // Reference 610 } else if (name.equals("date")) { 611 this.date = castToDate(value); // DateType 612 } else if (name.equals("amount")) { 613 this.amount = castToMoney(value); // Money 614 } else 615 return super.setProperty(name, value); 616 return value; 617 } 618 619 @Override 620 public Base makeProperty(int hash, String name) throws FHIRException { 621 switch (hash) { 622 case 3575610: return getType(); 623 case 1095692943: return getRequest(); 624 case -340323263: return getResponse(); 625 case 348678409: return getSubmitter(); 626 case 106443592: return getPayee(); 627 case 3076014: return getDateElement(); 628 case -1413853096: return getAmount(); 629 default: return super.makeProperty(hash, name); 630 } 631 632 } 633 634 @Override 635 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 636 switch (hash) { 637 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 638 case 1095692943: /*request*/ return new String[] {"Reference"}; 639 case -340323263: /*response*/ return new String[] {"Reference"}; 640 case 348678409: /*submitter*/ return new String[] {"Reference"}; 641 case 106443592: /*payee*/ return new String[] {"Reference"}; 642 case 3076014: /*date*/ return new String[] {"date"}; 643 case -1413853096: /*amount*/ return new String[] {"Money"}; 644 default: return super.getTypesForProperty(hash, name); 645 } 646 647 } 648 649 @Override 650 public Base addChild(String name) throws FHIRException { 651 if (name.equals("type")) { 652 this.type = new CodeableConcept(); 653 return this.type; 654 } 655 else if (name.equals("request")) { 656 this.request = new Reference(); 657 return this.request; 658 } 659 else if (name.equals("response")) { 660 this.response = new Reference(); 661 return this.response; 662 } 663 else if (name.equals("submitter")) { 664 this.submitter = new Reference(); 665 return this.submitter; 666 } 667 else if (name.equals("payee")) { 668 this.payee = new Reference(); 669 return this.payee; 670 } 671 else if (name.equals("date")) { 672 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.date"); 673 } 674 else if (name.equals("amount")) { 675 this.amount = new Money(); 676 return this.amount; 677 } 678 else 679 return super.addChild(name); 680 } 681 682 public DetailsComponent copy() { 683 DetailsComponent dst = new DetailsComponent(); 684 copyValues(dst); 685 dst.type = type == null ? null : type.copy(); 686 dst.request = request == null ? null : request.copy(); 687 dst.response = response == null ? null : response.copy(); 688 dst.submitter = submitter == null ? null : submitter.copy(); 689 dst.payee = payee == null ? null : payee.copy(); 690 dst.date = date == null ? null : date.copy(); 691 dst.amount = amount == null ? null : amount.copy(); 692 return dst; 693 } 694 695 @Override 696 public boolean equalsDeep(Base other_) { 697 if (!super.equalsDeep(other_)) 698 return false; 699 if (!(other_ instanceof DetailsComponent)) 700 return false; 701 DetailsComponent o = (DetailsComponent) other_; 702 return compareDeep(type, o.type, true) && compareDeep(request, o.request, true) && compareDeep(response, o.response, true) 703 && compareDeep(submitter, o.submitter, true) && compareDeep(payee, o.payee, true) && compareDeep(date, o.date, true) 704 && compareDeep(amount, o.amount, true); 705 } 706 707 @Override 708 public boolean equalsShallow(Base other_) { 709 if (!super.equalsShallow(other_)) 710 return false; 711 if (!(other_ instanceof DetailsComponent)) 712 return false; 713 DetailsComponent o = (DetailsComponent) other_; 714 return compareValues(date, o.date, true); 715 } 716 717 public boolean isEmpty() { 718 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, request, response 719 , submitter, payee, date, amount); 720 } 721 722 public String fhirType() { 723 return "PaymentReconciliation.detail"; 724 725 } 726 727 } 728 729 @Block() 730 public static class NotesComponent extends BackboneElement implements IBaseBackboneElement { 731 /** 732 * The note purpose: Print/Display. 733 */ 734 @Child(name = "type", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 735 @Description(shortDefinition="display | print | printoper", formalDefinition="The note purpose: Print/Display." ) 736 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/note-type") 737 protected Enumeration<NoteType> type; 738 739 /** 740 * The note text. 741 */ 742 @Child(name = "text", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 743 @Description(shortDefinition="Comment on the processing", formalDefinition="The note text." ) 744 protected StringType text; 745 746 private static final long serialVersionUID = 529250161L; 747 748 /** 749 * Constructor 750 */ 751 public NotesComponent() { 752 super(); 753 } 754 755 /** 756 * @return {@link #type} (The note purpose: Print/Display.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 757 */ 758 public Enumeration<NoteType> getTypeElement() { 759 if (this.type == null) 760 if (Configuration.errorOnAutoCreate()) 761 throw new Error("Attempt to auto-create NotesComponent.type"); 762 else if (Configuration.doAutoCreate()) 763 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); // bb 764 return this.type; 765 } 766 767 public boolean hasTypeElement() { 768 return this.type != null && !this.type.isEmpty(); 769 } 770 771 public boolean hasType() { 772 return this.type != null && !this.type.isEmpty(); 773 } 774 775 /** 776 * @param value {@link #type} (The note purpose: Print/Display.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 777 */ 778 public NotesComponent setTypeElement(Enumeration<NoteType> value) { 779 this.type = value; 780 return this; 781 } 782 783 /** 784 * @return The note purpose: Print/Display. 785 */ 786 public NoteType getType() { 787 return this.type == null ? null : this.type.getValue(); 788 } 789 790 /** 791 * @param value The note purpose: Print/Display. 792 */ 793 public NotesComponent setType(NoteType value) { 794 if (value == null) 795 this.type = null; 796 else { 797 if (this.type == null) 798 this.type = new Enumeration<NoteType>(new NoteTypeEnumFactory()); 799 this.type.setValue(value); 800 } 801 return this; 802 } 803 804 /** 805 * @return {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 806 */ 807 public StringType getTextElement() { 808 if (this.text == null) 809 if (Configuration.errorOnAutoCreate()) 810 throw new Error("Attempt to auto-create NotesComponent.text"); 811 else if (Configuration.doAutoCreate()) 812 this.text = new StringType(); // bb 813 return this.text; 814 } 815 816 public boolean hasTextElement() { 817 return this.text != null && !this.text.isEmpty(); 818 } 819 820 public boolean hasText() { 821 return this.text != null && !this.text.isEmpty(); 822 } 823 824 /** 825 * @param value {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 826 */ 827 public NotesComponent setTextElement(StringType value) { 828 this.text = value; 829 return this; 830 } 831 832 /** 833 * @return The note text. 834 */ 835 public String getText() { 836 return this.text == null ? null : this.text.getValue(); 837 } 838 839 /** 840 * @param value The note text. 841 */ 842 public NotesComponent setText(String value) { 843 if (Utilities.noString(value)) 844 this.text = null; 845 else { 846 if (this.text == null) 847 this.text = new StringType(); 848 this.text.setValue(value); 849 } 850 return this; 851 } 852 853 protected void listChildren(List<Property> children) { 854 super.listChildren(children); 855 children.add(new Property("type", "code", "The note purpose: Print/Display.", 0, 1, type)); 856 children.add(new Property("text", "string", "The note text.", 0, 1, text)); 857 } 858 859 @Override 860 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 861 switch (_hash) { 862 case 3575610: /*type*/ return new Property("type", "code", "The note purpose: Print/Display.", 0, 1, type); 863 case 3556653: /*text*/ return new Property("text", "string", "The note text.", 0, 1, text); 864 default: return super.getNamedProperty(_hash, _name, _checkValid); 865 } 866 867 } 868 869 @Override 870 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 871 switch (hash) { 872 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<NoteType> 873 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 874 default: return super.getProperty(hash, name, checkValid); 875 } 876 877 } 878 879 @Override 880 public Base setProperty(int hash, String name, Base value) throws FHIRException { 881 switch (hash) { 882 case 3575610: // type 883 value = new NoteTypeEnumFactory().fromType(castToCode(value)); 884 this.type = (Enumeration) value; // Enumeration<NoteType> 885 return value; 886 case 3556653: // text 887 this.text = castToString(value); // StringType 888 return value; 889 default: return super.setProperty(hash, name, value); 890 } 891 892 } 893 894 @Override 895 public Base setProperty(String name, Base value) throws FHIRException { 896 if (name.equals("type")) { 897 value = new NoteTypeEnumFactory().fromType(castToCode(value)); 898 this.type = (Enumeration) value; // Enumeration<NoteType> 899 } else if (name.equals("text")) { 900 this.text = castToString(value); // StringType 901 } else 902 return super.setProperty(name, value); 903 return value; 904 } 905 906 @Override 907 public Base makeProperty(int hash, String name) throws FHIRException { 908 switch (hash) { 909 case 3575610: return getTypeElement(); 910 case 3556653: return getTextElement(); 911 default: return super.makeProperty(hash, name); 912 } 913 914 } 915 916 @Override 917 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 918 switch (hash) { 919 case 3575610: /*type*/ return new String[] {"code"}; 920 case 3556653: /*text*/ return new String[] {"string"}; 921 default: return super.getTypesForProperty(hash, name); 922 } 923 924 } 925 926 @Override 927 public Base addChild(String name) throws FHIRException { 928 if (name.equals("type")) { 929 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.type"); 930 } 931 else if (name.equals("text")) { 932 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.text"); 933 } 934 else 935 return super.addChild(name); 936 } 937 938 public NotesComponent copy() { 939 NotesComponent dst = new NotesComponent(); 940 copyValues(dst); 941 dst.type = type == null ? null : type.copy(); 942 dst.text = text == null ? null : text.copy(); 943 return dst; 944 } 945 946 @Override 947 public boolean equalsDeep(Base other_) { 948 if (!super.equalsDeep(other_)) 949 return false; 950 if (!(other_ instanceof NotesComponent)) 951 return false; 952 NotesComponent o = (NotesComponent) other_; 953 return compareDeep(type, o.type, true) && compareDeep(text, o.text, true); 954 } 955 956 @Override 957 public boolean equalsShallow(Base other_) { 958 if (!super.equalsShallow(other_)) 959 return false; 960 if (!(other_ instanceof NotesComponent)) 961 return false; 962 NotesComponent o = (NotesComponent) other_; 963 return compareValues(type, o.type, true) && compareValues(text, o.text, true); 964 } 965 966 public boolean isEmpty() { 967 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, text); 968 } 969 970 public String fhirType() { 971 return "PaymentReconciliation.processNote"; 972 973 } 974 975 } 976 977 /** 978 * The Response business identifier. 979 */ 980 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 981 @Description(shortDefinition="Business Identifier", formalDefinition="The Response business identifier." ) 982 protected List<Identifier> identifier; 983 984 /** 985 * The status of the resource instance. 986 */ 987 @Child(name = "status", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true) 988 @Description(shortDefinition="active | cancelled | draft | entered-in-error", formalDefinition="The status of the resource instance." ) 989 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fm-status") 990 protected Enumeration<PaymentReconciliationStatus> status; 991 992 /** 993 * The period of time for which payments have been gathered into this bulk payment for settlement. 994 */ 995 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 996 @Description(shortDefinition="Period covered", formalDefinition="The period of time for which payments have been gathered into this bulk payment for settlement." ) 997 protected Period period; 998 999 /** 1000 * The date when the resource was created. 1001 */ 1002 @Child(name = "created", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 1003 @Description(shortDefinition="Creation date", formalDefinition="The date when the resource was created." ) 1004 protected DateTimeType created; 1005 1006 /** 1007 * The Insurer who produced this adjudicated response. 1008 */ 1009 @Child(name = "organization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 1010 @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) 1011 protected Reference organization; 1012 1013 /** 1014 * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) 1015 */ 1016 protected Organization organizationTarget; 1017 1018 /** 1019 * Original request resource reference. 1020 */ 1021 @Child(name = "request", type = {ProcessRequest.class}, order=5, min=0, max=1, modifier=false, summary=false) 1022 @Description(shortDefinition="Claim reference", formalDefinition="Original request resource reference." ) 1023 protected Reference request; 1024 1025 /** 1026 * The actual object that is the target of the reference (Original request resource reference.) 1027 */ 1028 protected ProcessRequest requestTarget; 1029 1030 /** 1031 * Transaction status: error, complete. 1032 */ 1033 @Child(name = "outcome", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=false) 1034 @Description(shortDefinition="queued | complete | error | partial", formalDefinition="Transaction status: error, complete." ) 1035 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/remittance-outcome") 1036 protected Enumeration<RemittanceOutcome> outcome; 1037 1038 /** 1039 * A description of the status of the adjudication. 1040 */ 1041 @Child(name = "disposition", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=false) 1042 @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) 1043 protected StringType disposition; 1044 1045 /** 1046 * The practitioner who is responsible for the services rendered to the patient. 1047 */ 1048 @Child(name = "requestProvider", type = {Practitioner.class, PractitionerRole.class, Organization.class}, order=8, min=0, max=1, modifier=false, summary=false) 1049 @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) 1050 protected Reference requestProvider; 1051 1052 /** 1053 * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) 1054 */ 1055 protected Resource requestProviderTarget; 1056 1057 /** 1058 * List of individual settlement amounts and the corresponding transaction. 1059 */ 1060 @Child(name = "detail", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1061 @Description(shortDefinition="List of settlements", formalDefinition="List of individual settlement amounts and the corresponding transaction." ) 1062 protected List<DetailsComponent> detail; 1063 1064 /** 1065 * The form to be used for printing the content. 1066 */ 1067 @Child(name = "form", type = {CodeableConcept.class}, order=10, min=0, max=1, modifier=false, summary=false) 1068 @Description(shortDefinition="Printed Form Identifier", formalDefinition="The form to be used for printing the content." ) 1069 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/forms") 1070 protected CodeableConcept form; 1071 1072 /** 1073 * Total payment amount. 1074 */ 1075 @Child(name = "total", type = {Money.class}, order=11, min=0, max=1, modifier=false, summary=false) 1076 @Description(shortDefinition="Total amount of Payment", formalDefinition="Total payment amount." ) 1077 protected Money total; 1078 1079 /** 1080 * Suite of notes. 1081 */ 1082 @Child(name = "processNote", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1083 @Description(shortDefinition="Processing comments", formalDefinition="Suite of notes." ) 1084 protected List<NotesComponent> processNote; 1085 1086 private static final long serialVersionUID = -973239463L; 1087 1088 /** 1089 * Constructor 1090 */ 1091 public PaymentReconciliation() { 1092 super(); 1093 } 1094 1095 /** 1096 * @return {@link #identifier} (The Response business identifier.) 1097 */ 1098 public List<Identifier> getIdentifier() { 1099 if (this.identifier == null) 1100 this.identifier = new ArrayList<Identifier>(); 1101 return this.identifier; 1102 } 1103 1104 /** 1105 * @return Returns a reference to <code>this</code> for easy method chaining 1106 */ 1107 public PaymentReconciliation setIdentifier(List<Identifier> theIdentifier) { 1108 this.identifier = theIdentifier; 1109 return this; 1110 } 1111 1112 public boolean hasIdentifier() { 1113 if (this.identifier == null) 1114 return false; 1115 for (Identifier item : this.identifier) 1116 if (!item.isEmpty()) 1117 return true; 1118 return false; 1119 } 1120 1121 public Identifier addIdentifier() { //3 1122 Identifier t = new Identifier(); 1123 if (this.identifier == null) 1124 this.identifier = new ArrayList<Identifier>(); 1125 this.identifier.add(t); 1126 return t; 1127 } 1128 1129 public PaymentReconciliation addIdentifier(Identifier t) { //3 1130 if (t == null) 1131 return this; 1132 if (this.identifier == null) 1133 this.identifier = new ArrayList<Identifier>(); 1134 this.identifier.add(t); 1135 return this; 1136 } 1137 1138 /** 1139 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1140 */ 1141 public Identifier getIdentifierFirstRep() { 1142 if (getIdentifier().isEmpty()) { 1143 addIdentifier(); 1144 } 1145 return getIdentifier().get(0); 1146 } 1147 1148 /** 1149 * @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 1150 */ 1151 public Enumeration<PaymentReconciliationStatus> getStatusElement() { 1152 if (this.status == null) 1153 if (Configuration.errorOnAutoCreate()) 1154 throw new Error("Attempt to auto-create PaymentReconciliation.status"); 1155 else if (Configuration.doAutoCreate()) 1156 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); // bb 1157 return this.status; 1158 } 1159 1160 public boolean hasStatusElement() { 1161 return this.status != null && !this.status.isEmpty(); 1162 } 1163 1164 public boolean hasStatus() { 1165 return this.status != null && !this.status.isEmpty(); 1166 } 1167 1168 /** 1169 * @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 1170 */ 1171 public PaymentReconciliation setStatusElement(Enumeration<PaymentReconciliationStatus> value) { 1172 this.status = value; 1173 return this; 1174 } 1175 1176 /** 1177 * @return The status of the resource instance. 1178 */ 1179 public PaymentReconciliationStatus getStatus() { 1180 return this.status == null ? null : this.status.getValue(); 1181 } 1182 1183 /** 1184 * @param value The status of the resource instance. 1185 */ 1186 public PaymentReconciliation setStatus(PaymentReconciliationStatus value) { 1187 if (value == null) 1188 this.status = null; 1189 else { 1190 if (this.status == null) 1191 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); 1192 this.status.setValue(value); 1193 } 1194 return this; 1195 } 1196 1197 /** 1198 * @return {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1199 */ 1200 public Period getPeriod() { 1201 if (this.period == null) 1202 if (Configuration.errorOnAutoCreate()) 1203 throw new Error("Attempt to auto-create PaymentReconciliation.period"); 1204 else if (Configuration.doAutoCreate()) 1205 this.period = new Period(); // cc 1206 return this.period; 1207 } 1208 1209 public boolean hasPeriod() { 1210 return this.period != null && !this.period.isEmpty(); 1211 } 1212 1213 /** 1214 * @param value {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1215 */ 1216 public PaymentReconciliation setPeriod(Period value) { 1217 this.period = value; 1218 return this; 1219 } 1220 1221 /** 1222 * @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 1223 */ 1224 public DateTimeType getCreatedElement() { 1225 if (this.created == null) 1226 if (Configuration.errorOnAutoCreate()) 1227 throw new Error("Attempt to auto-create PaymentReconciliation.created"); 1228 else if (Configuration.doAutoCreate()) 1229 this.created = new DateTimeType(); // bb 1230 return this.created; 1231 } 1232 1233 public boolean hasCreatedElement() { 1234 return this.created != null && !this.created.isEmpty(); 1235 } 1236 1237 public boolean hasCreated() { 1238 return this.created != null && !this.created.isEmpty(); 1239 } 1240 1241 /** 1242 * @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 1243 */ 1244 public PaymentReconciliation setCreatedElement(DateTimeType value) { 1245 this.created = value; 1246 return this; 1247 } 1248 1249 /** 1250 * @return The date when the resource was created. 1251 */ 1252 public Date getCreated() { 1253 return this.created == null ? null : this.created.getValue(); 1254 } 1255 1256 /** 1257 * @param value The date when the resource was created. 1258 */ 1259 public PaymentReconciliation setCreated(Date value) { 1260 if (value == null) 1261 this.created = null; 1262 else { 1263 if (this.created == null) 1264 this.created = new DateTimeType(); 1265 this.created.setValue(value); 1266 } 1267 return this; 1268 } 1269 1270 /** 1271 * @return {@link #organization} (The Insurer who produced this adjudicated response.) 1272 */ 1273 public Reference getOrganization() { 1274 if (this.organization == null) 1275 if (Configuration.errorOnAutoCreate()) 1276 throw new Error("Attempt to auto-create PaymentReconciliation.organization"); 1277 else if (Configuration.doAutoCreate()) 1278 this.organization = new Reference(); // cc 1279 return this.organization; 1280 } 1281 1282 public boolean hasOrganization() { 1283 return this.organization != null && !this.organization.isEmpty(); 1284 } 1285 1286 /** 1287 * @param value {@link #organization} (The Insurer who produced this adjudicated response.) 1288 */ 1289 public PaymentReconciliation setOrganization(Reference value) { 1290 this.organization = value; 1291 return this; 1292 } 1293 1294 /** 1295 * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) 1296 */ 1297 public Organization getOrganizationTarget() { 1298 if (this.organizationTarget == null) 1299 if (Configuration.errorOnAutoCreate()) 1300 throw new Error("Attempt to auto-create PaymentReconciliation.organization"); 1301 else if (Configuration.doAutoCreate()) 1302 this.organizationTarget = new Organization(); // aa 1303 return this.organizationTarget; 1304 } 1305 1306 /** 1307 * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The Insurer who produced this adjudicated response.) 1308 */ 1309 public PaymentReconciliation setOrganizationTarget(Organization value) { 1310 this.organizationTarget = value; 1311 return this; 1312 } 1313 1314 /** 1315 * @return {@link #request} (Original request resource reference.) 1316 */ 1317 public Reference getRequest() { 1318 if (this.request == null) 1319 if (Configuration.errorOnAutoCreate()) 1320 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1321 else if (Configuration.doAutoCreate()) 1322 this.request = new Reference(); // cc 1323 return this.request; 1324 } 1325 1326 public boolean hasRequest() { 1327 return this.request != null && !this.request.isEmpty(); 1328 } 1329 1330 /** 1331 * @param value {@link #request} (Original request resource reference.) 1332 */ 1333 public PaymentReconciliation setRequest(Reference value) { 1334 this.request = value; 1335 return this; 1336 } 1337 1338 /** 1339 * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource reference.) 1340 */ 1341 public ProcessRequest getRequestTarget() { 1342 if (this.requestTarget == null) 1343 if (Configuration.errorOnAutoCreate()) 1344 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1345 else if (Configuration.doAutoCreate()) 1346 this.requestTarget = new ProcessRequest(); // aa 1347 return this.requestTarget; 1348 } 1349 1350 /** 1351 * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource reference.) 1352 */ 1353 public PaymentReconciliation setRequestTarget(ProcessRequest value) { 1354 this.requestTarget = value; 1355 return this; 1356 } 1357 1358 /** 1359 * @return {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value 1360 */ 1361 public Enumeration<RemittanceOutcome> getOutcomeElement() { 1362 if (this.outcome == null) 1363 if (Configuration.errorOnAutoCreate()) 1364 throw new Error("Attempt to auto-create PaymentReconciliation.outcome"); 1365 else if (Configuration.doAutoCreate()) 1366 this.outcome = new Enumeration<RemittanceOutcome>(new RemittanceOutcomeEnumFactory()); // bb 1367 return this.outcome; 1368 } 1369 1370 public boolean hasOutcomeElement() { 1371 return this.outcome != null && !this.outcome.isEmpty(); 1372 } 1373 1374 public boolean hasOutcome() { 1375 return this.outcome != null && !this.outcome.isEmpty(); 1376 } 1377 1378 /** 1379 * @param value {@link #outcome} (Transaction status: error, complete.). This is the underlying object with id, value and extensions. The accessor "getOutcome" gives direct access to the value 1380 */ 1381 public PaymentReconciliation setOutcomeElement(Enumeration<RemittanceOutcome> value) { 1382 this.outcome = value; 1383 return this; 1384 } 1385 1386 /** 1387 * @return Transaction status: error, complete. 1388 */ 1389 public RemittanceOutcome getOutcome() { 1390 return this.outcome == null ? null : this.outcome.getValue(); 1391 } 1392 1393 /** 1394 * @param value Transaction status: error, complete. 1395 */ 1396 public PaymentReconciliation setOutcome(RemittanceOutcome value) { 1397 if (value == null) 1398 this.outcome = null; 1399 else { 1400 if (this.outcome == null) 1401 this.outcome = new Enumeration<RemittanceOutcome>(new RemittanceOutcomeEnumFactory()); 1402 this.outcome.setValue(value); 1403 } 1404 return this; 1405 } 1406 1407 /** 1408 * @return {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 1409 */ 1410 public StringType getDispositionElement() { 1411 if (this.disposition == null) 1412 if (Configuration.errorOnAutoCreate()) 1413 throw new Error("Attempt to auto-create PaymentReconciliation.disposition"); 1414 else if (Configuration.doAutoCreate()) 1415 this.disposition = new StringType(); // bb 1416 return this.disposition; 1417 } 1418 1419 public boolean hasDispositionElement() { 1420 return this.disposition != null && !this.disposition.isEmpty(); 1421 } 1422 1423 public boolean hasDisposition() { 1424 return this.disposition != null && !this.disposition.isEmpty(); 1425 } 1426 1427 /** 1428 * @param value {@link #disposition} (A description of the status of the adjudication.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 1429 */ 1430 public PaymentReconciliation setDispositionElement(StringType value) { 1431 this.disposition = value; 1432 return this; 1433 } 1434 1435 /** 1436 * @return A description of the status of the adjudication. 1437 */ 1438 public String getDisposition() { 1439 return this.disposition == null ? null : this.disposition.getValue(); 1440 } 1441 1442 /** 1443 * @param value A description of the status of the adjudication. 1444 */ 1445 public PaymentReconciliation setDisposition(String value) { 1446 if (Utilities.noString(value)) 1447 this.disposition = null; 1448 else { 1449 if (this.disposition == null) 1450 this.disposition = new StringType(); 1451 this.disposition.setValue(value); 1452 } 1453 return this; 1454 } 1455 1456 /** 1457 * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 1458 */ 1459 public Reference getRequestProvider() { 1460 if (this.requestProvider == null) 1461 if (Configuration.errorOnAutoCreate()) 1462 throw new Error("Attempt to auto-create PaymentReconciliation.requestProvider"); 1463 else if (Configuration.doAutoCreate()) 1464 this.requestProvider = new Reference(); // cc 1465 return this.requestProvider; 1466 } 1467 1468 public boolean hasRequestProvider() { 1469 return this.requestProvider != null && !this.requestProvider.isEmpty(); 1470 } 1471 1472 /** 1473 * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 1474 */ 1475 public PaymentReconciliation setRequestProvider(Reference value) { 1476 this.requestProvider = value; 1477 return this; 1478 } 1479 1480 /** 1481 * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) 1482 */ 1483 public Resource getRequestProviderTarget() { 1484 return this.requestProviderTarget; 1485 } 1486 1487 /** 1488 * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) 1489 */ 1490 public PaymentReconciliation setRequestProviderTarget(Resource value) { 1491 this.requestProviderTarget = value; 1492 return this; 1493 } 1494 1495 /** 1496 * @return {@link #detail} (List of individual settlement amounts and the corresponding transaction.) 1497 */ 1498 public List<DetailsComponent> getDetail() { 1499 if (this.detail == null) 1500 this.detail = new ArrayList<DetailsComponent>(); 1501 return this.detail; 1502 } 1503 1504 /** 1505 * @return Returns a reference to <code>this</code> for easy method chaining 1506 */ 1507 public PaymentReconciliation setDetail(List<DetailsComponent> theDetail) { 1508 this.detail = theDetail; 1509 return this; 1510 } 1511 1512 public boolean hasDetail() { 1513 if (this.detail == null) 1514 return false; 1515 for (DetailsComponent item : this.detail) 1516 if (!item.isEmpty()) 1517 return true; 1518 return false; 1519 } 1520 1521 public DetailsComponent addDetail() { //3 1522 DetailsComponent t = new DetailsComponent(); 1523 if (this.detail == null) 1524 this.detail = new ArrayList<DetailsComponent>(); 1525 this.detail.add(t); 1526 return t; 1527 } 1528 1529 public PaymentReconciliation addDetail(DetailsComponent t) { //3 1530 if (t == null) 1531 return this; 1532 if (this.detail == null) 1533 this.detail = new ArrayList<DetailsComponent>(); 1534 this.detail.add(t); 1535 return this; 1536 } 1537 1538 /** 1539 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist 1540 */ 1541 public DetailsComponent getDetailFirstRep() { 1542 if (getDetail().isEmpty()) { 1543 addDetail(); 1544 } 1545 return getDetail().get(0); 1546 } 1547 1548 /** 1549 * @return {@link #form} (The form to be used for printing the content.) 1550 */ 1551 public CodeableConcept getForm() { 1552 if (this.form == null) 1553 if (Configuration.errorOnAutoCreate()) 1554 throw new Error("Attempt to auto-create PaymentReconciliation.form"); 1555 else if (Configuration.doAutoCreate()) 1556 this.form = new CodeableConcept(); // cc 1557 return this.form; 1558 } 1559 1560 public boolean hasForm() { 1561 return this.form != null && !this.form.isEmpty(); 1562 } 1563 1564 /** 1565 * @param value {@link #form} (The form to be used for printing the content.) 1566 */ 1567 public PaymentReconciliation setForm(CodeableConcept value) { 1568 this.form = value; 1569 return this; 1570 } 1571 1572 /** 1573 * @return {@link #total} (Total payment amount.) 1574 */ 1575 public Money getTotal() { 1576 if (this.total == null) 1577 if (Configuration.errorOnAutoCreate()) 1578 throw new Error("Attempt to auto-create PaymentReconciliation.total"); 1579 else if (Configuration.doAutoCreate()) 1580 this.total = new Money(); // cc 1581 return this.total; 1582 } 1583 1584 public boolean hasTotal() { 1585 return this.total != null && !this.total.isEmpty(); 1586 } 1587 1588 /** 1589 * @param value {@link #total} (Total payment amount.) 1590 */ 1591 public PaymentReconciliation setTotal(Money value) { 1592 this.total = value; 1593 return this; 1594 } 1595 1596 /** 1597 * @return {@link #processNote} (Suite of notes.) 1598 */ 1599 public List<NotesComponent> getProcessNote() { 1600 if (this.processNote == null) 1601 this.processNote = new ArrayList<NotesComponent>(); 1602 return this.processNote; 1603 } 1604 1605 /** 1606 * @return Returns a reference to <code>this</code> for easy method chaining 1607 */ 1608 public PaymentReconciliation setProcessNote(List<NotesComponent> theProcessNote) { 1609 this.processNote = theProcessNote; 1610 return this; 1611 } 1612 1613 public boolean hasProcessNote() { 1614 if (this.processNote == null) 1615 return false; 1616 for (NotesComponent item : this.processNote) 1617 if (!item.isEmpty()) 1618 return true; 1619 return false; 1620 } 1621 1622 public NotesComponent addProcessNote() { //3 1623 NotesComponent t = new NotesComponent(); 1624 if (this.processNote == null) 1625 this.processNote = new ArrayList<NotesComponent>(); 1626 this.processNote.add(t); 1627 return t; 1628 } 1629 1630 public PaymentReconciliation addProcessNote(NotesComponent t) { //3 1631 if (t == null) 1632 return this; 1633 if (this.processNote == null) 1634 this.processNote = new ArrayList<NotesComponent>(); 1635 this.processNote.add(t); 1636 return this; 1637 } 1638 1639 /** 1640 * @return The first repetition of repeating field {@link #processNote}, creating it if it does not already exist 1641 */ 1642 public NotesComponent getProcessNoteFirstRep() { 1643 if (getProcessNote().isEmpty()) { 1644 addProcessNote(); 1645 } 1646 return getProcessNote().get(0); 1647 } 1648 1649 protected void listChildren(List<Property> children) { 1650 super.listChildren(children); 1651 children.add(new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1652 children.add(new Property("status", "code", "The status of the resource instance.", 0, 1, status)); 1653 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)); 1654 children.add(new Property("created", "dateTime", "The date when the resource was created.", 0, 1, created)); 1655 children.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, 1, organization)); 1656 children.add(new Property("request", "Reference(ProcessRequest)", "Original request resource reference.", 0, 1, request)); 1657 children.add(new Property("outcome", "code", "Transaction status: error, complete.", 0, 1, outcome)); 1658 children.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, 1, disposition)); 1659 children.add(new Property("requestProvider", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestProvider)); 1660 children.add(new Property("detail", "", "List of individual settlement amounts and the corresponding transaction.", 0, java.lang.Integer.MAX_VALUE, detail)); 1661 children.add(new Property("form", "CodeableConcept", "The form to be used for printing the content.", 0, 1, form)); 1662 children.add(new Property("total", "Money", "Total payment amount.", 0, 1, total)); 1663 children.add(new Property("processNote", "", "Suite of notes.", 0, java.lang.Integer.MAX_VALUE, processNote)); 1664 } 1665 1666 @Override 1667 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1668 switch (_hash) { 1669 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier); 1670 case -892481550: /*status*/ return new Property("status", "code", "The status of the resource instance.", 0, 1, status); 1671 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); 1672 case 1028554472: /*created*/ return new Property("created", "dateTime", "The date when the resource was created.", 0, 1, created); 1673 case 1178922291: /*organization*/ return new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, 1, organization); 1674 case 1095692943: /*request*/ return new Property("request", "Reference(ProcessRequest)", "Original request resource reference.", 0, 1, request); 1675 case -1106507950: /*outcome*/ return new Property("outcome", "code", "Transaction status: error, complete.", 0, 1, outcome); 1676 case 583380919: /*disposition*/ return new Property("disposition", "string", "A description of the status of the adjudication.", 0, 1, disposition); 1677 case 1601527200: /*requestProvider*/ return new Property("requestProvider", "Reference(Practitioner|PractitionerRole|Organization)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestProvider); 1678 case -1335224239: /*detail*/ return new Property("detail", "", "List of individual settlement amounts and the corresponding transaction.", 0, java.lang.Integer.MAX_VALUE, detail); 1679 case 3148996: /*form*/ return new Property("form", "CodeableConcept", "The form to be used for printing the content.", 0, 1, form); 1680 case 110549828: /*total*/ return new Property("total", "Money", "Total payment amount.", 0, 1, total); 1681 case 202339073: /*processNote*/ return new Property("processNote", "", "Suite of notes.", 0, java.lang.Integer.MAX_VALUE, processNote); 1682 default: return super.getNamedProperty(_hash, _name, _checkValid); 1683 } 1684 1685 } 1686 1687 @Override 1688 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1689 switch (hash) { 1690 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1691 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PaymentReconciliationStatus> 1692 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1693 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 1694 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 1695 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 1696 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // Enumeration<RemittanceOutcome> 1697 case 583380919: /*disposition*/ return this.disposition == null ? new Base[0] : new Base[] {this.disposition}; // StringType 1698 case 1601527200: /*requestProvider*/ return this.requestProvider == null ? new Base[0] : new Base[] {this.requestProvider}; // Reference 1699 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // DetailsComponent 1700 case 3148996: /*form*/ return this.form == null ? new Base[0] : new Base[] {this.form}; // CodeableConcept 1701 case 110549828: /*total*/ return this.total == null ? new Base[0] : new Base[] {this.total}; // Money 1702 case 202339073: /*processNote*/ return this.processNote == null ? new Base[0] : this.processNote.toArray(new Base[this.processNote.size()]); // NotesComponent 1703 default: return super.getProperty(hash, name, checkValid); 1704 } 1705 1706 } 1707 1708 @Override 1709 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1710 switch (hash) { 1711 case -1618432855: // identifier 1712 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1713 return value; 1714 case -892481550: // status 1715 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 1716 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 1717 return value; 1718 case -991726143: // period 1719 this.period = castToPeriod(value); // Period 1720 return value; 1721 case 1028554472: // created 1722 this.created = castToDateTime(value); // DateTimeType 1723 return value; 1724 case 1178922291: // organization 1725 this.organization = castToReference(value); // Reference 1726 return value; 1727 case 1095692943: // request 1728 this.request = castToReference(value); // Reference 1729 return value; 1730 case -1106507950: // outcome 1731 value = new RemittanceOutcomeEnumFactory().fromType(castToCode(value)); 1732 this.outcome = (Enumeration) value; // Enumeration<RemittanceOutcome> 1733 return value; 1734 case 583380919: // disposition 1735 this.disposition = castToString(value); // StringType 1736 return value; 1737 case 1601527200: // requestProvider 1738 this.requestProvider = castToReference(value); // Reference 1739 return value; 1740 case -1335224239: // detail 1741 this.getDetail().add((DetailsComponent) value); // DetailsComponent 1742 return value; 1743 case 3148996: // form 1744 this.form = castToCodeableConcept(value); // CodeableConcept 1745 return value; 1746 case 110549828: // total 1747 this.total = castToMoney(value); // Money 1748 return value; 1749 case 202339073: // processNote 1750 this.getProcessNote().add((NotesComponent) value); // NotesComponent 1751 return value; 1752 default: return super.setProperty(hash, name, value); 1753 } 1754 1755 } 1756 1757 @Override 1758 public Base setProperty(String name, Base value) throws FHIRException { 1759 if (name.equals("identifier")) { 1760 this.getIdentifier().add(castToIdentifier(value)); 1761 } else if (name.equals("status")) { 1762 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 1763 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 1764 } else if (name.equals("period")) { 1765 this.period = castToPeriod(value); // Period 1766 } else if (name.equals("created")) { 1767 this.created = castToDateTime(value); // DateTimeType 1768 } else if (name.equals("organization")) { 1769 this.organization = castToReference(value); // Reference 1770 } else if (name.equals("request")) { 1771 this.request = castToReference(value); // Reference 1772 } else if (name.equals("outcome")) { 1773 value = new RemittanceOutcomeEnumFactory().fromType(castToCode(value)); 1774 this.outcome = (Enumeration) value; // Enumeration<RemittanceOutcome> 1775 } else if (name.equals("disposition")) { 1776 this.disposition = castToString(value); // StringType 1777 } else if (name.equals("requestProvider")) { 1778 this.requestProvider = castToReference(value); // Reference 1779 } else if (name.equals("detail")) { 1780 this.getDetail().add((DetailsComponent) value); 1781 } else if (name.equals("form")) { 1782 this.form = castToCodeableConcept(value); // CodeableConcept 1783 } else if (name.equals("total")) { 1784 this.total = castToMoney(value); // Money 1785 } else if (name.equals("processNote")) { 1786 this.getProcessNote().add((NotesComponent) value); 1787 } else 1788 return super.setProperty(name, value); 1789 return value; 1790 } 1791 1792 @Override 1793 public Base makeProperty(int hash, String name) throws FHIRException { 1794 switch (hash) { 1795 case -1618432855: return addIdentifier(); 1796 case -892481550: return getStatusElement(); 1797 case -991726143: return getPeriod(); 1798 case 1028554472: return getCreatedElement(); 1799 case 1178922291: return getOrganization(); 1800 case 1095692943: return getRequest(); 1801 case -1106507950: return getOutcomeElement(); 1802 case 583380919: return getDispositionElement(); 1803 case 1601527200: return getRequestProvider(); 1804 case -1335224239: return addDetail(); 1805 case 3148996: return getForm(); 1806 case 110549828: return getTotal(); 1807 case 202339073: return addProcessNote(); 1808 default: return super.makeProperty(hash, name); 1809 } 1810 1811 } 1812 1813 @Override 1814 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1815 switch (hash) { 1816 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1817 case -892481550: /*status*/ return new String[] {"code"}; 1818 case -991726143: /*period*/ return new String[] {"Period"}; 1819 case 1028554472: /*created*/ return new String[] {"dateTime"}; 1820 case 1178922291: /*organization*/ return new String[] {"Reference"}; 1821 case 1095692943: /*request*/ return new String[] {"Reference"}; 1822 case -1106507950: /*outcome*/ return new String[] {"code"}; 1823 case 583380919: /*disposition*/ return new String[] {"string"}; 1824 case 1601527200: /*requestProvider*/ return new String[] {"Reference"}; 1825 case -1335224239: /*detail*/ return new String[] {}; 1826 case 3148996: /*form*/ return new String[] {"CodeableConcept"}; 1827 case 110549828: /*total*/ return new String[] {"Money"}; 1828 case 202339073: /*processNote*/ return new String[] {}; 1829 default: return super.getTypesForProperty(hash, name); 1830 } 1831 1832 } 1833 1834 @Override 1835 public Base addChild(String name) throws FHIRException { 1836 if (name.equals("identifier")) { 1837 return addIdentifier(); 1838 } 1839 else if (name.equals("status")) { 1840 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.status"); 1841 } 1842 else if (name.equals("period")) { 1843 this.period = new Period(); 1844 return this.period; 1845 } 1846 else if (name.equals("created")) { 1847 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.created"); 1848 } 1849 else if (name.equals("organization")) { 1850 this.organization = new Reference(); 1851 return this.organization; 1852 } 1853 else if (name.equals("request")) { 1854 this.request = new Reference(); 1855 return this.request; 1856 } 1857 else if (name.equals("outcome")) { 1858 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.outcome"); 1859 } 1860 else if (name.equals("disposition")) { 1861 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.disposition"); 1862 } 1863 else if (name.equals("requestProvider")) { 1864 this.requestProvider = new Reference(); 1865 return this.requestProvider; 1866 } 1867 else if (name.equals("detail")) { 1868 return addDetail(); 1869 } 1870 else if (name.equals("form")) { 1871 this.form = new CodeableConcept(); 1872 return this.form; 1873 } 1874 else if (name.equals("total")) { 1875 this.total = new Money(); 1876 return this.total; 1877 } 1878 else if (name.equals("processNote")) { 1879 return addProcessNote(); 1880 } 1881 else 1882 return super.addChild(name); 1883 } 1884 1885 public String fhirType() { 1886 return "PaymentReconciliation"; 1887 1888 } 1889 1890 public PaymentReconciliation copy() { 1891 PaymentReconciliation dst = new PaymentReconciliation(); 1892 copyValues(dst); 1893 if (identifier != null) { 1894 dst.identifier = new ArrayList<Identifier>(); 1895 for (Identifier i : identifier) 1896 dst.identifier.add(i.copy()); 1897 }; 1898 dst.status = status == null ? null : status.copy(); 1899 dst.period = period == null ? null : period.copy(); 1900 dst.created = created == null ? null : created.copy(); 1901 dst.organization = organization == null ? null : organization.copy(); 1902 dst.request = request == null ? null : request.copy(); 1903 dst.outcome = outcome == null ? null : outcome.copy(); 1904 dst.disposition = disposition == null ? null : disposition.copy(); 1905 dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); 1906 if (detail != null) { 1907 dst.detail = new ArrayList<DetailsComponent>(); 1908 for (DetailsComponent i : detail) 1909 dst.detail.add(i.copy()); 1910 }; 1911 dst.form = form == null ? null : form.copy(); 1912 dst.total = total == null ? null : total.copy(); 1913 if (processNote != null) { 1914 dst.processNote = new ArrayList<NotesComponent>(); 1915 for (NotesComponent i : processNote) 1916 dst.processNote.add(i.copy()); 1917 }; 1918 return dst; 1919 } 1920 1921 protected PaymentReconciliation typedCopy() { 1922 return copy(); 1923 } 1924 1925 @Override 1926 public boolean equalsDeep(Base other_) { 1927 if (!super.equalsDeep(other_)) 1928 return false; 1929 if (!(other_ instanceof PaymentReconciliation)) 1930 return false; 1931 PaymentReconciliation o = (PaymentReconciliation) other_; 1932 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(period, o.period, true) 1933 && compareDeep(created, o.created, true) && compareDeep(organization, o.organization, true) && compareDeep(request, o.request, true) 1934 && compareDeep(outcome, o.outcome, true) && compareDeep(disposition, o.disposition, true) && compareDeep(requestProvider, o.requestProvider, true) 1935 && compareDeep(detail, o.detail, true) && compareDeep(form, o.form, true) && compareDeep(total, o.total, true) 1936 && compareDeep(processNote, o.processNote, true); 1937 } 1938 1939 @Override 1940 public boolean equalsShallow(Base other_) { 1941 if (!super.equalsShallow(other_)) 1942 return false; 1943 if (!(other_ instanceof PaymentReconciliation)) 1944 return false; 1945 PaymentReconciliation o = (PaymentReconciliation) other_; 1946 return compareValues(status, o.status, true) && compareValues(created, o.created, true) && compareValues(outcome, o.outcome, true) 1947 && compareValues(disposition, o.disposition, true); 1948 } 1949 1950 public boolean isEmpty() { 1951 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, period 1952 , created, organization, request, outcome, disposition, requestProvider, detail 1953 , form, total, processNote); 1954 } 1955 1956 @Override 1957 public ResourceType getResourceType() { 1958 return ResourceType.PaymentReconciliation; 1959 } 1960 1961 /** 1962 * Search parameter: <b>identifier</b> 1963 * <p> 1964 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 1965 * Type: <b>token</b><br> 1966 * Path: <b>PaymentReconciliation.identifier</b><br> 1967 * </p> 1968 */ 1969 @SearchParamDefinition(name="identifier", path="PaymentReconciliation.identifier", description="The business identifier of the ExplanationOfBenefit", type="token" ) 1970 public static final String SP_IDENTIFIER = "identifier"; 1971 /** 1972 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1973 * <p> 1974 * Description: <b>The business identifier of the ExplanationOfBenefit</b><br> 1975 * Type: <b>token</b><br> 1976 * Path: <b>PaymentReconciliation.identifier</b><br> 1977 * </p> 1978 */ 1979 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1980 1981 /** 1982 * Search parameter: <b>request</b> 1983 * <p> 1984 * Description: <b>The reference to the claim</b><br> 1985 * Type: <b>reference</b><br> 1986 * Path: <b>PaymentReconciliation.request</b><br> 1987 * </p> 1988 */ 1989 @SearchParamDefinition(name="request", path="PaymentReconciliation.request", description="The reference to the claim", type="reference", target={ProcessRequest.class } ) 1990 public static final String SP_REQUEST = "request"; 1991 /** 1992 * <b>Fluent Client</b> search parameter constant for <b>request</b> 1993 * <p> 1994 * Description: <b>The reference to the claim</b><br> 1995 * Type: <b>reference</b><br> 1996 * Path: <b>PaymentReconciliation.request</b><br> 1997 * </p> 1998 */ 1999 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST); 2000 2001/** 2002 * Constant for fluent queries to be used to add include statements. Specifies 2003 * the path value of "<b>PaymentReconciliation:request</b>". 2004 */ 2005 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request").toLocked(); 2006 2007 /** 2008 * Search parameter: <b>disposition</b> 2009 * <p> 2010 * Description: <b>The contents of the disposition message</b><br> 2011 * Type: <b>string</b><br> 2012 * Path: <b>PaymentReconciliation.disposition</b><br> 2013 * </p> 2014 */ 2015 @SearchParamDefinition(name="disposition", path="PaymentReconciliation.disposition", description="The contents of the disposition message", type="string" ) 2016 public static final String SP_DISPOSITION = "disposition"; 2017 /** 2018 * <b>Fluent Client</b> search parameter constant for <b>disposition</b> 2019 * <p> 2020 * Description: <b>The contents of the disposition message</b><br> 2021 * Type: <b>string</b><br> 2022 * Path: <b>PaymentReconciliation.disposition</b><br> 2023 * </p> 2024 */ 2025 public static final ca.uhn.fhir.rest.gclient.StringClientParam DISPOSITION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DISPOSITION); 2026 2027 /** 2028 * Search parameter: <b>created</b> 2029 * <p> 2030 * Description: <b>The creation date</b><br> 2031 * Type: <b>date</b><br> 2032 * Path: <b>PaymentReconciliation.created</b><br> 2033 * </p> 2034 */ 2035 @SearchParamDefinition(name="created", path="PaymentReconciliation.created", description="The creation date", type="date" ) 2036 public static final String SP_CREATED = "created"; 2037 /** 2038 * <b>Fluent Client</b> search parameter constant for <b>created</b> 2039 * <p> 2040 * Description: <b>The creation date</b><br> 2041 * Type: <b>date</b><br> 2042 * Path: <b>PaymentReconciliation.created</b><br> 2043 * </p> 2044 */ 2045 public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED); 2046 2047 /** 2048 * Search parameter: <b>organization</b> 2049 * <p> 2050 * Description: <b>The organization which generated this resource</b><br> 2051 * Type: <b>reference</b><br> 2052 * Path: <b>PaymentReconciliation.organization</b><br> 2053 * </p> 2054 */ 2055 @SearchParamDefinition(name="organization", path="PaymentReconciliation.organization", description="The organization which generated this resource", type="reference", target={Organization.class } ) 2056 public static final String SP_ORGANIZATION = "organization"; 2057 /** 2058 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 2059 * <p> 2060 * Description: <b>The organization which generated this resource</b><br> 2061 * Type: <b>reference</b><br> 2062 * Path: <b>PaymentReconciliation.organization</b><br> 2063 * </p> 2064 */ 2065 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 2066 2067/** 2068 * Constant for fluent queries to be used to add include statements. Specifies 2069 * the path value of "<b>PaymentReconciliation:organization</b>". 2070 */ 2071 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:organization").toLocked(); 2072 2073 /** 2074 * Search parameter: <b>request-provider</b> 2075 * <p> 2076 * Description: <b>The reference to the provider who submitted the claim</b><br> 2077 * Type: <b>reference</b><br> 2078 * Path: <b>PaymentReconciliation.requestProvider</b><br> 2079 * </p> 2080 */ 2081 @SearchParamDefinition(name="request-provider", path="PaymentReconciliation.requestProvider", description="The reference to the provider who submitted the claim", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Organization.class, Practitioner.class, PractitionerRole.class } ) 2082 public static final String SP_REQUEST_PROVIDER = "request-provider"; 2083 /** 2084 * <b>Fluent Client</b> search parameter constant for <b>request-provider</b> 2085 * <p> 2086 * Description: <b>The reference to the provider who submitted the claim</b><br> 2087 * Type: <b>reference</b><br> 2088 * Path: <b>PaymentReconciliation.requestProvider</b><br> 2089 * </p> 2090 */ 2091 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST_PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST_PROVIDER); 2092 2093/** 2094 * Constant for fluent queries to be used to add include statements. Specifies 2095 * the path value of "<b>PaymentReconciliation:request-provider</b>". 2096 */ 2097 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST_PROVIDER = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request-provider").toLocked(); 2098 2099 /** 2100 * Search parameter: <b>outcome</b> 2101 * <p> 2102 * Description: <b>The processing outcome</b><br> 2103 * Type: <b>token</b><br> 2104 * Path: <b>PaymentReconciliation.outcome</b><br> 2105 * </p> 2106 */ 2107 @SearchParamDefinition(name="outcome", path="PaymentReconciliation.outcome", description="The processing outcome", type="token" ) 2108 public static final String SP_OUTCOME = "outcome"; 2109 /** 2110 * <b>Fluent Client</b> search parameter constant for <b>outcome</b> 2111 * <p> 2112 * Description: <b>The processing outcome</b><br> 2113 * Type: <b>token</b><br> 2114 * Path: <b>PaymentReconciliation.outcome</b><br> 2115 * </p> 2116 */ 2117 public static final ca.uhn.fhir.rest.gclient.TokenClientParam OUTCOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_OUTCOME); 2118 2119 /** 2120 * Search parameter: <b>status</b> 2121 * <p> 2122 * Description: <b>The status of the payment reconciliation</b><br> 2123 * Type: <b>token</b><br> 2124 * Path: <b>PaymentReconciliation.status</b><br> 2125 * </p> 2126 */ 2127 @SearchParamDefinition(name="status", path="PaymentReconciliation.status", description="The status of the payment reconciliation", type="token" ) 2128 public static final String SP_STATUS = "status"; 2129 /** 2130 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2131 * <p> 2132 * Description: <b>The status of the payment reconciliation</b><br> 2133 * Type: <b>token</b><br> 2134 * Path: <b>PaymentReconciliation.status</b><br> 2135 * </p> 2136 */ 2137 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2138 2139 2140} 2141