001package org.hl7.fhir.dstu3.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 Mon, Apr 17, 2017 17:38-0400 for FHIR v3.0.1 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import org.hl7.fhir.dstu3.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/Profile/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> childrenList) { 529 super.listChildren(childrenList); 530 childrenList.add(new Property("type", "CodeableConcept", "Code to indicate the nature of the payment, adjustment, funds advance, etc.", 0, java.lang.Integer.MAX_VALUE, type)); 531 childrenList.add(new Property("request", "Reference(Any)", "The claim or financial resource.", 0, java.lang.Integer.MAX_VALUE, request)); 532 childrenList.add(new Property("response", "Reference(Any)", "The claim response resource.", 0, java.lang.Integer.MAX_VALUE, response)); 533 childrenList.add(new Property("submitter", "Reference(Organization)", "The Organization which submitted the claim or financial transaction.", 0, java.lang.Integer.MAX_VALUE, submitter)); 534 childrenList.add(new Property("payee", "Reference(Organization)", "The organization which is receiving the payment.", 0, java.lang.Integer.MAX_VALUE, payee)); 535 childrenList.add(new Property("date", "date", "The date of the invoice or financial resource.", 0, java.lang.Integer.MAX_VALUE, date)); 536 childrenList.add(new Property("amount", "Money", "Amount paid for this detail.", 0, java.lang.Integer.MAX_VALUE, amount)); 537 } 538 539 @Override 540 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 541 switch (hash) { 542 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 543 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 544 case -340323263: /*response*/ return this.response == null ? new Base[0] : new Base[] {this.response}; // Reference 545 case 348678409: /*submitter*/ return this.submitter == null ? new Base[0] : new Base[] {this.submitter}; // Reference 546 case 106443592: /*payee*/ return this.payee == null ? new Base[0] : new Base[] {this.payee}; // Reference 547 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateType 548 case -1413853096: /*amount*/ return this.amount == null ? new Base[0] : new Base[] {this.amount}; // Money 549 default: return super.getProperty(hash, name, checkValid); 550 } 551 552 } 553 554 @Override 555 public Base setProperty(int hash, String name, Base value) throws FHIRException { 556 switch (hash) { 557 case 3575610: // type 558 this.type = castToCodeableConcept(value); // CodeableConcept 559 return value; 560 case 1095692943: // request 561 this.request = castToReference(value); // Reference 562 return value; 563 case -340323263: // response 564 this.response = castToReference(value); // Reference 565 return value; 566 case 348678409: // submitter 567 this.submitter = castToReference(value); // Reference 568 return value; 569 case 106443592: // payee 570 this.payee = castToReference(value); // Reference 571 return value; 572 case 3076014: // date 573 this.date = castToDate(value); // DateType 574 return value; 575 case -1413853096: // amount 576 this.amount = castToMoney(value); // Money 577 return value; 578 default: return super.setProperty(hash, name, value); 579 } 580 581 } 582 583 @Override 584 public Base setProperty(String name, Base value) throws FHIRException { 585 if (name.equals("type")) { 586 this.type = castToCodeableConcept(value); // CodeableConcept 587 } else if (name.equals("request")) { 588 this.request = castToReference(value); // Reference 589 } else if (name.equals("response")) { 590 this.response = castToReference(value); // Reference 591 } else if (name.equals("submitter")) { 592 this.submitter = castToReference(value); // Reference 593 } else if (name.equals("payee")) { 594 this.payee = castToReference(value); // Reference 595 } else if (name.equals("date")) { 596 this.date = castToDate(value); // DateType 597 } else if (name.equals("amount")) { 598 this.amount = castToMoney(value); // Money 599 } else 600 return super.setProperty(name, value); 601 return value; 602 } 603 604 @Override 605 public Base makeProperty(int hash, String name) throws FHIRException { 606 switch (hash) { 607 case 3575610: return getType(); 608 case 1095692943: return getRequest(); 609 case -340323263: return getResponse(); 610 case 348678409: return getSubmitter(); 611 case 106443592: return getPayee(); 612 case 3076014: return getDateElement(); 613 case -1413853096: return getAmount(); 614 default: return super.makeProperty(hash, name); 615 } 616 617 } 618 619 @Override 620 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 621 switch (hash) { 622 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 623 case 1095692943: /*request*/ return new String[] {"Reference"}; 624 case -340323263: /*response*/ return new String[] {"Reference"}; 625 case 348678409: /*submitter*/ return new String[] {"Reference"}; 626 case 106443592: /*payee*/ return new String[] {"Reference"}; 627 case 3076014: /*date*/ return new String[] {"date"}; 628 case -1413853096: /*amount*/ return new String[] {"Money"}; 629 default: return super.getTypesForProperty(hash, name); 630 } 631 632 } 633 634 @Override 635 public Base addChild(String name) throws FHIRException { 636 if (name.equals("type")) { 637 this.type = new CodeableConcept(); 638 return this.type; 639 } 640 else if (name.equals("request")) { 641 this.request = new Reference(); 642 return this.request; 643 } 644 else if (name.equals("response")) { 645 this.response = new Reference(); 646 return this.response; 647 } 648 else if (name.equals("submitter")) { 649 this.submitter = new Reference(); 650 return this.submitter; 651 } 652 else if (name.equals("payee")) { 653 this.payee = new Reference(); 654 return this.payee; 655 } 656 else if (name.equals("date")) { 657 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.date"); 658 } 659 else if (name.equals("amount")) { 660 this.amount = new Money(); 661 return this.amount; 662 } 663 else 664 return super.addChild(name); 665 } 666 667 public DetailsComponent copy() { 668 DetailsComponent dst = new DetailsComponent(); 669 copyValues(dst); 670 dst.type = type == null ? null : type.copy(); 671 dst.request = request == null ? null : request.copy(); 672 dst.response = response == null ? null : response.copy(); 673 dst.submitter = submitter == null ? null : submitter.copy(); 674 dst.payee = payee == null ? null : payee.copy(); 675 dst.date = date == null ? null : date.copy(); 676 dst.amount = amount == null ? null : amount.copy(); 677 return dst; 678 } 679 680 @Override 681 public boolean equalsDeep(Base other) { 682 if (!super.equalsDeep(other)) 683 return false; 684 if (!(other instanceof DetailsComponent)) 685 return false; 686 DetailsComponent o = (DetailsComponent) other; 687 return compareDeep(type, o.type, true) && compareDeep(request, o.request, true) && compareDeep(response, o.response, true) 688 && compareDeep(submitter, o.submitter, true) && compareDeep(payee, o.payee, true) && compareDeep(date, o.date, true) 689 && compareDeep(amount, o.amount, true); 690 } 691 692 @Override 693 public boolean equalsShallow(Base other) { 694 if (!super.equalsShallow(other)) 695 return false; 696 if (!(other instanceof DetailsComponent)) 697 return false; 698 DetailsComponent o = (DetailsComponent) other; 699 return compareValues(date, o.date, true); 700 } 701 702 public boolean isEmpty() { 703 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, request, response 704 , submitter, payee, date, amount); 705 } 706 707 public String fhirType() { 708 return "PaymentReconciliation.detail"; 709 710 } 711 712 } 713 714 @Block() 715 public static class NotesComponent extends BackboneElement implements IBaseBackboneElement { 716 /** 717 * The note purpose: Print/Display. 718 */ 719 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 720 @Description(shortDefinition="display | print | printoper", formalDefinition="The note purpose: Print/Display." ) 721 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/note-type") 722 protected CodeableConcept type; 723 724 /** 725 * The note text. 726 */ 727 @Child(name = "text", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 728 @Description(shortDefinition="Comment on the processing", formalDefinition="The note text." ) 729 protected StringType text; 730 731 private static final long serialVersionUID = 874830709L; 732 733 /** 734 * Constructor 735 */ 736 public NotesComponent() { 737 super(); 738 } 739 740 /** 741 * @return {@link #type} (The note purpose: Print/Display.) 742 */ 743 public CodeableConcept getType() { 744 if (this.type == null) 745 if (Configuration.errorOnAutoCreate()) 746 throw new Error("Attempt to auto-create NotesComponent.type"); 747 else if (Configuration.doAutoCreate()) 748 this.type = new CodeableConcept(); // cc 749 return this.type; 750 } 751 752 public boolean hasType() { 753 return this.type != null && !this.type.isEmpty(); 754 } 755 756 /** 757 * @param value {@link #type} (The note purpose: Print/Display.) 758 */ 759 public NotesComponent setType(CodeableConcept value) { 760 this.type = value; 761 return this; 762 } 763 764 /** 765 * @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 766 */ 767 public StringType getTextElement() { 768 if (this.text == null) 769 if (Configuration.errorOnAutoCreate()) 770 throw new Error("Attempt to auto-create NotesComponent.text"); 771 else if (Configuration.doAutoCreate()) 772 this.text = new StringType(); // bb 773 return this.text; 774 } 775 776 public boolean hasTextElement() { 777 return this.text != null && !this.text.isEmpty(); 778 } 779 780 public boolean hasText() { 781 return this.text != null && !this.text.isEmpty(); 782 } 783 784 /** 785 * @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 786 */ 787 public NotesComponent setTextElement(StringType value) { 788 this.text = value; 789 return this; 790 } 791 792 /** 793 * @return The note text. 794 */ 795 public String getText() { 796 return this.text == null ? null : this.text.getValue(); 797 } 798 799 /** 800 * @param value The note text. 801 */ 802 public NotesComponent setText(String value) { 803 if (Utilities.noString(value)) 804 this.text = null; 805 else { 806 if (this.text == null) 807 this.text = new StringType(); 808 this.text.setValue(value); 809 } 810 return this; 811 } 812 813 protected void listChildren(List<Property> childrenList) { 814 super.listChildren(childrenList); 815 childrenList.add(new Property("type", "CodeableConcept", "The note purpose: Print/Display.", 0, java.lang.Integer.MAX_VALUE, type)); 816 childrenList.add(new Property("text", "string", "The note text.", 0, java.lang.Integer.MAX_VALUE, text)); 817 } 818 819 @Override 820 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 821 switch (hash) { 822 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 823 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 824 default: return super.getProperty(hash, name, checkValid); 825 } 826 827 } 828 829 @Override 830 public Base setProperty(int hash, String name, Base value) throws FHIRException { 831 switch (hash) { 832 case 3575610: // type 833 this.type = castToCodeableConcept(value); // CodeableConcept 834 return value; 835 case 3556653: // text 836 this.text = castToString(value); // StringType 837 return value; 838 default: return super.setProperty(hash, name, value); 839 } 840 841 } 842 843 @Override 844 public Base setProperty(String name, Base value) throws FHIRException { 845 if (name.equals("type")) { 846 this.type = castToCodeableConcept(value); // CodeableConcept 847 } else if (name.equals("text")) { 848 this.text = castToString(value); // StringType 849 } else 850 return super.setProperty(name, value); 851 return value; 852 } 853 854 @Override 855 public Base makeProperty(int hash, String name) throws FHIRException { 856 switch (hash) { 857 case 3575610: return getType(); 858 case 3556653: return getTextElement(); 859 default: return super.makeProperty(hash, name); 860 } 861 862 } 863 864 @Override 865 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 866 switch (hash) { 867 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 868 case 3556653: /*text*/ return new String[] {"string"}; 869 default: return super.getTypesForProperty(hash, name); 870 } 871 872 } 873 874 @Override 875 public Base addChild(String name) throws FHIRException { 876 if (name.equals("type")) { 877 this.type = new CodeableConcept(); 878 return this.type; 879 } 880 else if (name.equals("text")) { 881 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.text"); 882 } 883 else 884 return super.addChild(name); 885 } 886 887 public NotesComponent copy() { 888 NotesComponent dst = new NotesComponent(); 889 copyValues(dst); 890 dst.type = type == null ? null : type.copy(); 891 dst.text = text == null ? null : text.copy(); 892 return dst; 893 } 894 895 @Override 896 public boolean equalsDeep(Base other) { 897 if (!super.equalsDeep(other)) 898 return false; 899 if (!(other instanceof NotesComponent)) 900 return false; 901 NotesComponent o = (NotesComponent) other; 902 return compareDeep(type, o.type, true) && compareDeep(text, o.text, true); 903 } 904 905 @Override 906 public boolean equalsShallow(Base other) { 907 if (!super.equalsShallow(other)) 908 return false; 909 if (!(other instanceof NotesComponent)) 910 return false; 911 NotesComponent o = (NotesComponent) other; 912 return compareValues(text, o.text, true); 913 } 914 915 public boolean isEmpty() { 916 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, text); 917 } 918 919 public String fhirType() { 920 return "PaymentReconciliation.processNote"; 921 922 } 923 924 } 925 926 /** 927 * The Response business identifier. 928 */ 929 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 930 @Description(shortDefinition="Business Identifier", formalDefinition="The Response business identifier." ) 931 protected List<Identifier> identifier; 932 933 /** 934 * The status of the resource instance. 935 */ 936 @Child(name = "status", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true) 937 @Description(shortDefinition="active | cancelled | draft | entered-in-error", formalDefinition="The status of the resource instance." ) 938 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fm-status") 939 protected Enumeration<PaymentReconciliationStatus> status; 940 941 /** 942 * The period of time for which payments have been gathered into this bulk payment for settlement. 943 */ 944 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 945 @Description(shortDefinition="Period covered", formalDefinition="The period of time for which payments have been gathered into this bulk payment for settlement." ) 946 protected Period period; 947 948 /** 949 * The date when the enclosed suite of services were performed or completed. 950 */ 951 @Child(name = "created", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=false) 952 @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) 953 protected DateTimeType created; 954 955 /** 956 * The Insurer who produced this adjudicated response. 957 */ 958 @Child(name = "organization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false) 959 @Description(shortDefinition="Insurer", formalDefinition="The Insurer who produced this adjudicated response." ) 960 protected Reference organization; 961 962 /** 963 * The actual object that is the target of the reference (The Insurer who produced this adjudicated response.) 964 */ 965 protected Organization organizationTarget; 966 967 /** 968 * Original request resource reference. 969 */ 970 @Child(name = "request", type = {ProcessRequest.class}, order=5, min=0, max=1, modifier=false, summary=false) 971 @Description(shortDefinition="Claim reference", formalDefinition="Original request resource reference." ) 972 protected Reference request; 973 974 /** 975 * The actual object that is the target of the reference (Original request resource reference.) 976 */ 977 protected ProcessRequest requestTarget; 978 979 /** 980 * Transaction status: error, complete. 981 */ 982 @Child(name = "outcome", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=false) 983 @Description(shortDefinition="complete | error | partial", formalDefinition="Transaction status: error, complete." ) 984 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/remittance-outcome") 985 protected CodeableConcept outcome; 986 987 /** 988 * A description of the status of the adjudication. 989 */ 990 @Child(name = "disposition", type = {StringType.class}, order=7, min=0, max=1, modifier=false, summary=false) 991 @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication." ) 992 protected StringType disposition; 993 994 /** 995 * The practitioner who is responsible for the services rendered to the patient. 996 */ 997 @Child(name = "requestProvider", type = {Practitioner.class}, order=8, min=0, max=1, modifier=false, summary=false) 998 @Description(shortDefinition="Responsible practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) 999 protected Reference requestProvider; 1000 1001 /** 1002 * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) 1003 */ 1004 protected Practitioner requestProviderTarget; 1005 1006 /** 1007 * The organization which is responsible for the services rendered to the patient. 1008 */ 1009 @Child(name = "requestOrganization", type = {Organization.class}, order=9, min=0, max=1, modifier=false, summary=false) 1010 @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) 1011 protected Reference requestOrganization; 1012 1013 /** 1014 * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) 1015 */ 1016 protected Organization requestOrganizationTarget; 1017 1018 /** 1019 * List of individual settlement amounts and the corresponding transaction. 1020 */ 1021 @Child(name = "detail", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1022 @Description(shortDefinition="List of settlements", formalDefinition="List of individual settlement amounts and the corresponding transaction." ) 1023 protected List<DetailsComponent> detail; 1024 1025 /** 1026 * The form to be used for printing the content. 1027 */ 1028 @Child(name = "form", type = {CodeableConcept.class}, order=11, min=0, max=1, modifier=false, summary=false) 1029 @Description(shortDefinition="Printed Form Identifier", formalDefinition="The form to be used for printing the content." ) 1030 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/forms") 1031 protected CodeableConcept form; 1032 1033 /** 1034 * Total payment amount. 1035 */ 1036 @Child(name = "total", type = {Money.class}, order=12, min=0, max=1, modifier=false, summary=false) 1037 @Description(shortDefinition="Total amount of Payment", formalDefinition="Total payment amount." ) 1038 protected Money total; 1039 1040 /** 1041 * Suite of notes. 1042 */ 1043 @Child(name = "processNote", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1044 @Description(shortDefinition="Processing comments", formalDefinition="Suite of notes." ) 1045 protected List<NotesComponent> processNote; 1046 1047 private static final long serialVersionUID = -665475468L; 1048 1049 /** 1050 * Constructor 1051 */ 1052 public PaymentReconciliation() { 1053 super(); 1054 } 1055 1056 /** 1057 * @return {@link #identifier} (The Response business identifier.) 1058 */ 1059 public List<Identifier> getIdentifier() { 1060 if (this.identifier == null) 1061 this.identifier = new ArrayList<Identifier>(); 1062 return this.identifier; 1063 } 1064 1065 /** 1066 * @return Returns a reference to <code>this</code> for easy method chaining 1067 */ 1068 public PaymentReconciliation setIdentifier(List<Identifier> theIdentifier) { 1069 this.identifier = theIdentifier; 1070 return this; 1071 } 1072 1073 public boolean hasIdentifier() { 1074 if (this.identifier == null) 1075 return false; 1076 for (Identifier item : this.identifier) 1077 if (!item.isEmpty()) 1078 return true; 1079 return false; 1080 } 1081 1082 public Identifier addIdentifier() { //3 1083 Identifier t = new Identifier(); 1084 if (this.identifier == null) 1085 this.identifier = new ArrayList<Identifier>(); 1086 this.identifier.add(t); 1087 return t; 1088 } 1089 1090 public PaymentReconciliation addIdentifier(Identifier t) { //3 1091 if (t == null) 1092 return this; 1093 if (this.identifier == null) 1094 this.identifier = new ArrayList<Identifier>(); 1095 this.identifier.add(t); 1096 return this; 1097 } 1098 1099 /** 1100 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1101 */ 1102 public Identifier getIdentifierFirstRep() { 1103 if (getIdentifier().isEmpty()) { 1104 addIdentifier(); 1105 } 1106 return getIdentifier().get(0); 1107 } 1108 1109 /** 1110 * @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 1111 */ 1112 public Enumeration<PaymentReconciliationStatus> getStatusElement() { 1113 if (this.status == null) 1114 if (Configuration.errorOnAutoCreate()) 1115 throw new Error("Attempt to auto-create PaymentReconciliation.status"); 1116 else if (Configuration.doAutoCreate()) 1117 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); // bb 1118 return this.status; 1119 } 1120 1121 public boolean hasStatusElement() { 1122 return this.status != null && !this.status.isEmpty(); 1123 } 1124 1125 public boolean hasStatus() { 1126 return this.status != null && !this.status.isEmpty(); 1127 } 1128 1129 /** 1130 * @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 1131 */ 1132 public PaymentReconciliation setStatusElement(Enumeration<PaymentReconciliationStatus> value) { 1133 this.status = value; 1134 return this; 1135 } 1136 1137 /** 1138 * @return The status of the resource instance. 1139 */ 1140 public PaymentReconciliationStatus getStatus() { 1141 return this.status == null ? null : this.status.getValue(); 1142 } 1143 1144 /** 1145 * @param value The status of the resource instance. 1146 */ 1147 public PaymentReconciliation setStatus(PaymentReconciliationStatus value) { 1148 if (value == null) 1149 this.status = null; 1150 else { 1151 if (this.status == null) 1152 this.status = new Enumeration<PaymentReconciliationStatus>(new PaymentReconciliationStatusEnumFactory()); 1153 this.status.setValue(value); 1154 } 1155 return this; 1156 } 1157 1158 /** 1159 * @return {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1160 */ 1161 public Period getPeriod() { 1162 if (this.period == null) 1163 if (Configuration.errorOnAutoCreate()) 1164 throw new Error("Attempt to auto-create PaymentReconciliation.period"); 1165 else if (Configuration.doAutoCreate()) 1166 this.period = new Period(); // cc 1167 return this.period; 1168 } 1169 1170 public boolean hasPeriod() { 1171 return this.period != null && !this.period.isEmpty(); 1172 } 1173 1174 /** 1175 * @param value {@link #period} (The period of time for which payments have been gathered into this bulk payment for settlement.) 1176 */ 1177 public PaymentReconciliation setPeriod(Period value) { 1178 this.period = value; 1179 return this; 1180 } 1181 1182 /** 1183 * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1184 */ 1185 public DateTimeType getCreatedElement() { 1186 if (this.created == null) 1187 if (Configuration.errorOnAutoCreate()) 1188 throw new Error("Attempt to auto-create PaymentReconciliation.created"); 1189 else if (Configuration.doAutoCreate()) 1190 this.created = new DateTimeType(); // bb 1191 return this.created; 1192 } 1193 1194 public boolean hasCreatedElement() { 1195 return this.created != null && !this.created.isEmpty(); 1196 } 1197 1198 public boolean hasCreated() { 1199 return this.created != null && !this.created.isEmpty(); 1200 } 1201 1202 /** 1203 * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 1204 */ 1205 public PaymentReconciliation setCreatedElement(DateTimeType value) { 1206 this.created = value; 1207 return this; 1208 } 1209 1210 /** 1211 * @return The date when the enclosed suite of services were performed or completed. 1212 */ 1213 public Date getCreated() { 1214 return this.created == null ? null : this.created.getValue(); 1215 } 1216 1217 /** 1218 * @param value The date when the enclosed suite of services were performed or completed. 1219 */ 1220 public PaymentReconciliation setCreated(Date value) { 1221 if (value == null) 1222 this.created = null; 1223 else { 1224 if (this.created == null) 1225 this.created = new DateTimeType(); 1226 this.created.setValue(value); 1227 } 1228 return this; 1229 } 1230 1231 /** 1232 * @return {@link #organization} (The Insurer who produced this adjudicated response.) 1233 */ 1234 public Reference getOrganization() { 1235 if (this.organization == null) 1236 if (Configuration.errorOnAutoCreate()) 1237 throw new Error("Attempt to auto-create PaymentReconciliation.organization"); 1238 else if (Configuration.doAutoCreate()) 1239 this.organization = new Reference(); // cc 1240 return this.organization; 1241 } 1242 1243 public boolean hasOrganization() { 1244 return this.organization != null && !this.organization.isEmpty(); 1245 } 1246 1247 /** 1248 * @param value {@link #organization} (The Insurer who produced this adjudicated response.) 1249 */ 1250 public PaymentReconciliation setOrganization(Reference value) { 1251 this.organization = value; 1252 return this; 1253 } 1254 1255 /** 1256 * @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.) 1257 */ 1258 public Organization getOrganizationTarget() { 1259 if (this.organizationTarget == null) 1260 if (Configuration.errorOnAutoCreate()) 1261 throw new Error("Attempt to auto-create PaymentReconciliation.organization"); 1262 else if (Configuration.doAutoCreate()) 1263 this.organizationTarget = new Organization(); // aa 1264 return this.organizationTarget; 1265 } 1266 1267 /** 1268 * @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.) 1269 */ 1270 public PaymentReconciliation setOrganizationTarget(Organization value) { 1271 this.organizationTarget = value; 1272 return this; 1273 } 1274 1275 /** 1276 * @return {@link #request} (Original request resource reference.) 1277 */ 1278 public Reference getRequest() { 1279 if (this.request == null) 1280 if (Configuration.errorOnAutoCreate()) 1281 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1282 else if (Configuration.doAutoCreate()) 1283 this.request = new Reference(); // cc 1284 return this.request; 1285 } 1286 1287 public boolean hasRequest() { 1288 return this.request != null && !this.request.isEmpty(); 1289 } 1290 1291 /** 1292 * @param value {@link #request} (Original request resource reference.) 1293 */ 1294 public PaymentReconciliation setRequest(Reference value) { 1295 this.request = value; 1296 return this; 1297 } 1298 1299 /** 1300 * @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.) 1301 */ 1302 public ProcessRequest getRequestTarget() { 1303 if (this.requestTarget == null) 1304 if (Configuration.errorOnAutoCreate()) 1305 throw new Error("Attempt to auto-create PaymentReconciliation.request"); 1306 else if (Configuration.doAutoCreate()) 1307 this.requestTarget = new ProcessRequest(); // aa 1308 return this.requestTarget; 1309 } 1310 1311 /** 1312 * @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.) 1313 */ 1314 public PaymentReconciliation setRequestTarget(ProcessRequest value) { 1315 this.requestTarget = value; 1316 return this; 1317 } 1318 1319 /** 1320 * @return {@link #outcome} (Transaction status: error, complete.) 1321 */ 1322 public CodeableConcept getOutcome() { 1323 if (this.outcome == null) 1324 if (Configuration.errorOnAutoCreate()) 1325 throw new Error("Attempt to auto-create PaymentReconciliation.outcome"); 1326 else if (Configuration.doAutoCreate()) 1327 this.outcome = new CodeableConcept(); // cc 1328 return this.outcome; 1329 } 1330 1331 public boolean hasOutcome() { 1332 return this.outcome != null && !this.outcome.isEmpty(); 1333 } 1334 1335 /** 1336 * @param value {@link #outcome} (Transaction status: error, complete.) 1337 */ 1338 public PaymentReconciliation setOutcome(CodeableConcept value) { 1339 this.outcome = value; 1340 return this; 1341 } 1342 1343 /** 1344 * @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 1345 */ 1346 public StringType getDispositionElement() { 1347 if (this.disposition == null) 1348 if (Configuration.errorOnAutoCreate()) 1349 throw new Error("Attempt to auto-create PaymentReconciliation.disposition"); 1350 else if (Configuration.doAutoCreate()) 1351 this.disposition = new StringType(); // bb 1352 return this.disposition; 1353 } 1354 1355 public boolean hasDispositionElement() { 1356 return this.disposition != null && !this.disposition.isEmpty(); 1357 } 1358 1359 public boolean hasDisposition() { 1360 return this.disposition != null && !this.disposition.isEmpty(); 1361 } 1362 1363 /** 1364 * @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 1365 */ 1366 public PaymentReconciliation setDispositionElement(StringType value) { 1367 this.disposition = value; 1368 return this; 1369 } 1370 1371 /** 1372 * @return A description of the status of the adjudication. 1373 */ 1374 public String getDisposition() { 1375 return this.disposition == null ? null : this.disposition.getValue(); 1376 } 1377 1378 /** 1379 * @param value A description of the status of the adjudication. 1380 */ 1381 public PaymentReconciliation setDisposition(String value) { 1382 if (Utilities.noString(value)) 1383 this.disposition = null; 1384 else { 1385 if (this.disposition == null) 1386 this.disposition = new StringType(); 1387 this.disposition.setValue(value); 1388 } 1389 return this; 1390 } 1391 1392 /** 1393 * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 1394 */ 1395 public Reference getRequestProvider() { 1396 if (this.requestProvider == null) 1397 if (Configuration.errorOnAutoCreate()) 1398 throw new Error("Attempt to auto-create PaymentReconciliation.requestProvider"); 1399 else if (Configuration.doAutoCreate()) 1400 this.requestProvider = new Reference(); // cc 1401 return this.requestProvider; 1402 } 1403 1404 public boolean hasRequestProvider() { 1405 return this.requestProvider != null && !this.requestProvider.isEmpty(); 1406 } 1407 1408 /** 1409 * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 1410 */ 1411 public PaymentReconciliation setRequestProvider(Reference value) { 1412 this.requestProvider = value; 1413 return this; 1414 } 1415 1416 /** 1417 * @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.) 1418 */ 1419 public Practitioner getRequestProviderTarget() { 1420 if (this.requestProviderTarget == null) 1421 if (Configuration.errorOnAutoCreate()) 1422 throw new Error("Attempt to auto-create PaymentReconciliation.requestProvider"); 1423 else if (Configuration.doAutoCreate()) 1424 this.requestProviderTarget = new Practitioner(); // aa 1425 return this.requestProviderTarget; 1426 } 1427 1428 /** 1429 * @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.) 1430 */ 1431 public PaymentReconciliation setRequestProviderTarget(Practitioner value) { 1432 this.requestProviderTarget = value; 1433 return this; 1434 } 1435 1436 /** 1437 * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) 1438 */ 1439 public Reference getRequestOrganization() { 1440 if (this.requestOrganization == null) 1441 if (Configuration.errorOnAutoCreate()) 1442 throw new Error("Attempt to auto-create PaymentReconciliation.requestOrganization"); 1443 else if (Configuration.doAutoCreate()) 1444 this.requestOrganization = new Reference(); // cc 1445 return this.requestOrganization; 1446 } 1447 1448 public boolean hasRequestOrganization() { 1449 return this.requestOrganization != null && !this.requestOrganization.isEmpty(); 1450 } 1451 1452 /** 1453 * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) 1454 */ 1455 public PaymentReconciliation setRequestOrganization(Reference value) { 1456 this.requestOrganization = value; 1457 return this; 1458 } 1459 1460 /** 1461 * @return {@link #requestOrganization} 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 responsible for the services rendered to the patient.) 1462 */ 1463 public Organization getRequestOrganizationTarget() { 1464 if (this.requestOrganizationTarget == null) 1465 if (Configuration.errorOnAutoCreate()) 1466 throw new Error("Attempt to auto-create PaymentReconciliation.requestOrganization"); 1467 else if (Configuration.doAutoCreate()) 1468 this.requestOrganizationTarget = new Organization(); // aa 1469 return this.requestOrganizationTarget; 1470 } 1471 1472 /** 1473 * @param value {@link #requestOrganization} 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 responsible for the services rendered to the patient.) 1474 */ 1475 public PaymentReconciliation setRequestOrganizationTarget(Organization value) { 1476 this.requestOrganizationTarget = value; 1477 return this; 1478 } 1479 1480 /** 1481 * @return {@link #detail} (List of individual settlement amounts and the corresponding transaction.) 1482 */ 1483 public List<DetailsComponent> getDetail() { 1484 if (this.detail == null) 1485 this.detail = new ArrayList<DetailsComponent>(); 1486 return this.detail; 1487 } 1488 1489 /** 1490 * @return Returns a reference to <code>this</code> for easy method chaining 1491 */ 1492 public PaymentReconciliation setDetail(List<DetailsComponent> theDetail) { 1493 this.detail = theDetail; 1494 return this; 1495 } 1496 1497 public boolean hasDetail() { 1498 if (this.detail == null) 1499 return false; 1500 for (DetailsComponent item : this.detail) 1501 if (!item.isEmpty()) 1502 return true; 1503 return false; 1504 } 1505 1506 public DetailsComponent addDetail() { //3 1507 DetailsComponent t = new DetailsComponent(); 1508 if (this.detail == null) 1509 this.detail = new ArrayList<DetailsComponent>(); 1510 this.detail.add(t); 1511 return t; 1512 } 1513 1514 public PaymentReconciliation addDetail(DetailsComponent t) { //3 1515 if (t == null) 1516 return this; 1517 if (this.detail == null) 1518 this.detail = new ArrayList<DetailsComponent>(); 1519 this.detail.add(t); 1520 return this; 1521 } 1522 1523 /** 1524 * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist 1525 */ 1526 public DetailsComponent getDetailFirstRep() { 1527 if (getDetail().isEmpty()) { 1528 addDetail(); 1529 } 1530 return getDetail().get(0); 1531 } 1532 1533 /** 1534 * @return {@link #form} (The form to be used for printing the content.) 1535 */ 1536 public CodeableConcept getForm() { 1537 if (this.form == null) 1538 if (Configuration.errorOnAutoCreate()) 1539 throw new Error("Attempt to auto-create PaymentReconciliation.form"); 1540 else if (Configuration.doAutoCreate()) 1541 this.form = new CodeableConcept(); // cc 1542 return this.form; 1543 } 1544 1545 public boolean hasForm() { 1546 return this.form != null && !this.form.isEmpty(); 1547 } 1548 1549 /** 1550 * @param value {@link #form} (The form to be used for printing the content.) 1551 */ 1552 public PaymentReconciliation setForm(CodeableConcept value) { 1553 this.form = value; 1554 return this; 1555 } 1556 1557 /** 1558 * @return {@link #total} (Total payment amount.) 1559 */ 1560 public Money getTotal() { 1561 if (this.total == null) 1562 if (Configuration.errorOnAutoCreate()) 1563 throw new Error("Attempt to auto-create PaymentReconciliation.total"); 1564 else if (Configuration.doAutoCreate()) 1565 this.total = new Money(); // cc 1566 return this.total; 1567 } 1568 1569 public boolean hasTotal() { 1570 return this.total != null && !this.total.isEmpty(); 1571 } 1572 1573 /** 1574 * @param value {@link #total} (Total payment amount.) 1575 */ 1576 public PaymentReconciliation setTotal(Money value) { 1577 this.total = value; 1578 return this; 1579 } 1580 1581 /** 1582 * @return {@link #processNote} (Suite of notes.) 1583 */ 1584 public List<NotesComponent> getProcessNote() { 1585 if (this.processNote == null) 1586 this.processNote = new ArrayList<NotesComponent>(); 1587 return this.processNote; 1588 } 1589 1590 /** 1591 * @return Returns a reference to <code>this</code> for easy method chaining 1592 */ 1593 public PaymentReconciliation setProcessNote(List<NotesComponent> theProcessNote) { 1594 this.processNote = theProcessNote; 1595 return this; 1596 } 1597 1598 public boolean hasProcessNote() { 1599 if (this.processNote == null) 1600 return false; 1601 for (NotesComponent item : this.processNote) 1602 if (!item.isEmpty()) 1603 return true; 1604 return false; 1605 } 1606 1607 public NotesComponent addProcessNote() { //3 1608 NotesComponent t = new NotesComponent(); 1609 if (this.processNote == null) 1610 this.processNote = new ArrayList<NotesComponent>(); 1611 this.processNote.add(t); 1612 return t; 1613 } 1614 1615 public PaymentReconciliation addProcessNote(NotesComponent t) { //3 1616 if (t == null) 1617 return this; 1618 if (this.processNote == null) 1619 this.processNote = new ArrayList<NotesComponent>(); 1620 this.processNote.add(t); 1621 return this; 1622 } 1623 1624 /** 1625 * @return The first repetition of repeating field {@link #processNote}, creating it if it does not already exist 1626 */ 1627 public NotesComponent getProcessNoteFirstRep() { 1628 if (getProcessNote().isEmpty()) { 1629 addProcessNote(); 1630 } 1631 return getProcessNote().get(0); 1632 } 1633 1634 protected void listChildren(List<Property> childrenList) { 1635 super.listChildren(childrenList); 1636 childrenList.add(new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1637 childrenList.add(new Property("status", "code", "The status of the resource instance.", 0, java.lang.Integer.MAX_VALUE, status)); 1638 childrenList.add(new Property("period", "Period", "The period of time for which payments have been gathered into this bulk payment for settlement.", 0, java.lang.Integer.MAX_VALUE, period)); 1639 childrenList.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, created)); 1640 childrenList.add(new Property("organization", "Reference(Organization)", "The Insurer who produced this adjudicated response.", 0, java.lang.Integer.MAX_VALUE, organization)); 1641 childrenList.add(new Property("request", "Reference(ProcessRequest)", "Original request resource reference.", 0, java.lang.Integer.MAX_VALUE, request)); 1642 childrenList.add(new Property("outcome", "CodeableConcept", "Transaction status: error, complete.", 0, java.lang.Integer.MAX_VALUE, outcome)); 1643 childrenList.add(new Property("disposition", "string", "A description of the status of the adjudication.", 0, java.lang.Integer.MAX_VALUE, disposition)); 1644 childrenList.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestProvider)); 1645 childrenList.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, java.lang.Integer.MAX_VALUE, requestOrganization)); 1646 childrenList.add(new Property("detail", "", "List of individual settlement amounts and the corresponding transaction.", 0, java.lang.Integer.MAX_VALUE, detail)); 1647 childrenList.add(new Property("form", "CodeableConcept", "The form to be used for printing the content.", 0, java.lang.Integer.MAX_VALUE, form)); 1648 childrenList.add(new Property("total", "Money", "Total payment amount.", 0, java.lang.Integer.MAX_VALUE, total)); 1649 childrenList.add(new Property("processNote", "", "Suite of notes.", 0, java.lang.Integer.MAX_VALUE, processNote)); 1650 } 1651 1652 @Override 1653 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1654 switch (hash) { 1655 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1656 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PaymentReconciliationStatus> 1657 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 1658 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 1659 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 1660 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 1661 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // CodeableConcept 1662 case 583380919: /*disposition*/ return this.disposition == null ? new Base[0] : new Base[] {this.disposition}; // StringType 1663 case 1601527200: /*requestProvider*/ return this.requestProvider == null ? new Base[0] : new Base[] {this.requestProvider}; // Reference 1664 case 599053666: /*requestOrganization*/ return this.requestOrganization == null ? new Base[0] : new Base[] {this.requestOrganization}; // Reference 1665 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // DetailsComponent 1666 case 3148996: /*form*/ return this.form == null ? new Base[0] : new Base[] {this.form}; // CodeableConcept 1667 case 110549828: /*total*/ return this.total == null ? new Base[0] : new Base[] {this.total}; // Money 1668 case 202339073: /*processNote*/ return this.processNote == null ? new Base[0] : this.processNote.toArray(new Base[this.processNote.size()]); // NotesComponent 1669 default: return super.getProperty(hash, name, checkValid); 1670 } 1671 1672 } 1673 1674 @Override 1675 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1676 switch (hash) { 1677 case -1618432855: // identifier 1678 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1679 return value; 1680 case -892481550: // status 1681 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 1682 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 1683 return value; 1684 case -991726143: // period 1685 this.period = castToPeriod(value); // Period 1686 return value; 1687 case 1028554472: // created 1688 this.created = castToDateTime(value); // DateTimeType 1689 return value; 1690 case 1178922291: // organization 1691 this.organization = castToReference(value); // Reference 1692 return value; 1693 case 1095692943: // request 1694 this.request = castToReference(value); // Reference 1695 return value; 1696 case -1106507950: // outcome 1697 this.outcome = castToCodeableConcept(value); // CodeableConcept 1698 return value; 1699 case 583380919: // disposition 1700 this.disposition = castToString(value); // StringType 1701 return value; 1702 case 1601527200: // requestProvider 1703 this.requestProvider = castToReference(value); // Reference 1704 return value; 1705 case 599053666: // requestOrganization 1706 this.requestOrganization = castToReference(value); // Reference 1707 return value; 1708 case -1335224239: // detail 1709 this.getDetail().add((DetailsComponent) value); // DetailsComponent 1710 return value; 1711 case 3148996: // form 1712 this.form = castToCodeableConcept(value); // CodeableConcept 1713 return value; 1714 case 110549828: // total 1715 this.total = castToMoney(value); // Money 1716 return value; 1717 case 202339073: // processNote 1718 this.getProcessNote().add((NotesComponent) value); // NotesComponent 1719 return value; 1720 default: return super.setProperty(hash, name, value); 1721 } 1722 1723 } 1724 1725 @Override 1726 public Base setProperty(String name, Base value) throws FHIRException { 1727 if (name.equals("identifier")) { 1728 this.getIdentifier().add(castToIdentifier(value)); 1729 } else if (name.equals("status")) { 1730 value = new PaymentReconciliationStatusEnumFactory().fromType(castToCode(value)); 1731 this.status = (Enumeration) value; // Enumeration<PaymentReconciliationStatus> 1732 } else if (name.equals("period")) { 1733 this.period = castToPeriod(value); // Period 1734 } else if (name.equals("created")) { 1735 this.created = castToDateTime(value); // DateTimeType 1736 } else if (name.equals("organization")) { 1737 this.organization = castToReference(value); // Reference 1738 } else if (name.equals("request")) { 1739 this.request = castToReference(value); // Reference 1740 } else if (name.equals("outcome")) { 1741 this.outcome = castToCodeableConcept(value); // CodeableConcept 1742 } else if (name.equals("disposition")) { 1743 this.disposition = castToString(value); // StringType 1744 } else if (name.equals("requestProvider")) { 1745 this.requestProvider = castToReference(value); // Reference 1746 } else if (name.equals("requestOrganization")) { 1747 this.requestOrganization = castToReference(value); // Reference 1748 } else if (name.equals("detail")) { 1749 this.getDetail().add((DetailsComponent) value); 1750 } else if (name.equals("form")) { 1751 this.form = castToCodeableConcept(value); // CodeableConcept 1752 } else if (name.equals("total")) { 1753 this.total = castToMoney(value); // Money 1754 } else if (name.equals("processNote")) { 1755 this.getProcessNote().add((NotesComponent) value); 1756 } else 1757 return super.setProperty(name, value); 1758 return value; 1759 } 1760 1761 @Override 1762 public Base makeProperty(int hash, String name) throws FHIRException { 1763 switch (hash) { 1764 case -1618432855: return addIdentifier(); 1765 case -892481550: return getStatusElement(); 1766 case -991726143: return getPeriod(); 1767 case 1028554472: return getCreatedElement(); 1768 case 1178922291: return getOrganization(); 1769 case 1095692943: return getRequest(); 1770 case -1106507950: return getOutcome(); 1771 case 583380919: return getDispositionElement(); 1772 case 1601527200: return getRequestProvider(); 1773 case 599053666: return getRequestOrganization(); 1774 case -1335224239: return addDetail(); 1775 case 3148996: return getForm(); 1776 case 110549828: return getTotal(); 1777 case 202339073: return addProcessNote(); 1778 default: return super.makeProperty(hash, name); 1779 } 1780 1781 } 1782 1783 @Override 1784 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1785 switch (hash) { 1786 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1787 case -892481550: /*status*/ return new String[] {"code"}; 1788 case -991726143: /*period*/ return new String[] {"Period"}; 1789 case 1028554472: /*created*/ return new String[] {"dateTime"}; 1790 case 1178922291: /*organization*/ return new String[] {"Reference"}; 1791 case 1095692943: /*request*/ return new String[] {"Reference"}; 1792 case -1106507950: /*outcome*/ return new String[] {"CodeableConcept"}; 1793 case 583380919: /*disposition*/ return new String[] {"string"}; 1794 case 1601527200: /*requestProvider*/ return new String[] {"Reference"}; 1795 case 599053666: /*requestOrganization*/ return new String[] {"Reference"}; 1796 case -1335224239: /*detail*/ return new String[] {}; 1797 case 3148996: /*form*/ return new String[] {"CodeableConcept"}; 1798 case 110549828: /*total*/ return new String[] {"Money"}; 1799 case 202339073: /*processNote*/ return new String[] {}; 1800 default: return super.getTypesForProperty(hash, name); 1801 } 1802 1803 } 1804 1805 @Override 1806 public Base addChild(String name) throws FHIRException { 1807 if (name.equals("identifier")) { 1808 return addIdentifier(); 1809 } 1810 else if (name.equals("status")) { 1811 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.status"); 1812 } 1813 else if (name.equals("period")) { 1814 this.period = new Period(); 1815 return this.period; 1816 } 1817 else if (name.equals("created")) { 1818 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.created"); 1819 } 1820 else if (name.equals("organization")) { 1821 this.organization = new Reference(); 1822 return this.organization; 1823 } 1824 else if (name.equals("request")) { 1825 this.request = new Reference(); 1826 return this.request; 1827 } 1828 else if (name.equals("outcome")) { 1829 this.outcome = new CodeableConcept(); 1830 return this.outcome; 1831 } 1832 else if (name.equals("disposition")) { 1833 throw new FHIRException("Cannot call addChild on a primitive type PaymentReconciliation.disposition"); 1834 } 1835 else if (name.equals("requestProvider")) { 1836 this.requestProvider = new Reference(); 1837 return this.requestProvider; 1838 } 1839 else if (name.equals("requestOrganization")) { 1840 this.requestOrganization = new Reference(); 1841 return this.requestOrganization; 1842 } 1843 else if (name.equals("detail")) { 1844 return addDetail(); 1845 } 1846 else if (name.equals("form")) { 1847 this.form = new CodeableConcept(); 1848 return this.form; 1849 } 1850 else if (name.equals("total")) { 1851 this.total = new Money(); 1852 return this.total; 1853 } 1854 else if (name.equals("processNote")) { 1855 return addProcessNote(); 1856 } 1857 else 1858 return super.addChild(name); 1859 } 1860 1861 public String fhirType() { 1862 return "PaymentReconciliation"; 1863 1864 } 1865 1866 public PaymentReconciliation copy() { 1867 PaymentReconciliation dst = new PaymentReconciliation(); 1868 copyValues(dst); 1869 if (identifier != null) { 1870 dst.identifier = new ArrayList<Identifier>(); 1871 for (Identifier i : identifier) 1872 dst.identifier.add(i.copy()); 1873 }; 1874 dst.status = status == null ? null : status.copy(); 1875 dst.period = period == null ? null : period.copy(); 1876 dst.created = created == null ? null : created.copy(); 1877 dst.organization = organization == null ? null : organization.copy(); 1878 dst.request = request == null ? null : request.copy(); 1879 dst.outcome = outcome == null ? null : outcome.copy(); 1880 dst.disposition = disposition == null ? null : disposition.copy(); 1881 dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); 1882 dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); 1883 if (detail != null) { 1884 dst.detail = new ArrayList<DetailsComponent>(); 1885 for (DetailsComponent i : detail) 1886 dst.detail.add(i.copy()); 1887 }; 1888 dst.form = form == null ? null : form.copy(); 1889 dst.total = total == null ? null : total.copy(); 1890 if (processNote != null) { 1891 dst.processNote = new ArrayList<NotesComponent>(); 1892 for (NotesComponent i : processNote) 1893 dst.processNote.add(i.copy()); 1894 }; 1895 return dst; 1896 } 1897 1898 protected PaymentReconciliation typedCopy() { 1899 return copy(); 1900 } 1901 1902 @Override 1903 public boolean equalsDeep(Base other) { 1904 if (!super.equalsDeep(other)) 1905 return false; 1906 if (!(other instanceof PaymentReconciliation)) 1907 return false; 1908 PaymentReconciliation o = (PaymentReconciliation) other; 1909 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(period, o.period, true) 1910 && compareDeep(created, o.created, true) && compareDeep(organization, o.organization, true) && compareDeep(request, o.request, true) 1911 && compareDeep(outcome, o.outcome, true) && compareDeep(disposition, o.disposition, true) && compareDeep(requestProvider, o.requestProvider, true) 1912 && compareDeep(requestOrganization, o.requestOrganization, true) && compareDeep(detail, o.detail, true) 1913 && compareDeep(form, o.form, true) && compareDeep(total, o.total, true) && compareDeep(processNote, o.processNote, true) 1914 ; 1915 } 1916 1917 @Override 1918 public boolean equalsShallow(Base other) { 1919 if (!super.equalsShallow(other)) 1920 return false; 1921 if (!(other instanceof PaymentReconciliation)) 1922 return false; 1923 PaymentReconciliation o = (PaymentReconciliation) other; 1924 return compareValues(status, o.status, true) && compareValues(created, o.created, true) && compareValues(disposition, o.disposition, true) 1925 ; 1926 } 1927 1928 public boolean isEmpty() { 1929 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, period 1930 , created, organization, request, outcome, disposition, requestProvider, requestOrganization 1931 , detail, form, total, processNote); 1932 } 1933 1934 @Override 1935 public ResourceType getResourceType() { 1936 return ResourceType.PaymentReconciliation; 1937 } 1938 1939 /** 1940 * Search parameter: <b>identifier</b> 1941 * <p> 1942 * Description: <b>The business identifier of the Explanation of Benefit</b><br> 1943 * Type: <b>token</b><br> 1944 * Path: <b>PaymentReconciliation.identifier</b><br> 1945 * </p> 1946 */ 1947 @SearchParamDefinition(name="identifier", path="PaymentReconciliation.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) 1948 public static final String SP_IDENTIFIER = "identifier"; 1949 /** 1950 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1951 * <p> 1952 * Description: <b>The business identifier of the Explanation of Benefit</b><br> 1953 * Type: <b>token</b><br> 1954 * Path: <b>PaymentReconciliation.identifier</b><br> 1955 * </p> 1956 */ 1957 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1958 1959 /** 1960 * Search parameter: <b>request</b> 1961 * <p> 1962 * Description: <b>The reference to the claim</b><br> 1963 * Type: <b>reference</b><br> 1964 * Path: <b>PaymentReconciliation.request</b><br> 1965 * </p> 1966 */ 1967 @SearchParamDefinition(name="request", path="PaymentReconciliation.request", description="The reference to the claim", type="reference", target={ProcessRequest.class } ) 1968 public static final String SP_REQUEST = "request"; 1969 /** 1970 * <b>Fluent Client</b> search parameter constant for <b>request</b> 1971 * <p> 1972 * Description: <b>The reference to the claim</b><br> 1973 * Type: <b>reference</b><br> 1974 * Path: <b>PaymentReconciliation.request</b><br> 1975 * </p> 1976 */ 1977 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST); 1978 1979/** 1980 * Constant for fluent queries to be used to add include statements. Specifies 1981 * the path value of "<b>PaymentReconciliation:request</b>". 1982 */ 1983 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request").toLocked(); 1984 1985 /** 1986 * Search parameter: <b>disposition</b> 1987 * <p> 1988 * Description: <b>The contents of the disposition message</b><br> 1989 * Type: <b>string</b><br> 1990 * Path: <b>PaymentReconciliation.disposition</b><br> 1991 * </p> 1992 */ 1993 @SearchParamDefinition(name="disposition", path="PaymentReconciliation.disposition", description="The contents of the disposition message", type="string" ) 1994 public static final String SP_DISPOSITION = "disposition"; 1995 /** 1996 * <b>Fluent Client</b> search parameter constant for <b>disposition</b> 1997 * <p> 1998 * Description: <b>The contents of the disposition message</b><br> 1999 * Type: <b>string</b><br> 2000 * Path: <b>PaymentReconciliation.disposition</b><br> 2001 * </p> 2002 */ 2003 public static final ca.uhn.fhir.rest.gclient.StringClientParam DISPOSITION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DISPOSITION); 2004 2005 /** 2006 * Search parameter: <b>created</b> 2007 * <p> 2008 * Description: <b>The creation date</b><br> 2009 * Type: <b>date</b><br> 2010 * Path: <b>PaymentReconciliation.created</b><br> 2011 * </p> 2012 */ 2013 @SearchParamDefinition(name="created", path="PaymentReconciliation.created", description="The creation date", type="date" ) 2014 public static final String SP_CREATED = "created"; 2015 /** 2016 * <b>Fluent Client</b> search parameter constant for <b>created</b> 2017 * <p> 2018 * Description: <b>The creation date</b><br> 2019 * Type: <b>date</b><br> 2020 * Path: <b>PaymentReconciliation.created</b><br> 2021 * </p> 2022 */ 2023 public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED); 2024 2025 /** 2026 * Search parameter: <b>organization</b> 2027 * <p> 2028 * Description: <b>The organization who generated this resource</b><br> 2029 * Type: <b>reference</b><br> 2030 * Path: <b>PaymentReconciliation.organization</b><br> 2031 * </p> 2032 */ 2033 @SearchParamDefinition(name="organization", path="PaymentReconciliation.organization", description="The organization who generated this resource", type="reference", target={Organization.class } ) 2034 public static final String SP_ORGANIZATION = "organization"; 2035 /** 2036 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 2037 * <p> 2038 * Description: <b>The organization who generated this resource</b><br> 2039 * Type: <b>reference</b><br> 2040 * Path: <b>PaymentReconciliation.organization</b><br> 2041 * </p> 2042 */ 2043 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 2044 2045/** 2046 * Constant for fluent queries to be used to add include statements. Specifies 2047 * the path value of "<b>PaymentReconciliation:organization</b>". 2048 */ 2049 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:organization").toLocked(); 2050 2051 /** 2052 * Search parameter: <b>request-organization</b> 2053 * <p> 2054 * Description: <b>The organization who generated this resource</b><br> 2055 * Type: <b>reference</b><br> 2056 * Path: <b>PaymentReconciliation.requestOrganization</b><br> 2057 * </p> 2058 */ 2059 @SearchParamDefinition(name="request-organization", path="PaymentReconciliation.requestOrganization", description="The organization who generated this resource", type="reference", target={Organization.class } ) 2060 public static final String SP_REQUEST_ORGANIZATION = "request-organization"; 2061 /** 2062 * <b>Fluent Client</b> search parameter constant for <b>request-organization</b> 2063 * <p> 2064 * Description: <b>The organization who generated this resource</b><br> 2065 * Type: <b>reference</b><br> 2066 * Path: <b>PaymentReconciliation.requestOrganization</b><br> 2067 * </p> 2068 */ 2069 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST_ORGANIZATION); 2070 2071/** 2072 * Constant for fluent queries to be used to add include statements. Specifies 2073 * the path value of "<b>PaymentReconciliation:request-organization</b>". 2074 */ 2075 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST_ORGANIZATION = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request-organization").toLocked(); 2076 2077 /** 2078 * Search parameter: <b>request-provider</b> 2079 * <p> 2080 * Description: <b>The reference to the provider who sumbitted the claim</b><br> 2081 * Type: <b>reference</b><br> 2082 * Path: <b>PaymentReconciliation.requestProvider</b><br> 2083 * </p> 2084 */ 2085 @SearchParamDefinition(name="request-provider", path="PaymentReconciliation.requestProvider", description="The reference to the provider who sumbitted the claim", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Practitioner.class } ) 2086 public static final String SP_REQUEST_PROVIDER = "request-provider"; 2087 /** 2088 * <b>Fluent Client</b> search parameter constant for <b>request-provider</b> 2089 * <p> 2090 * Description: <b>The reference to the provider who sumbitted the claim</b><br> 2091 * Type: <b>reference</b><br> 2092 * Path: <b>PaymentReconciliation.requestProvider</b><br> 2093 * </p> 2094 */ 2095 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST_PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST_PROVIDER); 2096 2097/** 2098 * Constant for fluent queries to be used to add include statements. Specifies 2099 * the path value of "<b>PaymentReconciliation:request-provider</b>". 2100 */ 2101 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST_PROVIDER = new ca.uhn.fhir.model.api.Include("PaymentReconciliation:request-provider").toLocked(); 2102 2103 /** 2104 * Search parameter: <b>outcome</b> 2105 * <p> 2106 * Description: <b>The processing outcome</b><br> 2107 * Type: <b>token</b><br> 2108 * Path: <b>PaymentReconciliation.outcome</b><br> 2109 * </p> 2110 */ 2111 @SearchParamDefinition(name="outcome", path="PaymentReconciliation.outcome", description="The processing outcome", type="token" ) 2112 public static final String SP_OUTCOME = "outcome"; 2113 /** 2114 * <b>Fluent Client</b> search parameter constant for <b>outcome</b> 2115 * <p> 2116 * Description: <b>The processing outcome</b><br> 2117 * Type: <b>token</b><br> 2118 * Path: <b>PaymentReconciliation.outcome</b><br> 2119 * </p> 2120 */ 2121 public static final ca.uhn.fhir.rest.gclient.TokenClientParam OUTCOME = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_OUTCOME); 2122 2123 2124} 2125