001package org.hl7.fhir.dstu3.model; 002 003 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 035import java.util.ArrayList; 036import java.util.Date; 037import java.util.List; 038 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.utilities.Utilities; 042 043import ca.uhn.fhir.model.api.annotation.Block; 044import ca.uhn.fhir.model.api.annotation.Child; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.ResourceDef; 047import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 048/** 049 * This resource provides processing status, errors and notes from the processing of a resource. 050 */ 051@ResourceDef(name="ProcessResponse", profile="http://hl7.org/fhir/Profile/ProcessResponse") 052public class ProcessResponse extends DomainResource { 053 054 public enum ProcessResponseStatus { 055 /** 056 * The instance is currently in-force. 057 */ 058 ACTIVE, 059 /** 060 * The instance is withdrawn, rescinded or reversed. 061 */ 062 CANCELLED, 063 /** 064 * A new instance the contents of which is not complete. 065 */ 066 DRAFT, 067 /** 068 * The instance was entered in error. 069 */ 070 ENTEREDINERROR, 071 /** 072 * added to help the parsers with the generic types 073 */ 074 NULL; 075 public static ProcessResponseStatus fromCode(String codeString) throws FHIRException { 076 if (codeString == null || "".equals(codeString)) 077 return null; 078 if ("active".equals(codeString)) 079 return ACTIVE; 080 if ("cancelled".equals(codeString)) 081 return CANCELLED; 082 if ("draft".equals(codeString)) 083 return DRAFT; 084 if ("entered-in-error".equals(codeString)) 085 return ENTEREDINERROR; 086 if (Configuration.isAcceptInvalidEnums()) 087 return null; 088 else 089 throw new FHIRException("Unknown ProcessResponseStatus code '"+codeString+"'"); 090 } 091 public String toCode() { 092 switch (this) { 093 case ACTIVE: return "active"; 094 case CANCELLED: return "cancelled"; 095 case DRAFT: return "draft"; 096 case ENTEREDINERROR: return "entered-in-error"; 097 case NULL: return null; 098 default: return "?"; 099 } 100 } 101 public String getSystem() { 102 switch (this) { 103 case ACTIVE: return "http://hl7.org/fhir/fm-status"; 104 case CANCELLED: return "http://hl7.org/fhir/fm-status"; 105 case DRAFT: return "http://hl7.org/fhir/fm-status"; 106 case ENTEREDINERROR: return "http://hl7.org/fhir/fm-status"; 107 case NULL: return null; 108 default: return "?"; 109 } 110 } 111 public String getDefinition() { 112 switch (this) { 113 case ACTIVE: return "The instance is currently in-force."; 114 case CANCELLED: return "The instance is withdrawn, rescinded or reversed."; 115 case DRAFT: return "A new instance the contents of which is not complete."; 116 case ENTEREDINERROR: return "The instance was entered in error."; 117 case NULL: return null; 118 default: return "?"; 119 } 120 } 121 public String getDisplay() { 122 switch (this) { 123 case ACTIVE: return "Active"; 124 case CANCELLED: return "Cancelled"; 125 case DRAFT: return "Draft"; 126 case ENTEREDINERROR: return "Entered in Error"; 127 case NULL: return null; 128 default: return "?"; 129 } 130 } 131 } 132 133 public static class ProcessResponseStatusEnumFactory implements EnumFactory<ProcessResponseStatus> { 134 public ProcessResponseStatus fromCode(String codeString) throws IllegalArgumentException { 135 if (codeString == null || "".equals(codeString)) 136 if (codeString == null || "".equals(codeString)) 137 return null; 138 if ("active".equals(codeString)) 139 return ProcessResponseStatus.ACTIVE; 140 if ("cancelled".equals(codeString)) 141 return ProcessResponseStatus.CANCELLED; 142 if ("draft".equals(codeString)) 143 return ProcessResponseStatus.DRAFT; 144 if ("entered-in-error".equals(codeString)) 145 return ProcessResponseStatus.ENTEREDINERROR; 146 throw new IllegalArgumentException("Unknown ProcessResponseStatus code '"+codeString+"'"); 147 } 148 public Enumeration<ProcessResponseStatus> fromType(PrimitiveType<?> code) throws FHIRException { 149 if (code == null) 150 return null; 151 if (code.isEmpty()) 152 return new Enumeration<ProcessResponseStatus>(this); 153 String codeString = code.asStringValue(); 154 if (codeString == null || "".equals(codeString)) 155 return null; 156 if ("active".equals(codeString)) 157 return new Enumeration<ProcessResponseStatus>(this, ProcessResponseStatus.ACTIVE); 158 if ("cancelled".equals(codeString)) 159 return new Enumeration<ProcessResponseStatus>(this, ProcessResponseStatus.CANCELLED); 160 if ("draft".equals(codeString)) 161 return new Enumeration<ProcessResponseStatus>(this, ProcessResponseStatus.DRAFT); 162 if ("entered-in-error".equals(codeString)) 163 return new Enumeration<ProcessResponseStatus>(this, ProcessResponseStatus.ENTEREDINERROR); 164 throw new FHIRException("Unknown ProcessResponseStatus code '"+codeString+"'"); 165 } 166 public String toCode(ProcessResponseStatus code) { 167 if (code == ProcessResponseStatus.ACTIVE) 168 return "active"; 169 if (code == ProcessResponseStatus.CANCELLED) 170 return "cancelled"; 171 if (code == ProcessResponseStatus.DRAFT) 172 return "draft"; 173 if (code == ProcessResponseStatus.ENTEREDINERROR) 174 return "entered-in-error"; 175 return "?"; 176 } 177 public String toSystem(ProcessResponseStatus code) { 178 return code.getSystem(); 179 } 180 } 181 182 @Block() 183 public static class ProcessResponseProcessNoteComponent extends BackboneElement implements IBaseBackboneElement { 184 /** 185 * The note purpose: Print/Display. 186 */ 187 @Child(name = "type", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 188 @Description(shortDefinition="display | print | printoper", formalDefinition="The note purpose: Print/Display." ) 189 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/note-type") 190 protected CodeableConcept type; 191 192 /** 193 * The note text. 194 */ 195 @Child(name = "text", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 196 @Description(shortDefinition="Comment on the processing", formalDefinition="The note text." ) 197 protected StringType text; 198 199 private static final long serialVersionUID = 874830709L; 200 201 /** 202 * Constructor 203 */ 204 public ProcessResponseProcessNoteComponent() { 205 super(); 206 } 207 208 /** 209 * @return {@link #type} (The note purpose: Print/Display.) 210 */ 211 public CodeableConcept getType() { 212 if (this.type == null) 213 if (Configuration.errorOnAutoCreate()) 214 throw new Error("Attempt to auto-create ProcessResponseProcessNoteComponent.type"); 215 else if (Configuration.doAutoCreate()) 216 this.type = new CodeableConcept(); // cc 217 return this.type; 218 } 219 220 public boolean hasType() { 221 return this.type != null && !this.type.isEmpty(); 222 } 223 224 /** 225 * @param value {@link #type} (The note purpose: Print/Display.) 226 */ 227 public ProcessResponseProcessNoteComponent setType(CodeableConcept value) { 228 this.type = value; 229 return this; 230 } 231 232 /** 233 * @return {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 234 */ 235 public StringType getTextElement() { 236 if (this.text == null) 237 if (Configuration.errorOnAutoCreate()) 238 throw new Error("Attempt to auto-create ProcessResponseProcessNoteComponent.text"); 239 else if (Configuration.doAutoCreate()) 240 this.text = new StringType(); // bb 241 return this.text; 242 } 243 244 public boolean hasTextElement() { 245 return this.text != null && !this.text.isEmpty(); 246 } 247 248 public boolean hasText() { 249 return this.text != null && !this.text.isEmpty(); 250 } 251 252 /** 253 * @param value {@link #text} (The note text.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 254 */ 255 public ProcessResponseProcessNoteComponent setTextElement(StringType value) { 256 this.text = value; 257 return this; 258 } 259 260 /** 261 * @return The note text. 262 */ 263 public String getText() { 264 return this.text == null ? null : this.text.getValue(); 265 } 266 267 /** 268 * @param value The note text. 269 */ 270 public ProcessResponseProcessNoteComponent setText(String value) { 271 if (Utilities.noString(value)) 272 this.text = null; 273 else { 274 if (this.text == null) 275 this.text = new StringType(); 276 this.text.setValue(value); 277 } 278 return this; 279 } 280 281 protected void listChildren(List<Property> children) { 282 super.listChildren(children); 283 children.add(new Property("type", "CodeableConcept", "The note purpose: Print/Display.", 0, 1, type)); 284 children.add(new Property("text", "string", "The note text.", 0, 1, text)); 285 } 286 287 @Override 288 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 289 switch (_hash) { 290 case 3575610: /*type*/ return new Property("type", "CodeableConcept", "The note purpose: Print/Display.", 0, 1, type); 291 case 3556653: /*text*/ return new Property("text", "string", "The note text.", 0, 1, text); 292 default: return super.getNamedProperty(_hash, _name, _checkValid); 293 } 294 295 } 296 297 @Override 298 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 299 switch (hash) { 300 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept 301 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 302 default: return super.getProperty(hash, name, checkValid); 303 } 304 305 } 306 307 @Override 308 public Base setProperty(int hash, String name, Base value) throws FHIRException { 309 switch (hash) { 310 case 3575610: // type 311 this.type = castToCodeableConcept(value); // CodeableConcept 312 return value; 313 case 3556653: // text 314 this.text = castToString(value); // StringType 315 return value; 316 default: return super.setProperty(hash, name, value); 317 } 318 319 } 320 321 @Override 322 public Base setProperty(String name, Base value) throws FHIRException { 323 if (name.equals("type")) { 324 this.type = castToCodeableConcept(value); // CodeableConcept 325 } else if (name.equals("text")) { 326 this.text = castToString(value); // StringType 327 } else 328 return super.setProperty(name, value); 329 return value; 330 } 331 332 @Override 333 public Base makeProperty(int hash, String name) throws FHIRException { 334 switch (hash) { 335 case 3575610: return getType(); 336 case 3556653: return getTextElement(); 337 default: return super.makeProperty(hash, name); 338 } 339 340 } 341 342 @Override 343 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 344 switch (hash) { 345 case 3575610: /*type*/ return new String[] {"CodeableConcept"}; 346 case 3556653: /*text*/ return new String[] {"string"}; 347 default: return super.getTypesForProperty(hash, name); 348 } 349 350 } 351 352 @Override 353 public Base addChild(String name) throws FHIRException { 354 if (name.equals("type")) { 355 this.type = new CodeableConcept(); 356 return this.type; 357 } 358 else if (name.equals("text")) { 359 throw new FHIRException("Cannot call addChild on a singleton property ProcessResponse.text"); 360 } 361 else 362 return super.addChild(name); 363 } 364 365 public ProcessResponseProcessNoteComponent copy() { 366 ProcessResponseProcessNoteComponent dst = new ProcessResponseProcessNoteComponent(); 367 copyValues(dst); 368 dst.type = type == null ? null : type.copy(); 369 dst.text = text == null ? null : text.copy(); 370 return dst; 371 } 372 373 @Override 374 public boolean equalsDeep(Base other_) { 375 if (!super.equalsDeep(other_)) 376 return false; 377 if (!(other_ instanceof ProcessResponseProcessNoteComponent)) 378 return false; 379 ProcessResponseProcessNoteComponent o = (ProcessResponseProcessNoteComponent) other_; 380 return compareDeep(type, o.type, true) && compareDeep(text, o.text, true); 381 } 382 383 @Override 384 public boolean equalsShallow(Base other_) { 385 if (!super.equalsShallow(other_)) 386 return false; 387 if (!(other_ instanceof ProcessResponseProcessNoteComponent)) 388 return false; 389 ProcessResponseProcessNoteComponent o = (ProcessResponseProcessNoteComponent) other_; 390 return compareValues(text, o.text, true); 391 } 392 393 public boolean isEmpty() { 394 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, text); 395 } 396 397 public String fhirType() { 398 return "ProcessResponse.processNote"; 399 400 } 401 402 } 403 404 /** 405 * The Response business identifier. 406 */ 407 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 408 @Description(shortDefinition="Business Identifier", formalDefinition="The Response business identifier." ) 409 protected List<Identifier> identifier; 410 411 /** 412 * The status of the resource instance. 413 */ 414 @Child(name = "status", type = {CodeType.class}, order=1, min=0, max=1, modifier=true, summary=true) 415 @Description(shortDefinition="active | cancelled | draft | entered-in-error", formalDefinition="The status of the resource instance." ) 416 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/fm-status") 417 protected Enumeration<ProcessResponseStatus> status; 418 419 /** 420 * The date when the enclosed suite of services were performed or completed. 421 */ 422 @Child(name = "created", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false) 423 @Description(shortDefinition="Creation date", formalDefinition="The date when the enclosed suite of services were performed or completed." ) 424 protected DateTimeType created; 425 426 /** 427 * The organization who produced this adjudicated response. 428 */ 429 @Child(name = "organization", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=false) 430 @Description(shortDefinition="Authoring Organization", formalDefinition="The organization who produced this adjudicated response." ) 431 protected Reference organization; 432 433 /** 434 * The actual object that is the target of the reference (The organization who produced this adjudicated response.) 435 */ 436 protected Organization organizationTarget; 437 438 /** 439 * Original request resource reference. 440 */ 441 @Child(name = "request", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=false) 442 @Description(shortDefinition="Request reference", formalDefinition="Original request resource reference." ) 443 protected Reference request; 444 445 /** 446 * The actual object that is the target of the reference (Original request resource reference.) 447 */ 448 protected Resource requestTarget; 449 450 /** 451 * Transaction status: error, complete, held. 452 */ 453 @Child(name = "outcome", type = {CodeableConcept.class}, order=5, min=0, max=1, modifier=false, summary=false) 454 @Description(shortDefinition="Processing outcome", formalDefinition="Transaction status: error, complete, held." ) 455 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/process-outcome") 456 protected CodeableConcept outcome; 457 458 /** 459 * A description of the status of the adjudication or processing. 460 */ 461 @Child(name = "disposition", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 462 @Description(shortDefinition="Disposition Message", formalDefinition="A description of the status of the adjudication or processing." ) 463 protected StringType disposition; 464 465 /** 466 * The practitioner who is responsible for the services rendered to the patient. 467 */ 468 @Child(name = "requestProvider", type = {Practitioner.class}, order=7, min=0, max=1, modifier=false, summary=false) 469 @Description(shortDefinition="Responsible Practitioner", formalDefinition="The practitioner who is responsible for the services rendered to the patient." ) 470 protected Reference requestProvider; 471 472 /** 473 * The actual object that is the target of the reference (The practitioner who is responsible for the services rendered to the patient.) 474 */ 475 protected Practitioner requestProviderTarget; 476 477 /** 478 * The organization which is responsible for the services rendered to the patient. 479 */ 480 @Child(name = "requestOrganization", type = {Organization.class}, order=8, min=0, max=1, modifier=false, summary=false) 481 @Description(shortDefinition="Responsible organization", formalDefinition="The organization which is responsible for the services rendered to the patient." ) 482 protected Reference requestOrganization; 483 484 /** 485 * The actual object that is the target of the reference (The organization which is responsible for the services rendered to the patient.) 486 */ 487 protected Organization requestOrganizationTarget; 488 489 /** 490 * The form to be used for printing the content. 491 */ 492 @Child(name = "form", type = {CodeableConcept.class}, order=9, min=0, max=1, modifier=false, summary=false) 493 @Description(shortDefinition="Printed Form Identifier", formalDefinition="The form to be used for printing the content." ) 494 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/forms") 495 protected CodeableConcept form; 496 497 /** 498 * Suite of processing notes or additional requirements if the processing has been held. 499 */ 500 @Child(name = "processNote", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 501 @Description(shortDefinition="Processing comments or additional requirements", formalDefinition="Suite of processing notes or additional requirements if the processing has been held." ) 502 protected List<ProcessResponseProcessNoteComponent> processNote; 503 504 /** 505 * Processing errors. 506 */ 507 @Child(name = "error", type = {CodeableConcept.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 508 @Description(shortDefinition="Error code", formalDefinition="Processing errors." ) 509 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/adjudication-error") 510 protected List<CodeableConcept> error; 511 512 /** 513 * Request for additional supporting or authorizing information, such as: documents, images or resources. 514 */ 515 @Child(name = "communicationRequest", type = {CommunicationRequest.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 516 @Description(shortDefinition="Request for additional information", formalDefinition="Request for additional supporting or authorizing information, such as: documents, images or resources." ) 517 protected List<Reference> communicationRequest; 518 /** 519 * The actual objects that are the target of the reference (Request for additional supporting or authorizing information, such as: documents, images or resources.) 520 */ 521 protected List<CommunicationRequest> communicationRequestTarget; 522 523 524 private static final long serialVersionUID = -2058462467L; 525 526 /** 527 * Constructor 528 */ 529 public ProcessResponse() { 530 super(); 531 } 532 533 /** 534 * @return {@link #identifier} (The Response business identifier.) 535 */ 536 public List<Identifier> getIdentifier() { 537 if (this.identifier == null) 538 this.identifier = new ArrayList<Identifier>(); 539 return this.identifier; 540 } 541 542 /** 543 * @return Returns a reference to <code>this</code> for easy method chaining 544 */ 545 public ProcessResponse setIdentifier(List<Identifier> theIdentifier) { 546 this.identifier = theIdentifier; 547 return this; 548 } 549 550 public boolean hasIdentifier() { 551 if (this.identifier == null) 552 return false; 553 for (Identifier item : this.identifier) 554 if (!item.isEmpty()) 555 return true; 556 return false; 557 } 558 559 public Identifier addIdentifier() { //3 560 Identifier t = new Identifier(); 561 if (this.identifier == null) 562 this.identifier = new ArrayList<Identifier>(); 563 this.identifier.add(t); 564 return t; 565 } 566 567 public ProcessResponse addIdentifier(Identifier t) { //3 568 if (t == null) 569 return this; 570 if (this.identifier == null) 571 this.identifier = new ArrayList<Identifier>(); 572 this.identifier.add(t); 573 return this; 574 } 575 576 /** 577 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 578 */ 579 public Identifier getIdentifierFirstRep() { 580 if (getIdentifier().isEmpty()) { 581 addIdentifier(); 582 } 583 return getIdentifier().get(0); 584 } 585 586 /** 587 * @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 588 */ 589 public Enumeration<ProcessResponseStatus> getStatusElement() { 590 if (this.status == null) 591 if (Configuration.errorOnAutoCreate()) 592 throw new Error("Attempt to auto-create ProcessResponse.status"); 593 else if (Configuration.doAutoCreate()) 594 this.status = new Enumeration<ProcessResponseStatus>(new ProcessResponseStatusEnumFactory()); // bb 595 return this.status; 596 } 597 598 public boolean hasStatusElement() { 599 return this.status != null && !this.status.isEmpty(); 600 } 601 602 public boolean hasStatus() { 603 return this.status != null && !this.status.isEmpty(); 604 } 605 606 /** 607 * @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 608 */ 609 public ProcessResponse setStatusElement(Enumeration<ProcessResponseStatus> value) { 610 this.status = value; 611 return this; 612 } 613 614 /** 615 * @return The status of the resource instance. 616 */ 617 public ProcessResponseStatus getStatus() { 618 return this.status == null ? null : this.status.getValue(); 619 } 620 621 /** 622 * @param value The status of the resource instance. 623 */ 624 public ProcessResponse setStatus(ProcessResponseStatus value) { 625 if (value == null) 626 this.status = null; 627 else { 628 if (this.status == null) 629 this.status = new Enumeration<ProcessResponseStatus>(new ProcessResponseStatusEnumFactory()); 630 this.status.setValue(value); 631 } 632 return this; 633 } 634 635 /** 636 * @return {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 637 */ 638 public DateTimeType getCreatedElement() { 639 if (this.created == null) 640 if (Configuration.errorOnAutoCreate()) 641 throw new Error("Attempt to auto-create ProcessResponse.created"); 642 else if (Configuration.doAutoCreate()) 643 this.created = new DateTimeType(); // bb 644 return this.created; 645 } 646 647 public boolean hasCreatedElement() { 648 return this.created != null && !this.created.isEmpty(); 649 } 650 651 public boolean hasCreated() { 652 return this.created != null && !this.created.isEmpty(); 653 } 654 655 /** 656 * @param value {@link #created} (The date when the enclosed suite of services were performed or completed.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value 657 */ 658 public ProcessResponse setCreatedElement(DateTimeType value) { 659 this.created = value; 660 return this; 661 } 662 663 /** 664 * @return The date when the enclosed suite of services were performed or completed. 665 */ 666 public Date getCreated() { 667 return this.created == null ? null : this.created.getValue(); 668 } 669 670 /** 671 * @param value The date when the enclosed suite of services were performed or completed. 672 */ 673 public ProcessResponse setCreated(Date value) { 674 if (value == null) 675 this.created = null; 676 else { 677 if (this.created == null) 678 this.created = new DateTimeType(); 679 this.created.setValue(value); 680 } 681 return this; 682 } 683 684 /** 685 * @return {@link #organization} (The organization who produced this adjudicated response.) 686 */ 687 public Reference getOrganization() { 688 if (this.organization == null) 689 if (Configuration.errorOnAutoCreate()) 690 throw new Error("Attempt to auto-create ProcessResponse.organization"); 691 else if (Configuration.doAutoCreate()) 692 this.organization = new Reference(); // cc 693 return this.organization; 694 } 695 696 public boolean hasOrganization() { 697 return this.organization != null && !this.organization.isEmpty(); 698 } 699 700 /** 701 * @param value {@link #organization} (The organization who produced this adjudicated response.) 702 */ 703 public ProcessResponse setOrganization(Reference value) { 704 this.organization = value; 705 return this; 706 } 707 708 /** 709 * @return {@link #organization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization who produced this adjudicated response.) 710 */ 711 public Organization getOrganizationTarget() { 712 if (this.organizationTarget == null) 713 if (Configuration.errorOnAutoCreate()) 714 throw new Error("Attempt to auto-create ProcessResponse.organization"); 715 else if (Configuration.doAutoCreate()) 716 this.organizationTarget = new Organization(); // aa 717 return this.organizationTarget; 718 } 719 720 /** 721 * @param value {@link #organization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization who produced this adjudicated response.) 722 */ 723 public ProcessResponse setOrganizationTarget(Organization value) { 724 this.organizationTarget = value; 725 return this; 726 } 727 728 /** 729 * @return {@link #request} (Original request resource reference.) 730 */ 731 public Reference getRequest() { 732 if (this.request == null) 733 if (Configuration.errorOnAutoCreate()) 734 throw new Error("Attempt to auto-create ProcessResponse.request"); 735 else if (Configuration.doAutoCreate()) 736 this.request = new Reference(); // cc 737 return this.request; 738 } 739 740 public boolean hasRequest() { 741 return this.request != null && !this.request.isEmpty(); 742 } 743 744 /** 745 * @param value {@link #request} (Original request resource reference.) 746 */ 747 public ProcessResponse setRequest(Reference value) { 748 this.request = value; 749 return this; 750 } 751 752 /** 753 * @return {@link #request} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original request resource reference.) 754 */ 755 public Resource getRequestTarget() { 756 return this.requestTarget; 757 } 758 759 /** 760 * @param value {@link #request} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original request resource reference.) 761 */ 762 public ProcessResponse setRequestTarget(Resource value) { 763 this.requestTarget = value; 764 return this; 765 } 766 767 /** 768 * @return {@link #outcome} (Transaction status: error, complete, held.) 769 */ 770 public CodeableConcept getOutcome() { 771 if (this.outcome == null) 772 if (Configuration.errorOnAutoCreate()) 773 throw new Error("Attempt to auto-create ProcessResponse.outcome"); 774 else if (Configuration.doAutoCreate()) 775 this.outcome = new CodeableConcept(); // cc 776 return this.outcome; 777 } 778 779 public boolean hasOutcome() { 780 return this.outcome != null && !this.outcome.isEmpty(); 781 } 782 783 /** 784 * @param value {@link #outcome} (Transaction status: error, complete, held.) 785 */ 786 public ProcessResponse setOutcome(CodeableConcept value) { 787 this.outcome = value; 788 return this; 789 } 790 791 /** 792 * @return {@link #disposition} (A description of the status of the adjudication or processing.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 793 */ 794 public StringType getDispositionElement() { 795 if (this.disposition == null) 796 if (Configuration.errorOnAutoCreate()) 797 throw new Error("Attempt to auto-create ProcessResponse.disposition"); 798 else if (Configuration.doAutoCreate()) 799 this.disposition = new StringType(); // bb 800 return this.disposition; 801 } 802 803 public boolean hasDispositionElement() { 804 return this.disposition != null && !this.disposition.isEmpty(); 805 } 806 807 public boolean hasDisposition() { 808 return this.disposition != null && !this.disposition.isEmpty(); 809 } 810 811 /** 812 * @param value {@link #disposition} (A description of the status of the adjudication or processing.). This is the underlying object with id, value and extensions. The accessor "getDisposition" gives direct access to the value 813 */ 814 public ProcessResponse setDispositionElement(StringType value) { 815 this.disposition = value; 816 return this; 817 } 818 819 /** 820 * @return A description of the status of the adjudication or processing. 821 */ 822 public String getDisposition() { 823 return this.disposition == null ? null : this.disposition.getValue(); 824 } 825 826 /** 827 * @param value A description of the status of the adjudication or processing. 828 */ 829 public ProcessResponse setDisposition(String value) { 830 if (Utilities.noString(value)) 831 this.disposition = null; 832 else { 833 if (this.disposition == null) 834 this.disposition = new StringType(); 835 this.disposition.setValue(value); 836 } 837 return this; 838 } 839 840 /** 841 * @return {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 842 */ 843 public Reference getRequestProvider() { 844 if (this.requestProvider == null) 845 if (Configuration.errorOnAutoCreate()) 846 throw new Error("Attempt to auto-create ProcessResponse.requestProvider"); 847 else if (Configuration.doAutoCreate()) 848 this.requestProvider = new Reference(); // cc 849 return this.requestProvider; 850 } 851 852 public boolean hasRequestProvider() { 853 return this.requestProvider != null && !this.requestProvider.isEmpty(); 854 } 855 856 /** 857 * @param value {@link #requestProvider} (The practitioner who is responsible for the services rendered to the patient.) 858 */ 859 public ProcessResponse setRequestProvider(Reference value) { 860 this.requestProvider = value; 861 return this; 862 } 863 864 /** 865 * @return {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) 866 */ 867 public Practitioner getRequestProviderTarget() { 868 if (this.requestProviderTarget == null) 869 if (Configuration.errorOnAutoCreate()) 870 throw new Error("Attempt to auto-create ProcessResponse.requestProvider"); 871 else if (Configuration.doAutoCreate()) 872 this.requestProviderTarget = new Practitioner(); // aa 873 return this.requestProviderTarget; 874 } 875 876 /** 877 * @param value {@link #requestProvider} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The practitioner who is responsible for the services rendered to the patient.) 878 */ 879 public ProcessResponse setRequestProviderTarget(Practitioner value) { 880 this.requestProviderTarget = value; 881 return this; 882 } 883 884 /** 885 * @return {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) 886 */ 887 public Reference getRequestOrganization() { 888 if (this.requestOrganization == null) 889 if (Configuration.errorOnAutoCreate()) 890 throw new Error("Attempt to auto-create ProcessResponse.requestOrganization"); 891 else if (Configuration.doAutoCreate()) 892 this.requestOrganization = new Reference(); // cc 893 return this.requestOrganization; 894 } 895 896 public boolean hasRequestOrganization() { 897 return this.requestOrganization != null && !this.requestOrganization.isEmpty(); 898 } 899 900 /** 901 * @param value {@link #requestOrganization} (The organization which is responsible for the services rendered to the patient.) 902 */ 903 public ProcessResponse setRequestOrganization(Reference value) { 904 this.requestOrganization = value; 905 return this; 906 } 907 908 /** 909 * @return {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) 910 */ 911 public Organization getRequestOrganizationTarget() { 912 if (this.requestOrganizationTarget == null) 913 if (Configuration.errorOnAutoCreate()) 914 throw new Error("Attempt to auto-create ProcessResponse.requestOrganization"); 915 else if (Configuration.doAutoCreate()) 916 this.requestOrganizationTarget = new Organization(); // aa 917 return this.requestOrganizationTarget; 918 } 919 920 /** 921 * @param value {@link #requestOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization which is responsible for the services rendered to the patient.) 922 */ 923 public ProcessResponse setRequestOrganizationTarget(Organization value) { 924 this.requestOrganizationTarget = value; 925 return this; 926 } 927 928 /** 929 * @return {@link #form} (The form to be used for printing the content.) 930 */ 931 public CodeableConcept getForm() { 932 if (this.form == null) 933 if (Configuration.errorOnAutoCreate()) 934 throw new Error("Attempt to auto-create ProcessResponse.form"); 935 else if (Configuration.doAutoCreate()) 936 this.form = new CodeableConcept(); // cc 937 return this.form; 938 } 939 940 public boolean hasForm() { 941 return this.form != null && !this.form.isEmpty(); 942 } 943 944 /** 945 * @param value {@link #form} (The form to be used for printing the content.) 946 */ 947 public ProcessResponse setForm(CodeableConcept value) { 948 this.form = value; 949 return this; 950 } 951 952 /** 953 * @return {@link #processNote} (Suite of processing notes or additional requirements if the processing has been held.) 954 */ 955 public List<ProcessResponseProcessNoteComponent> getProcessNote() { 956 if (this.processNote == null) 957 this.processNote = new ArrayList<ProcessResponseProcessNoteComponent>(); 958 return this.processNote; 959 } 960 961 /** 962 * @return Returns a reference to <code>this</code> for easy method chaining 963 */ 964 public ProcessResponse setProcessNote(List<ProcessResponseProcessNoteComponent> theProcessNote) { 965 this.processNote = theProcessNote; 966 return this; 967 } 968 969 public boolean hasProcessNote() { 970 if (this.processNote == null) 971 return false; 972 for (ProcessResponseProcessNoteComponent item : this.processNote) 973 if (!item.isEmpty()) 974 return true; 975 return false; 976 } 977 978 public ProcessResponseProcessNoteComponent addProcessNote() { //3 979 ProcessResponseProcessNoteComponent t = new ProcessResponseProcessNoteComponent(); 980 if (this.processNote == null) 981 this.processNote = new ArrayList<ProcessResponseProcessNoteComponent>(); 982 this.processNote.add(t); 983 return t; 984 } 985 986 public ProcessResponse addProcessNote(ProcessResponseProcessNoteComponent t) { //3 987 if (t == null) 988 return this; 989 if (this.processNote == null) 990 this.processNote = new ArrayList<ProcessResponseProcessNoteComponent>(); 991 this.processNote.add(t); 992 return this; 993 } 994 995 /** 996 * @return The first repetition of repeating field {@link #processNote}, creating it if it does not already exist 997 */ 998 public ProcessResponseProcessNoteComponent getProcessNoteFirstRep() { 999 if (getProcessNote().isEmpty()) { 1000 addProcessNote(); 1001 } 1002 return getProcessNote().get(0); 1003 } 1004 1005 /** 1006 * @return {@link #error} (Processing errors.) 1007 */ 1008 public List<CodeableConcept> getError() { 1009 if (this.error == null) 1010 this.error = new ArrayList<CodeableConcept>(); 1011 return this.error; 1012 } 1013 1014 /** 1015 * @return Returns a reference to <code>this</code> for easy method chaining 1016 */ 1017 public ProcessResponse setError(List<CodeableConcept> theError) { 1018 this.error = theError; 1019 return this; 1020 } 1021 1022 public boolean hasError() { 1023 if (this.error == null) 1024 return false; 1025 for (CodeableConcept item : this.error) 1026 if (!item.isEmpty()) 1027 return true; 1028 return false; 1029 } 1030 1031 public CodeableConcept addError() { //3 1032 CodeableConcept t = new CodeableConcept(); 1033 if (this.error == null) 1034 this.error = new ArrayList<CodeableConcept>(); 1035 this.error.add(t); 1036 return t; 1037 } 1038 1039 public ProcessResponse addError(CodeableConcept t) { //3 1040 if (t == null) 1041 return this; 1042 if (this.error == null) 1043 this.error = new ArrayList<CodeableConcept>(); 1044 this.error.add(t); 1045 return this; 1046 } 1047 1048 /** 1049 * @return The first repetition of repeating field {@link #error}, creating it if it does not already exist 1050 */ 1051 public CodeableConcept getErrorFirstRep() { 1052 if (getError().isEmpty()) { 1053 addError(); 1054 } 1055 return getError().get(0); 1056 } 1057 1058 /** 1059 * @return {@link #communicationRequest} (Request for additional supporting or authorizing information, such as: documents, images or resources.) 1060 */ 1061 public List<Reference> getCommunicationRequest() { 1062 if (this.communicationRequest == null) 1063 this.communicationRequest = new ArrayList<Reference>(); 1064 return this.communicationRequest; 1065 } 1066 1067 /** 1068 * @return Returns a reference to <code>this</code> for easy method chaining 1069 */ 1070 public ProcessResponse setCommunicationRequest(List<Reference> theCommunicationRequest) { 1071 this.communicationRequest = theCommunicationRequest; 1072 return this; 1073 } 1074 1075 public boolean hasCommunicationRequest() { 1076 if (this.communicationRequest == null) 1077 return false; 1078 for (Reference item : this.communicationRequest) 1079 if (!item.isEmpty()) 1080 return true; 1081 return false; 1082 } 1083 1084 public Reference addCommunicationRequest() { //3 1085 Reference t = new Reference(); 1086 if (this.communicationRequest == null) 1087 this.communicationRequest = new ArrayList<Reference>(); 1088 this.communicationRequest.add(t); 1089 return t; 1090 } 1091 1092 public ProcessResponse addCommunicationRequest(Reference t) { //3 1093 if (t == null) 1094 return this; 1095 if (this.communicationRequest == null) 1096 this.communicationRequest = new ArrayList<Reference>(); 1097 this.communicationRequest.add(t); 1098 return this; 1099 } 1100 1101 /** 1102 * @return The first repetition of repeating field {@link #communicationRequest}, creating it if it does not already exist 1103 */ 1104 public Reference getCommunicationRequestFirstRep() { 1105 if (getCommunicationRequest().isEmpty()) { 1106 addCommunicationRequest(); 1107 } 1108 return getCommunicationRequest().get(0); 1109 } 1110 1111 /** 1112 * @deprecated Use Reference#setResource(IBaseResource) instead 1113 */ 1114 @Deprecated 1115 public List<CommunicationRequest> getCommunicationRequestTarget() { 1116 if (this.communicationRequestTarget == null) 1117 this.communicationRequestTarget = new ArrayList<CommunicationRequest>(); 1118 return this.communicationRequestTarget; 1119 } 1120 1121 /** 1122 * @deprecated Use Reference#setResource(IBaseResource) instead 1123 */ 1124 @Deprecated 1125 public CommunicationRequest addCommunicationRequestTarget() { 1126 CommunicationRequest r = new CommunicationRequest(); 1127 if (this.communicationRequestTarget == null) 1128 this.communicationRequestTarget = new ArrayList<CommunicationRequest>(); 1129 this.communicationRequestTarget.add(r); 1130 return r; 1131 } 1132 1133 protected void listChildren(List<Property> children) { 1134 super.listChildren(children); 1135 children.add(new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1136 children.add(new Property("status", "code", "The status of the resource instance.", 0, 1, status)); 1137 children.add(new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, 1, created)); 1138 children.add(new Property("organization", "Reference(Organization)", "The organization who produced this adjudicated response.", 0, 1, organization)); 1139 children.add(new Property("request", "Reference(Any)", "Original request resource reference.", 0, 1, request)); 1140 children.add(new Property("outcome", "CodeableConcept", "Transaction status: error, complete, held.", 0, 1, outcome)); 1141 children.add(new Property("disposition", "string", "A description of the status of the adjudication or processing.", 0, 1, disposition)); 1142 children.add(new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestProvider)); 1143 children.add(new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, 1, requestOrganization)); 1144 children.add(new Property("form", "CodeableConcept", "The form to be used for printing the content.", 0, 1, form)); 1145 children.add(new Property("processNote", "", "Suite of processing notes or additional requirements if the processing has been held.", 0, java.lang.Integer.MAX_VALUE, processNote)); 1146 children.add(new Property("error", "CodeableConcept", "Processing errors.", 0, java.lang.Integer.MAX_VALUE, error)); 1147 children.add(new Property("communicationRequest", "Reference(CommunicationRequest)", "Request for additional supporting or authorizing information, such as: documents, images or resources.", 0, java.lang.Integer.MAX_VALUE, communicationRequest)); 1148 } 1149 1150 @Override 1151 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1152 switch (_hash) { 1153 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "The Response business identifier.", 0, java.lang.Integer.MAX_VALUE, identifier); 1154 case -892481550: /*status*/ return new Property("status", "code", "The status of the resource instance.", 0, 1, status); 1155 case 1028554472: /*created*/ return new Property("created", "dateTime", "The date when the enclosed suite of services were performed or completed.", 0, 1, created); 1156 case 1178922291: /*organization*/ return new Property("organization", "Reference(Organization)", "The organization who produced this adjudicated response.", 0, 1, organization); 1157 case 1095692943: /*request*/ return new Property("request", "Reference(Any)", "Original request resource reference.", 0, 1, request); 1158 case -1106507950: /*outcome*/ return new Property("outcome", "CodeableConcept", "Transaction status: error, complete, held.", 0, 1, outcome); 1159 case 583380919: /*disposition*/ return new Property("disposition", "string", "A description of the status of the adjudication or processing.", 0, 1, disposition); 1160 case 1601527200: /*requestProvider*/ return new Property("requestProvider", "Reference(Practitioner)", "The practitioner who is responsible for the services rendered to the patient.", 0, 1, requestProvider); 1161 case 599053666: /*requestOrganization*/ return new Property("requestOrganization", "Reference(Organization)", "The organization which is responsible for the services rendered to the patient.", 0, 1, requestOrganization); 1162 case 3148996: /*form*/ return new Property("form", "CodeableConcept", "The form to be used for printing the content.", 0, 1, form); 1163 case 202339073: /*processNote*/ return new Property("processNote", "", "Suite of processing notes or additional requirements if the processing has been held.", 0, java.lang.Integer.MAX_VALUE, processNote); 1164 case 96784904: /*error*/ return new Property("error", "CodeableConcept", "Processing errors.", 0, java.lang.Integer.MAX_VALUE, error); 1165 case -2071896615: /*communicationRequest*/ return new Property("communicationRequest", "Reference(CommunicationRequest)", "Request for additional supporting or authorizing information, such as: documents, images or resources.", 0, java.lang.Integer.MAX_VALUE, communicationRequest); 1166 default: return super.getNamedProperty(_hash, _name, _checkValid); 1167 } 1168 1169 } 1170 1171 @Override 1172 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1173 switch (hash) { 1174 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1175 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ProcessResponseStatus> 1176 case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateTimeType 1177 case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference 1178 case 1095692943: /*request*/ return this.request == null ? new Base[0] : new Base[] {this.request}; // Reference 1179 case -1106507950: /*outcome*/ return this.outcome == null ? new Base[0] : new Base[] {this.outcome}; // CodeableConcept 1180 case 583380919: /*disposition*/ return this.disposition == null ? new Base[0] : new Base[] {this.disposition}; // StringType 1181 case 1601527200: /*requestProvider*/ return this.requestProvider == null ? new Base[0] : new Base[] {this.requestProvider}; // Reference 1182 case 599053666: /*requestOrganization*/ return this.requestOrganization == null ? new Base[0] : new Base[] {this.requestOrganization}; // Reference 1183 case 3148996: /*form*/ return this.form == null ? new Base[0] : new Base[] {this.form}; // CodeableConcept 1184 case 202339073: /*processNote*/ return this.processNote == null ? new Base[0] : this.processNote.toArray(new Base[this.processNote.size()]); // ProcessResponseProcessNoteComponent 1185 case 96784904: /*error*/ return this.error == null ? new Base[0] : this.error.toArray(new Base[this.error.size()]); // CodeableConcept 1186 case -2071896615: /*communicationRequest*/ return this.communicationRequest == null ? new Base[0] : this.communicationRequest.toArray(new Base[this.communicationRequest.size()]); // Reference 1187 default: return super.getProperty(hash, name, checkValid); 1188 } 1189 1190 } 1191 1192 @Override 1193 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1194 switch (hash) { 1195 case -1618432855: // identifier 1196 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1197 return value; 1198 case -892481550: // status 1199 value = new ProcessResponseStatusEnumFactory().fromType(castToCode(value)); 1200 this.status = (Enumeration) value; // Enumeration<ProcessResponseStatus> 1201 return value; 1202 case 1028554472: // created 1203 this.created = castToDateTime(value); // DateTimeType 1204 return value; 1205 case 1178922291: // organization 1206 this.organization = castToReference(value); // Reference 1207 return value; 1208 case 1095692943: // request 1209 this.request = castToReference(value); // Reference 1210 return value; 1211 case -1106507950: // outcome 1212 this.outcome = castToCodeableConcept(value); // CodeableConcept 1213 return value; 1214 case 583380919: // disposition 1215 this.disposition = castToString(value); // StringType 1216 return value; 1217 case 1601527200: // requestProvider 1218 this.requestProvider = castToReference(value); // Reference 1219 return value; 1220 case 599053666: // requestOrganization 1221 this.requestOrganization = castToReference(value); // Reference 1222 return value; 1223 case 3148996: // form 1224 this.form = castToCodeableConcept(value); // CodeableConcept 1225 return value; 1226 case 202339073: // processNote 1227 this.getProcessNote().add((ProcessResponseProcessNoteComponent) value); // ProcessResponseProcessNoteComponent 1228 return value; 1229 case 96784904: // error 1230 this.getError().add(castToCodeableConcept(value)); // CodeableConcept 1231 return value; 1232 case -2071896615: // communicationRequest 1233 this.getCommunicationRequest().add(castToReference(value)); // Reference 1234 return value; 1235 default: return super.setProperty(hash, name, value); 1236 } 1237 1238 } 1239 1240 @Override 1241 public Base setProperty(String name, Base value) throws FHIRException { 1242 if (name.equals("identifier")) { 1243 this.getIdentifier().add(castToIdentifier(value)); 1244 } else if (name.equals("status")) { 1245 value = new ProcessResponseStatusEnumFactory().fromType(castToCode(value)); 1246 this.status = (Enumeration) value; // Enumeration<ProcessResponseStatus> 1247 } else if (name.equals("created")) { 1248 this.created = castToDateTime(value); // DateTimeType 1249 } else if (name.equals("organization")) { 1250 this.organization = castToReference(value); // Reference 1251 } else if (name.equals("request")) { 1252 this.request = castToReference(value); // Reference 1253 } else if (name.equals("outcome")) { 1254 this.outcome = castToCodeableConcept(value); // CodeableConcept 1255 } else if (name.equals("disposition")) { 1256 this.disposition = castToString(value); // StringType 1257 } else if (name.equals("requestProvider")) { 1258 this.requestProvider = castToReference(value); // Reference 1259 } else if (name.equals("requestOrganization")) { 1260 this.requestOrganization = castToReference(value); // Reference 1261 } else if (name.equals("form")) { 1262 this.form = castToCodeableConcept(value); // CodeableConcept 1263 } else if (name.equals("processNote")) { 1264 this.getProcessNote().add((ProcessResponseProcessNoteComponent) value); 1265 } else if (name.equals("error")) { 1266 this.getError().add(castToCodeableConcept(value)); 1267 } else if (name.equals("communicationRequest")) { 1268 this.getCommunicationRequest().add(castToReference(value)); 1269 } else 1270 return super.setProperty(name, value); 1271 return value; 1272 } 1273 1274 @Override 1275 public Base makeProperty(int hash, String name) throws FHIRException { 1276 switch (hash) { 1277 case -1618432855: return addIdentifier(); 1278 case -892481550: return getStatusElement(); 1279 case 1028554472: return getCreatedElement(); 1280 case 1178922291: return getOrganization(); 1281 case 1095692943: return getRequest(); 1282 case -1106507950: return getOutcome(); 1283 case 583380919: return getDispositionElement(); 1284 case 1601527200: return getRequestProvider(); 1285 case 599053666: return getRequestOrganization(); 1286 case 3148996: return getForm(); 1287 case 202339073: return addProcessNote(); 1288 case 96784904: return addError(); 1289 case -2071896615: return addCommunicationRequest(); 1290 default: return super.makeProperty(hash, name); 1291 } 1292 1293 } 1294 1295 @Override 1296 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1297 switch (hash) { 1298 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1299 case -892481550: /*status*/ return new String[] {"code"}; 1300 case 1028554472: /*created*/ return new String[] {"dateTime"}; 1301 case 1178922291: /*organization*/ return new String[] {"Reference"}; 1302 case 1095692943: /*request*/ return new String[] {"Reference"}; 1303 case -1106507950: /*outcome*/ return new String[] {"CodeableConcept"}; 1304 case 583380919: /*disposition*/ return new String[] {"string"}; 1305 case 1601527200: /*requestProvider*/ return new String[] {"Reference"}; 1306 case 599053666: /*requestOrganization*/ return new String[] {"Reference"}; 1307 case 3148996: /*form*/ return new String[] {"CodeableConcept"}; 1308 case 202339073: /*processNote*/ return new String[] {}; 1309 case 96784904: /*error*/ return new String[] {"CodeableConcept"}; 1310 case -2071896615: /*communicationRequest*/ return new String[] {"Reference"}; 1311 default: return super.getTypesForProperty(hash, name); 1312 } 1313 1314 } 1315 1316 @Override 1317 public Base addChild(String name) throws FHIRException { 1318 if (name.equals("identifier")) { 1319 return addIdentifier(); 1320 } 1321 else if (name.equals("status")) { 1322 throw new FHIRException("Cannot call addChild on a singleton property ProcessResponse.status"); 1323 } 1324 else if (name.equals("created")) { 1325 throw new FHIRException("Cannot call addChild on a singleton property ProcessResponse.created"); 1326 } 1327 else if (name.equals("organization")) { 1328 this.organization = new Reference(); 1329 return this.organization; 1330 } 1331 else if (name.equals("request")) { 1332 this.request = new Reference(); 1333 return this.request; 1334 } 1335 else if (name.equals("outcome")) { 1336 this.outcome = new CodeableConcept(); 1337 return this.outcome; 1338 } 1339 else if (name.equals("disposition")) { 1340 throw new FHIRException("Cannot call addChild on a singleton property ProcessResponse.disposition"); 1341 } 1342 else if (name.equals("requestProvider")) { 1343 this.requestProvider = new Reference(); 1344 return this.requestProvider; 1345 } 1346 else if (name.equals("requestOrganization")) { 1347 this.requestOrganization = new Reference(); 1348 return this.requestOrganization; 1349 } 1350 else if (name.equals("form")) { 1351 this.form = new CodeableConcept(); 1352 return this.form; 1353 } 1354 else if (name.equals("processNote")) { 1355 return addProcessNote(); 1356 } 1357 else if (name.equals("error")) { 1358 return addError(); 1359 } 1360 else if (name.equals("communicationRequest")) { 1361 return addCommunicationRequest(); 1362 } 1363 else 1364 return super.addChild(name); 1365 } 1366 1367 public String fhirType() { 1368 return "ProcessResponse"; 1369 1370 } 1371 1372 public ProcessResponse copy() { 1373 ProcessResponse dst = new ProcessResponse(); 1374 copyValues(dst); 1375 if (identifier != null) { 1376 dst.identifier = new ArrayList<Identifier>(); 1377 for (Identifier i : identifier) 1378 dst.identifier.add(i.copy()); 1379 }; 1380 dst.status = status == null ? null : status.copy(); 1381 dst.created = created == null ? null : created.copy(); 1382 dst.organization = organization == null ? null : organization.copy(); 1383 dst.request = request == null ? null : request.copy(); 1384 dst.outcome = outcome == null ? null : outcome.copy(); 1385 dst.disposition = disposition == null ? null : disposition.copy(); 1386 dst.requestProvider = requestProvider == null ? null : requestProvider.copy(); 1387 dst.requestOrganization = requestOrganization == null ? null : requestOrganization.copy(); 1388 dst.form = form == null ? null : form.copy(); 1389 if (processNote != null) { 1390 dst.processNote = new ArrayList<ProcessResponseProcessNoteComponent>(); 1391 for (ProcessResponseProcessNoteComponent i : processNote) 1392 dst.processNote.add(i.copy()); 1393 }; 1394 if (error != null) { 1395 dst.error = new ArrayList<CodeableConcept>(); 1396 for (CodeableConcept i : error) 1397 dst.error.add(i.copy()); 1398 }; 1399 if (communicationRequest != null) { 1400 dst.communicationRequest = new ArrayList<Reference>(); 1401 for (Reference i : communicationRequest) 1402 dst.communicationRequest.add(i.copy()); 1403 }; 1404 return dst; 1405 } 1406 1407 protected ProcessResponse typedCopy() { 1408 return copy(); 1409 } 1410 1411 @Override 1412 public boolean equalsDeep(Base other_) { 1413 if (!super.equalsDeep(other_)) 1414 return false; 1415 if (!(other_ instanceof ProcessResponse)) 1416 return false; 1417 ProcessResponse o = (ProcessResponse) other_; 1418 return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(created, o.created, true) 1419 && compareDeep(organization, o.organization, true) && compareDeep(request, o.request, true) && compareDeep(outcome, o.outcome, true) 1420 && compareDeep(disposition, o.disposition, true) && compareDeep(requestProvider, o.requestProvider, true) 1421 && compareDeep(requestOrganization, o.requestOrganization, true) && compareDeep(form, o.form, true) 1422 && compareDeep(processNote, o.processNote, true) && compareDeep(error, o.error, true) && compareDeep(communicationRequest, o.communicationRequest, true) 1423 ; 1424 } 1425 1426 @Override 1427 public boolean equalsShallow(Base other_) { 1428 if (!super.equalsShallow(other_)) 1429 return false; 1430 if (!(other_ instanceof ProcessResponse)) 1431 return false; 1432 ProcessResponse o = (ProcessResponse) other_; 1433 return compareValues(status, o.status, true) && compareValues(created, o.created, true) && compareValues(disposition, o.disposition, true) 1434 ; 1435 } 1436 1437 public boolean isEmpty() { 1438 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, created 1439 , organization, request, outcome, disposition, requestProvider, requestOrganization 1440 , form, processNote, error, communicationRequest); 1441 } 1442 1443 @Override 1444 public ResourceType getResourceType() { 1445 return ResourceType.ProcessResponse; 1446 } 1447 1448 /** 1449 * Search parameter: <b>identifier</b> 1450 * <p> 1451 * Description: <b>The business identifier of the Explanation of Benefit</b><br> 1452 * Type: <b>token</b><br> 1453 * Path: <b>ProcessResponse.identifier</b><br> 1454 * </p> 1455 */ 1456 @SearchParamDefinition(name="identifier", path="ProcessResponse.identifier", description="The business identifier of the Explanation of Benefit", type="token" ) 1457 public static final String SP_IDENTIFIER = "identifier"; 1458 /** 1459 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1460 * <p> 1461 * Description: <b>The business identifier of the Explanation of Benefit</b><br> 1462 * Type: <b>token</b><br> 1463 * Path: <b>ProcessResponse.identifier</b><br> 1464 * </p> 1465 */ 1466 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1467 1468 /** 1469 * Search parameter: <b>request</b> 1470 * <p> 1471 * Description: <b>The reference to the claim</b><br> 1472 * Type: <b>reference</b><br> 1473 * Path: <b>ProcessResponse.request</b><br> 1474 * </p> 1475 */ 1476 @SearchParamDefinition(name="request", path="ProcessResponse.request", description="The reference to the claim", type="reference" ) 1477 public static final String SP_REQUEST = "request"; 1478 /** 1479 * <b>Fluent Client</b> search parameter constant for <b>request</b> 1480 * <p> 1481 * Description: <b>The reference to the claim</b><br> 1482 * Type: <b>reference</b><br> 1483 * Path: <b>ProcessResponse.request</b><br> 1484 * </p> 1485 */ 1486 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST); 1487 1488/** 1489 * Constant for fluent queries to be used to add include statements. Specifies 1490 * the path value of "<b>ProcessResponse:request</b>". 1491 */ 1492 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST = new ca.uhn.fhir.model.api.Include("ProcessResponse:request").toLocked(); 1493 1494 /** 1495 * Search parameter: <b>organization</b> 1496 * <p> 1497 * Description: <b>The organization who generated this resource</b><br> 1498 * Type: <b>reference</b><br> 1499 * Path: <b>ProcessResponse.organization</b><br> 1500 * </p> 1501 */ 1502 @SearchParamDefinition(name="organization", path="ProcessResponse.organization", description="The organization who generated this resource", type="reference", target={Organization.class } ) 1503 public static final String SP_ORGANIZATION = "organization"; 1504 /** 1505 * <b>Fluent Client</b> search parameter constant for <b>organization</b> 1506 * <p> 1507 * Description: <b>The organization who generated this resource</b><br> 1508 * Type: <b>reference</b><br> 1509 * Path: <b>ProcessResponse.organization</b><br> 1510 * </p> 1511 */ 1512 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION); 1513 1514/** 1515 * Constant for fluent queries to be used to add include statements. Specifies 1516 * the path value of "<b>ProcessResponse:organization</b>". 1517 */ 1518 public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("ProcessResponse:organization").toLocked(); 1519 1520 /** 1521 * Search parameter: <b>request-organization</b> 1522 * <p> 1523 * Description: <b>The Organization who is responsible the request transaction</b><br> 1524 * Type: <b>reference</b><br> 1525 * Path: <b>ProcessResponse.requestOrganization</b><br> 1526 * </p> 1527 */ 1528 @SearchParamDefinition(name="request-organization", path="ProcessResponse.requestOrganization", description="The Organization who is responsible the request transaction", type="reference", target={Organization.class } ) 1529 public static final String SP_REQUEST_ORGANIZATION = "request-organization"; 1530 /** 1531 * <b>Fluent Client</b> search parameter constant for <b>request-organization</b> 1532 * <p> 1533 * Description: <b>The Organization who is responsible the request transaction</b><br> 1534 * Type: <b>reference</b><br> 1535 * Path: <b>ProcessResponse.requestOrganization</b><br> 1536 * </p> 1537 */ 1538 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST_ORGANIZATION); 1539 1540/** 1541 * Constant for fluent queries to be used to add include statements. Specifies 1542 * the path value of "<b>ProcessResponse:request-organization</b>". 1543 */ 1544 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST_ORGANIZATION = new ca.uhn.fhir.model.api.Include("ProcessResponse:request-organization").toLocked(); 1545 1546 /** 1547 * Search parameter: <b>request-provider</b> 1548 * <p> 1549 * Description: <b>The Provider who is responsible the request transaction</b><br> 1550 * Type: <b>reference</b><br> 1551 * Path: <b>ProcessResponse.requestProvider</b><br> 1552 * </p> 1553 */ 1554 @SearchParamDefinition(name="request-provider", path="ProcessResponse.requestProvider", description="The Provider who is responsible the request transaction", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Practitioner.class } ) 1555 public static final String SP_REQUEST_PROVIDER = "request-provider"; 1556 /** 1557 * <b>Fluent Client</b> search parameter constant for <b>request-provider</b> 1558 * <p> 1559 * Description: <b>The Provider who is responsible the request transaction</b><br> 1560 * Type: <b>reference</b><br> 1561 * Path: <b>ProcessResponse.requestProvider</b><br> 1562 * </p> 1563 */ 1564 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUEST_PROVIDER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUEST_PROVIDER); 1565 1566/** 1567 * Constant for fluent queries to be used to add include statements. Specifies 1568 * the path value of "<b>ProcessResponse:request-provider</b>". 1569 */ 1570 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUEST_PROVIDER = new ca.uhn.fhir.model.api.Include("ProcessResponse:request-provider").toLocked(); 1571 1572 1573}