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