
001package org.hl7.fhir.dstu3.model; 002 003 004 005 006/* 007 Copyright (c) 2011+, HL7, Inc. 008 All rights reserved. 009 010 Redistribution and use in source and binary forms, with or without modification, 011 are permitted provided that the following conditions are met: 012 013 * Redistributions of source code must retain the above copyright notice, this 014 list of conditions and the following disclaimer. 015 * Redistributions in binary form must reproduce the above copyright notice, 016 this list of conditions and the following disclaimer in the documentation 017 and/or other materials provided with the distribution. 018 * Neither the name of HL7 nor the names of its contributors may be used to 019 endorse or promote products derived from this software without specific 020 prior written permission. 021 022 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 023 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 024 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 025 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 026 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 027 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 028 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 029 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 030 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 031 POSSIBILITY OF SUCH DAMAGE. 032 033*/ 034 035// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 036import java.util.ArrayList; 037import java.util.Date; 038import java.util.List; 039 040import org.hl7.fhir.exceptions.FHIRException; 041import org.hl7.fhir.exceptions.FHIRFormatError; 042import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 043import org.hl7.fhir.utilities.Utilities; 044 045import ca.uhn.fhir.model.api.annotation.Block; 046import ca.uhn.fhir.model.api.annotation.Child; 047import ca.uhn.fhir.model.api.annotation.Description; 048import ca.uhn.fhir.model.api.annotation.ResourceDef; 049import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 050/** 051 * A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to. 052 */ 053@ResourceDef(name="QuestionnaireResponse", profile="http://hl7.org/fhir/Profile/QuestionnaireResponse") 054public class QuestionnaireResponse extends DomainResource { 055 056 public enum QuestionnaireResponseStatus { 057 /** 058 * This QuestionnaireResponse has been partially filled out with answers, but changes or additions are still expected to be made to it. 059 */ 060 INPROGRESS, 061 /** 062 * This QuestionnaireResponse has been filled out with answers, and the current content is regarded as definitive. 063 */ 064 COMPLETED, 065 /** 066 * This QuestionnaireResponse has been filled out with answers, then marked as complete, yet changes or additions have been made to it afterwards. 067 */ 068 AMENDED, 069 /** 070 * This QuestionnaireResponse was entered in error and voided. 071 */ 072 ENTEREDINERROR, 073 /** 074 * This QuestionnaireResponse has been partially filled out with answers, but has been abandoned. It is unknown whether changes or additions are expected to be made to it. 075 */ 076 STOPPED, 077 /** 078 * added to help the parsers with the generic types 079 */ 080 NULL; 081 public static QuestionnaireResponseStatus fromCode(String codeString) throws FHIRException { 082 if (codeString == null || "".equals(codeString)) 083 return null; 084 if ("in-progress".equals(codeString)) 085 return INPROGRESS; 086 if ("completed".equals(codeString)) 087 return COMPLETED; 088 if ("amended".equals(codeString)) 089 return AMENDED; 090 if ("entered-in-error".equals(codeString)) 091 return ENTEREDINERROR; 092 if ("stopped".equals(codeString)) 093 return STOPPED; 094 if (Configuration.isAcceptInvalidEnums()) 095 return null; 096 else 097 throw new FHIRException("Unknown QuestionnaireResponseStatus code '"+codeString+"'"); 098 } 099 public String toCode() { 100 switch (this) { 101 case INPROGRESS: return "in-progress"; 102 case COMPLETED: return "completed"; 103 case AMENDED: return "amended"; 104 case ENTEREDINERROR: return "entered-in-error"; 105 case STOPPED: return "stopped"; 106 case NULL: return null; 107 default: return "?"; 108 } 109 } 110 public String getSystem() { 111 switch (this) { 112 case INPROGRESS: return "http://hl7.org/fhir/questionnaire-answers-status"; 113 case COMPLETED: return "http://hl7.org/fhir/questionnaire-answers-status"; 114 case AMENDED: return "http://hl7.org/fhir/questionnaire-answers-status"; 115 case ENTEREDINERROR: return "http://hl7.org/fhir/questionnaire-answers-status"; 116 case STOPPED: return "http://hl7.org/fhir/questionnaire-answers-status"; 117 case NULL: return null; 118 default: return "?"; 119 } 120 } 121 public String getDefinition() { 122 switch (this) { 123 case INPROGRESS: return "This QuestionnaireResponse has been partially filled out with answers, but changes or additions are still expected to be made to it."; 124 case COMPLETED: return "This QuestionnaireResponse has been filled out with answers, and the current content is regarded as definitive."; 125 case AMENDED: return "This QuestionnaireResponse has been filled out with answers, then marked as complete, yet changes or additions have been made to it afterwards."; 126 case ENTEREDINERROR: return "This QuestionnaireResponse was entered in error and voided."; 127 case STOPPED: return "This QuestionnaireResponse has been partially filled out with answers, but has been abandoned. It is unknown whether changes or additions are expected to be made to it."; 128 case NULL: return null; 129 default: return "?"; 130 } 131 } 132 public String getDisplay() { 133 switch (this) { 134 case INPROGRESS: return "In Progress"; 135 case COMPLETED: return "Completed"; 136 case AMENDED: return "Amended"; 137 case ENTEREDINERROR: return "Entered in Error"; 138 case STOPPED: return "Stopped"; 139 case NULL: return null; 140 default: return "?"; 141 } 142 } 143 } 144 145 public static class QuestionnaireResponseStatusEnumFactory implements EnumFactory<QuestionnaireResponseStatus> { 146 public QuestionnaireResponseStatus fromCode(String codeString) throws IllegalArgumentException { 147 if (codeString == null || "".equals(codeString)) 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("in-progress".equals(codeString)) 151 return QuestionnaireResponseStatus.INPROGRESS; 152 if ("completed".equals(codeString)) 153 return QuestionnaireResponseStatus.COMPLETED; 154 if ("amended".equals(codeString)) 155 return QuestionnaireResponseStatus.AMENDED; 156 if ("entered-in-error".equals(codeString)) 157 return QuestionnaireResponseStatus.ENTEREDINERROR; 158 if ("stopped".equals(codeString)) 159 return QuestionnaireResponseStatus.STOPPED; 160 throw new IllegalArgumentException("Unknown QuestionnaireResponseStatus code '"+codeString+"'"); 161 } 162 public Enumeration<QuestionnaireResponseStatus> fromType(PrimitiveType<?> code) throws FHIRException { 163 if (code == null) 164 return null; 165 if (code.isEmpty()) 166 return new Enumeration<QuestionnaireResponseStatus>(this); 167 String codeString = code.asStringValue(); 168 if (codeString == null || "".equals(codeString)) 169 return null; 170 if ("in-progress".equals(codeString)) 171 return new Enumeration<QuestionnaireResponseStatus>(this, QuestionnaireResponseStatus.INPROGRESS); 172 if ("completed".equals(codeString)) 173 return new Enumeration<QuestionnaireResponseStatus>(this, QuestionnaireResponseStatus.COMPLETED); 174 if ("amended".equals(codeString)) 175 return new Enumeration<QuestionnaireResponseStatus>(this, QuestionnaireResponseStatus.AMENDED); 176 if ("entered-in-error".equals(codeString)) 177 return new Enumeration<QuestionnaireResponseStatus>(this, QuestionnaireResponseStatus.ENTEREDINERROR); 178 if ("stopped".equals(codeString)) 179 return new Enumeration<QuestionnaireResponseStatus>(this, QuestionnaireResponseStatus.STOPPED); 180 throw new FHIRException("Unknown QuestionnaireResponseStatus code '"+codeString+"'"); 181 } 182 public String toCode(QuestionnaireResponseStatus code) { 183 if (code == QuestionnaireResponseStatus.INPROGRESS) 184 return "in-progress"; 185 if (code == QuestionnaireResponseStatus.COMPLETED) 186 return "completed"; 187 if (code == QuestionnaireResponseStatus.AMENDED) 188 return "amended"; 189 if (code == QuestionnaireResponseStatus.ENTEREDINERROR) 190 return "entered-in-error"; 191 if (code == QuestionnaireResponseStatus.STOPPED) 192 return "stopped"; 193 return "?"; 194 } 195 public String toSystem(QuestionnaireResponseStatus code) { 196 return code.getSystem(); 197 } 198 } 199 200 @Block() 201 public static class QuestionnaireResponseItemComponent extends BackboneElement implements IBaseBackboneElement { 202 /** 203 * The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource. 204 */ 205 @Child(name = "linkId", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 206 @Description(shortDefinition="Pointer to specific item from Questionnaire", formalDefinition="The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource." ) 207 protected StringType linkId; 208 209 /** 210 * A reference to an [[[ElementDefinition]]] that provides the details for the item. 211 */ 212 @Child(name = "definition", type = {UriType.class}, order=2, min=0, max=1, modifier=false, summary=false) 213 @Description(shortDefinition="ElementDefinition - details for the item", formalDefinition="A reference to an [[[ElementDefinition]]] that provides the details for the item." ) 214 protected UriType definition; 215 216 /** 217 * Text that is displayed above the contents of the group or as the text of the question being answered. 218 */ 219 @Child(name = "text", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=false) 220 @Description(shortDefinition="Name for group or question text", formalDefinition="Text that is displayed above the contents of the group or as the text of the question being answered." ) 221 protected StringType text; 222 223 /** 224 * More specific subject this section's answers are about, details the subject given in QuestionnaireResponse. 225 */ 226 @Child(name = "subject", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=false) 227 @Description(shortDefinition="The subject this group's answers are about", formalDefinition="More specific subject this section's answers are about, details the subject given in QuestionnaireResponse." ) 228 protected Reference subject; 229 230 /** 231 * The actual object that is the target of the reference (More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.) 232 */ 233 protected Resource subjectTarget; 234 235 /** 236 * The respondent's answer(s) to the question. 237 */ 238 @Child(name = "answer", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 239 @Description(shortDefinition="The response(s) to the question", formalDefinition="The respondent's answer(s) to the question." ) 240 protected List<QuestionnaireResponseItemAnswerComponent> answer; 241 242 /** 243 * Questions or sub-groups nested beneath a question or group. 244 */ 245 @Child(name = "item", type = {QuestionnaireResponseItemComponent.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 246 @Description(shortDefinition="Nested questionnaire response items", formalDefinition="Questions or sub-groups nested beneath a question or group." ) 247 protected List<QuestionnaireResponseItemComponent> item; 248 249 private static final long serialVersionUID = -154786340L; 250 251 /** 252 * Constructor 253 */ 254 public QuestionnaireResponseItemComponent() { 255 super(); 256 } 257 258 /** 259 * Constructor 260 */ 261 public QuestionnaireResponseItemComponent(StringType linkId) { 262 super(); 263 this.linkId = linkId; 264 } 265 266 /** 267 * @return {@link #linkId} (The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 268 */ 269 public StringType getLinkIdElement() { 270 if (this.linkId == null) 271 if (Configuration.errorOnAutoCreate()) 272 throw new Error("Attempt to auto-create QuestionnaireResponseItemComponent.linkId"); 273 else if (Configuration.doAutoCreate()) 274 this.linkId = new StringType(); // bb 275 return this.linkId; 276 } 277 278 public boolean hasLinkIdElement() { 279 return this.linkId != null && !this.linkId.isEmpty(); 280 } 281 282 public boolean hasLinkId() { 283 return this.linkId != null && !this.linkId.isEmpty(); 284 } 285 286 /** 287 * @param value {@link #linkId} (The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.). This is the underlying object with id, value and extensions. The accessor "getLinkId" gives direct access to the value 288 */ 289 public QuestionnaireResponseItemComponent setLinkIdElement(StringType value) { 290 this.linkId = value; 291 return this; 292 } 293 294 /** 295 * @return The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource. 296 */ 297 public String getLinkId() { 298 return this.linkId == null ? null : this.linkId.getValue(); 299 } 300 301 /** 302 * @param value The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource. 303 */ 304 public QuestionnaireResponseItemComponent setLinkId(String value) { 305 if (this.linkId == null) 306 this.linkId = new StringType(); 307 this.linkId.setValue(value); 308 return this; 309 } 310 311 /** 312 * @return {@link #definition} (A reference to an [[[ElementDefinition]]] that provides the details for the item.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 313 */ 314 public UriType getDefinitionElement() { 315 if (this.definition == null) 316 if (Configuration.errorOnAutoCreate()) 317 throw new Error("Attempt to auto-create QuestionnaireResponseItemComponent.definition"); 318 else if (Configuration.doAutoCreate()) 319 this.definition = new UriType(); // bb 320 return this.definition; 321 } 322 323 public boolean hasDefinitionElement() { 324 return this.definition != null && !this.definition.isEmpty(); 325 } 326 327 public boolean hasDefinition() { 328 return this.definition != null && !this.definition.isEmpty(); 329 } 330 331 /** 332 * @param value {@link #definition} (A reference to an [[[ElementDefinition]]] that provides the details for the item.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 333 */ 334 public QuestionnaireResponseItemComponent setDefinitionElement(UriType value) { 335 this.definition = value; 336 return this; 337 } 338 339 /** 340 * @return A reference to an [[[ElementDefinition]]] that provides the details for the item. 341 */ 342 public String getDefinition() { 343 return this.definition == null ? null : this.definition.getValue(); 344 } 345 346 /** 347 * @param value A reference to an [[[ElementDefinition]]] that provides the details for the item. 348 */ 349 public QuestionnaireResponseItemComponent setDefinition(String value) { 350 if (Utilities.noString(value)) 351 this.definition = null; 352 else { 353 if (this.definition == null) 354 this.definition = new UriType(); 355 this.definition.setValue(value); 356 } 357 return this; 358 } 359 360 /** 361 * @return {@link #text} (Text that is displayed above the contents of the group or as the text of the question being answered.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 362 */ 363 public StringType getTextElement() { 364 if (this.text == null) 365 if (Configuration.errorOnAutoCreate()) 366 throw new Error("Attempt to auto-create QuestionnaireResponseItemComponent.text"); 367 else if (Configuration.doAutoCreate()) 368 this.text = new StringType(); // bb 369 return this.text; 370 } 371 372 public boolean hasTextElement() { 373 return this.text != null && !this.text.isEmpty(); 374 } 375 376 public boolean hasText() { 377 return this.text != null && !this.text.isEmpty(); 378 } 379 380 /** 381 * @param value {@link #text} (Text that is displayed above the contents of the group or as the text of the question being answered.). This is the underlying object with id, value and extensions. The accessor "getText" gives direct access to the value 382 */ 383 public QuestionnaireResponseItemComponent setTextElement(StringType value) { 384 this.text = value; 385 return this; 386 } 387 388 /** 389 * @return Text that is displayed above the contents of the group or as the text of the question being answered. 390 */ 391 public String getText() { 392 return this.text == null ? null : this.text.getValue(); 393 } 394 395 /** 396 * @param value Text that is displayed above the contents of the group or as the text of the question being answered. 397 */ 398 public QuestionnaireResponseItemComponent setText(String value) { 399 if (Utilities.noString(value)) 400 this.text = null; 401 else { 402 if (this.text == null) 403 this.text = new StringType(); 404 this.text.setValue(value); 405 } 406 return this; 407 } 408 409 /** 410 * @return {@link #subject} (More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.) 411 */ 412 public Reference getSubject() { 413 if (this.subject == null) 414 if (Configuration.errorOnAutoCreate()) 415 throw new Error("Attempt to auto-create QuestionnaireResponseItemComponent.subject"); 416 else if (Configuration.doAutoCreate()) 417 this.subject = new Reference(); // cc 418 return this.subject; 419 } 420 421 public boolean hasSubject() { 422 return this.subject != null && !this.subject.isEmpty(); 423 } 424 425 /** 426 * @param value {@link #subject} (More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.) 427 */ 428 public QuestionnaireResponseItemComponent setSubject(Reference value) { 429 this.subject = value; 430 return this; 431 } 432 433 /** 434 * @return {@link #subject} 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. (More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.) 435 */ 436 public Resource getSubjectTarget() { 437 return this.subjectTarget; 438 } 439 440 /** 441 * @param value {@link #subject} 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. (More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.) 442 */ 443 public QuestionnaireResponseItemComponent setSubjectTarget(Resource value) { 444 this.subjectTarget = value; 445 return this; 446 } 447 448 /** 449 * @return {@link #answer} (The respondent's answer(s) to the question.) 450 */ 451 public List<QuestionnaireResponseItemAnswerComponent> getAnswer() { 452 if (this.answer == null) 453 this.answer = new ArrayList<QuestionnaireResponseItemAnswerComponent>(); 454 return this.answer; 455 } 456 457 /** 458 * @return Returns a reference to <code>this</code> for easy method chaining 459 */ 460 public QuestionnaireResponseItemComponent setAnswer(List<QuestionnaireResponseItemAnswerComponent> theAnswer) { 461 this.answer = theAnswer; 462 return this; 463 } 464 465 public boolean hasAnswer() { 466 if (this.answer == null) 467 return false; 468 for (QuestionnaireResponseItemAnswerComponent item : this.answer) 469 if (!item.isEmpty()) 470 return true; 471 return false; 472 } 473 474 public QuestionnaireResponseItemAnswerComponent addAnswer() { //3 475 QuestionnaireResponseItemAnswerComponent t = new QuestionnaireResponseItemAnswerComponent(); 476 if (this.answer == null) 477 this.answer = new ArrayList<QuestionnaireResponseItemAnswerComponent>(); 478 this.answer.add(t); 479 return t; 480 } 481 482 public QuestionnaireResponseItemComponent addAnswer(QuestionnaireResponseItemAnswerComponent t) { //3 483 if (t == null) 484 return this; 485 if (this.answer == null) 486 this.answer = new ArrayList<QuestionnaireResponseItemAnswerComponent>(); 487 this.answer.add(t); 488 return this; 489 } 490 491 /** 492 * @return The first repetition of repeating field {@link #answer}, creating it if it does not already exist 493 */ 494 public QuestionnaireResponseItemAnswerComponent getAnswerFirstRep() { 495 if (getAnswer().isEmpty()) { 496 addAnswer(); 497 } 498 return getAnswer().get(0); 499 } 500 501 /** 502 * @return {@link #item} (Questions or sub-groups nested beneath a question or group.) 503 */ 504 public List<QuestionnaireResponseItemComponent> getItem() { 505 if (this.item == null) 506 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 507 return this.item; 508 } 509 510 /** 511 * @return Returns a reference to <code>this</code> for easy method chaining 512 */ 513 public QuestionnaireResponseItemComponent setItem(List<QuestionnaireResponseItemComponent> theItem) { 514 this.item = theItem; 515 return this; 516 } 517 518 public boolean hasItem() { 519 if (this.item == null) 520 return false; 521 for (QuestionnaireResponseItemComponent item : this.item) 522 if (!item.isEmpty()) 523 return true; 524 return false; 525 } 526 527 public QuestionnaireResponseItemComponent addItem() { //3 528 QuestionnaireResponseItemComponent t = new QuestionnaireResponseItemComponent(); 529 if (this.item == null) 530 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 531 this.item.add(t); 532 return t; 533 } 534 535 public QuestionnaireResponseItemComponent addItem(QuestionnaireResponseItemComponent t) { //3 536 if (t == null) 537 return this; 538 if (this.item == null) 539 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 540 this.item.add(t); 541 return this; 542 } 543 544 /** 545 * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist 546 */ 547 public QuestionnaireResponseItemComponent getItemFirstRep() { 548 if (getItem().isEmpty()) { 549 addItem(); 550 } 551 return getItem().get(0); 552 } 553 554 protected void listChildren(List<Property> children) { 555 super.listChildren(children); 556 children.add(new Property("linkId", "string", "The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.", 0, 1, linkId)); 557 children.add(new Property("definition", "uri", "A reference to an [[[ElementDefinition]]] that provides the details for the item.", 0, 1, definition)); 558 children.add(new Property("text", "string", "Text that is displayed above the contents of the group or as the text of the question being answered.", 0, 1, text)); 559 children.add(new Property("subject", "Reference(Any)", "More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.", 0, 1, subject)); 560 children.add(new Property("answer", "", "The respondent's answer(s) to the question.", 0, java.lang.Integer.MAX_VALUE, answer)); 561 children.add(new Property("item", "@QuestionnaireResponse.item", "Questions or sub-groups nested beneath a question or group.", 0, java.lang.Integer.MAX_VALUE, item)); 562 } 563 564 @Override 565 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 566 switch (_hash) { 567 case -1102667083: /*linkId*/ return new Property("linkId", "string", "The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource.", 0, 1, linkId); 568 case -1014418093: /*definition*/ return new Property("definition", "uri", "A reference to an [[[ElementDefinition]]] that provides the details for the item.", 0, 1, definition); 569 case 3556653: /*text*/ return new Property("text", "string", "Text that is displayed above the contents of the group or as the text of the question being answered.", 0, 1, text); 570 case -1867885268: /*subject*/ return new Property("subject", "Reference(Any)", "More specific subject this section's answers are about, details the subject given in QuestionnaireResponse.", 0, 1, subject); 571 case -1412808770: /*answer*/ return new Property("answer", "", "The respondent's answer(s) to the question.", 0, java.lang.Integer.MAX_VALUE, answer); 572 case 3242771: /*item*/ return new Property("item", "@QuestionnaireResponse.item", "Questions or sub-groups nested beneath a question or group.", 0, java.lang.Integer.MAX_VALUE, item); 573 default: return super.getNamedProperty(_hash, _name, _checkValid); 574 } 575 576 } 577 578 @Override 579 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 580 switch (hash) { 581 case -1102667083: /*linkId*/ return this.linkId == null ? new Base[0] : new Base[] {this.linkId}; // StringType 582 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // UriType 583 case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // StringType 584 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 585 case -1412808770: /*answer*/ return this.answer == null ? new Base[0] : this.answer.toArray(new Base[this.answer.size()]); // QuestionnaireResponseItemAnswerComponent 586 case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireResponseItemComponent 587 default: return super.getProperty(hash, name, checkValid); 588 } 589 590 } 591 592 @Override 593 public Base setProperty(int hash, String name, Base value) throws FHIRException { 594 switch (hash) { 595 case -1102667083: // linkId 596 this.linkId = castToString(value); // StringType 597 return value; 598 case -1014418093: // definition 599 this.definition = castToUri(value); // UriType 600 return value; 601 case 3556653: // text 602 this.text = castToString(value); // StringType 603 return value; 604 case -1867885268: // subject 605 this.subject = castToReference(value); // Reference 606 return value; 607 case -1412808770: // answer 608 this.getAnswer().add((QuestionnaireResponseItemAnswerComponent) value); // QuestionnaireResponseItemAnswerComponent 609 return value; 610 case 3242771: // item 611 this.getItem().add((QuestionnaireResponseItemComponent) value); // QuestionnaireResponseItemComponent 612 return value; 613 default: return super.setProperty(hash, name, value); 614 } 615 616 } 617 618 @Override 619 public Base setProperty(String name, Base value) throws FHIRException { 620 if (name.equals("linkId")) { 621 this.linkId = castToString(value); // StringType 622 } else if (name.equals("definition")) { 623 this.definition = castToUri(value); // UriType 624 } else if (name.equals("text")) { 625 this.text = castToString(value); // StringType 626 } else if (name.equals("subject")) { 627 this.subject = castToReference(value); // Reference 628 } else if (name.equals("answer")) { 629 this.getAnswer().add((QuestionnaireResponseItemAnswerComponent) value); 630 } else if (name.equals("item")) { 631 this.getItem().add((QuestionnaireResponseItemComponent) value); 632 } else 633 return super.setProperty(name, value); 634 return value; 635 } 636 637 @Override 638 public Base makeProperty(int hash, String name) throws FHIRException { 639 switch (hash) { 640 case -1102667083: return getLinkIdElement(); 641 case -1014418093: return getDefinitionElement(); 642 case 3556653: return getTextElement(); 643 case -1867885268: return getSubject(); 644 case -1412808770: return addAnswer(); 645 case 3242771: return addItem(); 646 default: return super.makeProperty(hash, name); 647 } 648 649 } 650 651 @Override 652 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 653 switch (hash) { 654 case -1102667083: /*linkId*/ return new String[] {"string"}; 655 case -1014418093: /*definition*/ return new String[] {"uri"}; 656 case 3556653: /*text*/ return new String[] {"string"}; 657 case -1867885268: /*subject*/ return new String[] {"Reference"}; 658 case -1412808770: /*answer*/ return new String[] {}; 659 case 3242771: /*item*/ return new String[] {"@QuestionnaireResponse.item"}; 660 default: return super.getTypesForProperty(hash, name); 661 } 662 663 } 664 665 @Override 666 public Base addChild(String name) throws FHIRException { 667 if (name.equals("linkId")) { 668 throw new FHIRException("Cannot call addChild on a primitive type QuestionnaireResponse.linkId"); 669 } 670 else if (name.equals("definition")) { 671 throw new FHIRException("Cannot call addChild on a primitive type QuestionnaireResponse.definition"); 672 } 673 else if (name.equals("text")) { 674 throw new FHIRException("Cannot call addChild on a primitive type QuestionnaireResponse.text"); 675 } 676 else if (name.equals("subject")) { 677 this.subject = new Reference(); 678 return this.subject; 679 } 680 else if (name.equals("answer")) { 681 return addAnswer(); 682 } 683 else if (name.equals("item")) { 684 return addItem(); 685 } 686 else 687 return super.addChild(name); 688 } 689 690 public QuestionnaireResponseItemComponent copy() { 691 QuestionnaireResponseItemComponent dst = new QuestionnaireResponseItemComponent(); 692 copyValues(dst); 693 dst.linkId = linkId == null ? null : linkId.copy(); 694 dst.definition = definition == null ? null : definition.copy(); 695 dst.text = text == null ? null : text.copy(); 696 dst.subject = subject == null ? null : subject.copy(); 697 if (answer != null) { 698 dst.answer = new ArrayList<QuestionnaireResponseItemAnswerComponent>(); 699 for (QuestionnaireResponseItemAnswerComponent i : answer) 700 dst.answer.add(i.copy()); 701 }; 702 if (item != null) { 703 dst.item = new ArrayList<QuestionnaireResponseItemComponent>(); 704 for (QuestionnaireResponseItemComponent i : item) 705 dst.item.add(i.copy()); 706 }; 707 return dst; 708 } 709 710 @Override 711 public boolean equalsDeep(Base other_) { 712 if (!super.equalsDeep(other_)) 713 return false; 714 if (!(other_ instanceof QuestionnaireResponseItemComponent)) 715 return false; 716 QuestionnaireResponseItemComponent o = (QuestionnaireResponseItemComponent) other_; 717 return compareDeep(linkId, o.linkId, true) && compareDeep(definition, o.definition, true) && compareDeep(text, o.text, true) 718 && compareDeep(subject, o.subject, true) && compareDeep(answer, o.answer, true) && compareDeep(item, o.item, true) 719 ; 720 } 721 722 @Override 723 public boolean equalsShallow(Base other_) { 724 if (!super.equalsShallow(other_)) 725 return false; 726 if (!(other_ instanceof QuestionnaireResponseItemComponent)) 727 return false; 728 QuestionnaireResponseItemComponent o = (QuestionnaireResponseItemComponent) other_; 729 return compareValues(linkId, o.linkId, true) && compareValues(definition, o.definition, true) && compareValues(text, o.text, true) 730 ; 731 } 732 733 public boolean isEmpty() { 734 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(linkId, definition, text 735 , subject, answer, item); 736 } 737 738 public String fhirType() { 739 return "QuestionnaireResponse.item"; 740 741 } 742 743 } 744 745 @Block() 746 public static class QuestionnaireResponseItemAnswerComponent extends BackboneElement implements IBaseBackboneElement { 747 /** 748 * The answer (or one of the answers) provided by the respondent to the question. 749 */ 750 @Child(name = "value", type = {BooleanType.class, DecimalType.class, IntegerType.class, DateType.class, DateTimeType.class, TimeType.class, StringType.class, UriType.class, Attachment.class, Coding.class, Quantity.class, Reference.class}, order=1, min=0, max=1, modifier=false, summary=false) 751 @Description(shortDefinition="Single-valued answer to the question", formalDefinition="The answer (or one of the answers) provided by the respondent to the question." ) 752 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers") 753 protected Type value; 754 755 /** 756 * Nested groups and/or questions found within this particular answer. 757 */ 758 @Child(name = "item", type = {QuestionnaireResponseItemComponent.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 759 @Description(shortDefinition="Nested groups and questions", formalDefinition="Nested groups and/or questions found within this particular answer." ) 760 protected List<QuestionnaireResponseItemComponent> item; 761 762 private static final long serialVersionUID = 2052422636L; 763 764 /** 765 * Constructor 766 */ 767 public QuestionnaireResponseItemAnswerComponent() { 768 super(); 769 } 770 771 /** 772 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 773 */ 774 public Type getValue() { 775 return this.value; 776 } 777 778 /** 779 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 780 */ 781 public BooleanType getValueBooleanType() throws FHIRException { 782 if (this.value == null) 783 return null; 784 if (!(this.value instanceof BooleanType)) 785 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 786 return (BooleanType) this.value; 787 } 788 789 public boolean hasValueBooleanType() { 790 return this != null && this.value instanceof BooleanType; 791 } 792 793 /** 794 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 795 */ 796 public DecimalType getValueDecimalType() throws FHIRException { 797 if (this.value == null) 798 return null; 799 if (!(this.value instanceof DecimalType)) 800 throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered"); 801 return (DecimalType) this.value; 802 } 803 804 public boolean hasValueDecimalType() { 805 return this != null && this.value instanceof DecimalType; 806 } 807 808 /** 809 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 810 */ 811 public IntegerType getValueIntegerType() throws FHIRException { 812 if (this.value == null) 813 return null; 814 if (!(this.value instanceof IntegerType)) 815 throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered"); 816 return (IntegerType) this.value; 817 } 818 819 public boolean hasValueIntegerType() { 820 return this != null && this.value instanceof IntegerType; 821 } 822 823 /** 824 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 825 */ 826 public DateType getValueDateType() throws FHIRException { 827 if (this.value == null) 828 return null; 829 if (!(this.value instanceof DateType)) 830 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.value.getClass().getName()+" was encountered"); 831 return (DateType) this.value; 832 } 833 834 public boolean hasValueDateType() { 835 return this != null && this.value instanceof DateType; 836 } 837 838 /** 839 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 840 */ 841 public DateTimeType getValueDateTimeType() throws FHIRException { 842 if (this.value == null) 843 return null; 844 if (!(this.value instanceof DateTimeType)) 845 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.value.getClass().getName()+" was encountered"); 846 return (DateTimeType) this.value; 847 } 848 849 public boolean hasValueDateTimeType() { 850 return this != null && this.value instanceof DateTimeType; 851 } 852 853 /** 854 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 855 */ 856 public TimeType getValueTimeType() throws FHIRException { 857 if (this.value == null) 858 return null; 859 if (!(this.value instanceof TimeType)) 860 throw new FHIRException("Type mismatch: the type TimeType was expected, but "+this.value.getClass().getName()+" was encountered"); 861 return (TimeType) this.value; 862 } 863 864 public boolean hasValueTimeType() { 865 return this != null && this.value instanceof TimeType; 866 } 867 868 /** 869 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 870 */ 871 public StringType getValueStringType() throws FHIRException { 872 if (this.value == null) 873 return null; 874 if (!(this.value instanceof StringType)) 875 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered"); 876 return (StringType) this.value; 877 } 878 879 public boolean hasValueStringType() { 880 return this != null && this.value instanceof StringType; 881 } 882 883 /** 884 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 885 */ 886 public UriType getValueUriType() throws FHIRException { 887 if (this.value == null) 888 return null; 889 if (!(this.value instanceof UriType)) 890 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered"); 891 return (UriType) this.value; 892 } 893 894 public boolean hasValueUriType() { 895 return this != null && this.value instanceof UriType; 896 } 897 898 /** 899 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 900 */ 901 public Attachment getValueAttachment() throws FHIRException { 902 if (this.value == null) 903 return null; 904 if (!(this.value instanceof Attachment)) 905 throw new FHIRException("Type mismatch: the type Attachment was expected, but "+this.value.getClass().getName()+" was encountered"); 906 return (Attachment) this.value; 907 } 908 909 public boolean hasValueAttachment() { 910 return this != null && this.value instanceof Attachment; 911 } 912 913 /** 914 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 915 */ 916 public Coding getValueCoding() throws FHIRException { 917 if (this.value == null) 918 return null; 919 if (!(this.value instanceof Coding)) 920 throw new FHIRException("Type mismatch: the type Coding was expected, but "+this.value.getClass().getName()+" was encountered"); 921 return (Coding) this.value; 922 } 923 924 public boolean hasValueCoding() { 925 return this != null && this.value instanceof Coding; 926 } 927 928 /** 929 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 930 */ 931 public Quantity getValueQuantity() throws FHIRException { 932 if (this.value == null) 933 return null; 934 if (!(this.value instanceof Quantity)) 935 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 936 return (Quantity) this.value; 937 } 938 939 public boolean hasValueQuantity() { 940 return this != null && this.value instanceof Quantity; 941 } 942 943 /** 944 * @return {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 945 */ 946 public Reference getValueReference() throws FHIRException { 947 if (this.value == null) 948 return null; 949 if (!(this.value instanceof Reference)) 950 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.value.getClass().getName()+" was encountered"); 951 return (Reference) this.value; 952 } 953 954 public boolean hasValueReference() { 955 return this != null && this.value instanceof Reference; 956 } 957 958 public boolean hasValue() { 959 return this.value != null && !this.value.isEmpty(); 960 } 961 962 /** 963 * @param value {@link #value} (The answer (or one of the answers) provided by the respondent to the question.) 964 */ 965 public QuestionnaireResponseItemAnswerComponent setValue(Type value) throws FHIRFormatError { 966 if (value != null && !(value instanceof BooleanType || value instanceof DecimalType || value instanceof IntegerType || value instanceof DateType || value instanceof DateTimeType || value instanceof TimeType || value instanceof StringType || value instanceof UriType || value instanceof Attachment || value instanceof Coding || value instanceof Quantity || value instanceof Reference)) 967 throw new FHIRFormatError("Not the right type for QuestionnaireResponse.item.answer.value[x]: "+value.fhirType()); 968 this.value = value; 969 return this; 970 } 971 972 /** 973 * @return {@link #item} (Nested groups and/or questions found within this particular answer.) 974 */ 975 public List<QuestionnaireResponseItemComponent> getItem() { 976 if (this.item == null) 977 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 978 return this.item; 979 } 980 981 /** 982 * @return Returns a reference to <code>this</code> for easy method chaining 983 */ 984 public QuestionnaireResponseItemAnswerComponent setItem(List<QuestionnaireResponseItemComponent> theItem) { 985 this.item = theItem; 986 return this; 987 } 988 989 public boolean hasItem() { 990 if (this.item == null) 991 return false; 992 for (QuestionnaireResponseItemComponent item : this.item) 993 if (!item.isEmpty()) 994 return true; 995 return false; 996 } 997 998 public QuestionnaireResponseItemComponent addItem() { //3 999 QuestionnaireResponseItemComponent t = new QuestionnaireResponseItemComponent(); 1000 if (this.item == null) 1001 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1002 this.item.add(t); 1003 return t; 1004 } 1005 1006 public QuestionnaireResponseItemAnswerComponent addItem(QuestionnaireResponseItemComponent t) { //3 1007 if (t == null) 1008 return this; 1009 if (this.item == null) 1010 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1011 this.item.add(t); 1012 return this; 1013 } 1014 1015 /** 1016 * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist 1017 */ 1018 public QuestionnaireResponseItemComponent getItemFirstRep() { 1019 if (getItem().isEmpty()) { 1020 addItem(); 1021 } 1022 return getItem().get(0); 1023 } 1024 1025 protected void listChildren(List<Property> children) { 1026 super.listChildren(children); 1027 children.add(new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value)); 1028 children.add(new Property("item", "@QuestionnaireResponse.item", "Nested groups and/or questions found within this particular answer.", 0, java.lang.Integer.MAX_VALUE, item)); 1029 } 1030 1031 @Override 1032 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1033 switch (_hash) { 1034 case -1410166417: /*value[x]*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1035 case 111972721: /*value*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1036 case 733421943: /*valueBoolean*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1037 case -2083993440: /*valueDecimal*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1038 case -1668204915: /*valueInteger*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1039 case -766192449: /*valueDate*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1040 case 1047929900: /*valueDateTime*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1041 case -765708322: /*valueTime*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1042 case -1424603934: /*valueString*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1043 case -1410172357: /*valueUri*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1044 case -475566732: /*valueAttachment*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1045 case -1887705029: /*valueCoding*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1046 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1047 case 1755241690: /*valueReference*/ return new Property("value[x]", "boolean|decimal|integer|date|dateTime|time|string|uri|Attachment|Coding|Quantity|Reference(Any)", "The answer (or one of the answers) provided by the respondent to the question.", 0, 1, value); 1048 case 3242771: /*item*/ return new Property("item", "@QuestionnaireResponse.item", "Nested groups and/or questions found within this particular answer.", 0, java.lang.Integer.MAX_VALUE, item); 1049 default: return super.getNamedProperty(_hash, _name, _checkValid); 1050 } 1051 1052 } 1053 1054 @Override 1055 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1056 switch (hash) { 1057 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // Type 1058 case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireResponseItemComponent 1059 default: return super.getProperty(hash, name, checkValid); 1060 } 1061 1062 } 1063 1064 @Override 1065 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1066 switch (hash) { 1067 case 111972721: // value 1068 this.value = castToType(value); // Type 1069 return value; 1070 case 3242771: // item 1071 this.getItem().add((QuestionnaireResponseItemComponent) value); // QuestionnaireResponseItemComponent 1072 return value; 1073 default: return super.setProperty(hash, name, value); 1074 } 1075 1076 } 1077 1078 @Override 1079 public Base setProperty(String name, Base value) throws FHIRException { 1080 if (name.equals("value[x]")) { 1081 this.value = castToType(value); // Type 1082 } else if (name.equals("item")) { 1083 this.getItem().add((QuestionnaireResponseItemComponent) value); 1084 } else 1085 return super.setProperty(name, value); 1086 return value; 1087 } 1088 1089 @Override 1090 public Base makeProperty(int hash, String name) throws FHIRException { 1091 switch (hash) { 1092 case -1410166417: return getValue(); 1093 case 111972721: return getValue(); 1094 case 3242771: return addItem(); 1095 default: return super.makeProperty(hash, name); 1096 } 1097 1098 } 1099 1100 @Override 1101 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1102 switch (hash) { 1103 case 111972721: /*value*/ return new String[] {"boolean", "decimal", "integer", "date", "dateTime", "time", "string", "uri", "Attachment", "Coding", "Quantity", "Reference"}; 1104 case 3242771: /*item*/ return new String[] {"@QuestionnaireResponse.item"}; 1105 default: return super.getTypesForProperty(hash, name); 1106 } 1107 1108 } 1109 1110 @Override 1111 public Base addChild(String name) throws FHIRException { 1112 if (name.equals("valueBoolean")) { 1113 this.value = new BooleanType(); 1114 return this.value; 1115 } 1116 else if (name.equals("valueDecimal")) { 1117 this.value = new DecimalType(); 1118 return this.value; 1119 } 1120 else if (name.equals("valueInteger")) { 1121 this.value = new IntegerType(); 1122 return this.value; 1123 } 1124 else if (name.equals("valueDate")) { 1125 this.value = new DateType(); 1126 return this.value; 1127 } 1128 else if (name.equals("valueDateTime")) { 1129 this.value = new DateTimeType(); 1130 return this.value; 1131 } 1132 else if (name.equals("valueTime")) { 1133 this.value = new TimeType(); 1134 return this.value; 1135 } 1136 else if (name.equals("valueString")) { 1137 this.value = new StringType(); 1138 return this.value; 1139 } 1140 else if (name.equals("valueUri")) { 1141 this.value = new UriType(); 1142 return this.value; 1143 } 1144 else if (name.equals("valueAttachment")) { 1145 this.value = new Attachment(); 1146 return this.value; 1147 } 1148 else if (name.equals("valueCoding")) { 1149 this.value = new Coding(); 1150 return this.value; 1151 } 1152 else if (name.equals("valueQuantity")) { 1153 this.value = new Quantity(); 1154 return this.value; 1155 } 1156 else if (name.equals("valueReference")) { 1157 this.value = new Reference(); 1158 return this.value; 1159 } 1160 else if (name.equals("item")) { 1161 return addItem(); 1162 } 1163 else 1164 return super.addChild(name); 1165 } 1166 1167 public QuestionnaireResponseItemAnswerComponent copy() { 1168 QuestionnaireResponseItemAnswerComponent dst = new QuestionnaireResponseItemAnswerComponent(); 1169 copyValues(dst); 1170 dst.value = value == null ? null : value.copy(); 1171 if (item != null) { 1172 dst.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1173 for (QuestionnaireResponseItemComponent i : item) 1174 dst.item.add(i.copy()); 1175 }; 1176 return dst; 1177 } 1178 1179 @Override 1180 public boolean equalsDeep(Base other_) { 1181 if (!super.equalsDeep(other_)) 1182 return false; 1183 if (!(other_ instanceof QuestionnaireResponseItemAnswerComponent)) 1184 return false; 1185 QuestionnaireResponseItemAnswerComponent o = (QuestionnaireResponseItemAnswerComponent) other_; 1186 return compareDeep(value, o.value, true) && compareDeep(item, o.item, true); 1187 } 1188 1189 @Override 1190 public boolean equalsShallow(Base other_) { 1191 if (!super.equalsShallow(other_)) 1192 return false; 1193 if (!(other_ instanceof QuestionnaireResponseItemAnswerComponent)) 1194 return false; 1195 QuestionnaireResponseItemAnswerComponent o = (QuestionnaireResponseItemAnswerComponent) other_; 1196 return true; 1197 } 1198 1199 public boolean isEmpty() { 1200 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(value, item); 1201 } 1202 1203 public String fhirType() { 1204 return "QuestionnaireResponse.item.answer"; 1205 1206 } 1207 1208 } 1209 1210 /** 1211 * A business identifier assigned to a particular completed (or partially completed) questionnaire. 1212 */ 1213 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=1, modifier=false, summary=true) 1214 @Description(shortDefinition="Unique id for this set of answers", formalDefinition="A business identifier assigned to a particular completed (or partially completed) questionnaire." ) 1215 protected Identifier identifier; 1216 1217 /** 1218 * The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression. 1219 */ 1220 @Child(name = "basedOn", type = {ReferralRequest.class, CarePlan.class, ProcedureRequest.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1221 @Description(shortDefinition="Request fulfilled by this QuestionnaireResponse", formalDefinition="The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression." ) 1222 protected List<Reference> basedOn; 1223 /** 1224 * The actual objects that are the target of the reference (The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.) 1225 */ 1226 protected List<Resource> basedOnTarget; 1227 1228 1229 /** 1230 * A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of. 1231 */ 1232 @Child(name = "parent", type = {Observation.class, Procedure.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 1233 @Description(shortDefinition="Part of this action", formalDefinition="A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of." ) 1234 protected List<Reference> parent; 1235 /** 1236 * The actual objects that are the target of the reference (A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.) 1237 */ 1238 protected List<Resource> parentTarget; 1239 1240 1241 /** 1242 * The Questionnaire that defines and organizes the questions for which answers are being provided. 1243 */ 1244 @Child(name = "questionnaire", type = {Questionnaire.class}, order=3, min=0, max=1, modifier=false, summary=true) 1245 @Description(shortDefinition="Form being answered", formalDefinition="The Questionnaire that defines and organizes the questions for which answers are being provided." ) 1246 protected Reference questionnaire; 1247 1248 /** 1249 * The actual object that is the target of the reference (The Questionnaire that defines and organizes the questions for which answers are being provided.) 1250 */ 1251 protected Questionnaire questionnaireTarget; 1252 1253 /** 1254 * The position of the questionnaire response within its overall lifecycle. 1255 */ 1256 @Child(name = "status", type = {CodeType.class}, order=4, min=1, max=1, modifier=true, summary=true) 1257 @Description(shortDefinition="in-progress | completed | amended | entered-in-error | stopped", formalDefinition="The position of the questionnaire response within its overall lifecycle." ) 1258 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/questionnaire-answers-status") 1259 protected Enumeration<QuestionnaireResponseStatus> status; 1260 1261 /** 1262 * The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information. 1263 */ 1264 @Child(name = "subject", type = {Reference.class}, order=5, min=0, max=1, modifier=false, summary=true) 1265 @Description(shortDefinition="The subject of the questions", formalDefinition="The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information." ) 1266 protected Reference subject; 1267 1268 /** 1269 * The actual object that is the target of the reference (The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.) 1270 */ 1271 protected Resource subjectTarget; 1272 1273 /** 1274 * The encounter or episode of care with primary association to the questionnaire response. 1275 */ 1276 @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=6, min=0, max=1, modifier=false, summary=true) 1277 @Description(shortDefinition="Encounter or Episode during which questionnaire was completed", formalDefinition="The encounter or episode of care with primary association to the questionnaire response." ) 1278 protected Reference context; 1279 1280 /** 1281 * The actual object that is the target of the reference (The encounter or episode of care with primary association to the questionnaire response.) 1282 */ 1283 protected Resource contextTarget; 1284 1285 /** 1286 * The date and/or time that this set of answers were last changed. 1287 */ 1288 @Child(name = "authored", type = {DateTimeType.class}, order=7, min=0, max=1, modifier=false, summary=true) 1289 @Description(shortDefinition="Date the answers were gathered", formalDefinition="The date and/or time that this set of answers were last changed." ) 1290 protected DateTimeType authored; 1291 1292 /** 1293 * Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system. 1294 */ 1295 @Child(name = "author", type = {Device.class, Practitioner.class, Patient.class, RelatedPerson.class}, order=8, min=0, max=1, modifier=false, summary=true) 1296 @Description(shortDefinition="Person who received and recorded the answers", formalDefinition="Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system." ) 1297 protected Reference author; 1298 1299 /** 1300 * The actual object that is the target of the reference (Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.) 1301 */ 1302 protected Resource authorTarget; 1303 1304 /** 1305 * The person who answered the questions about the subject. 1306 */ 1307 @Child(name = "source", type = {Patient.class, Practitioner.class, RelatedPerson.class}, order=9, min=0, max=1, modifier=false, summary=true) 1308 @Description(shortDefinition="The person who answered the questions", formalDefinition="The person who answered the questions about the subject." ) 1309 protected Reference source; 1310 1311 /** 1312 * The actual object that is the target of the reference (The person who answered the questions about the subject.) 1313 */ 1314 protected Resource sourceTarget; 1315 1316 /** 1317 * A group or question item from the original questionnaire for which answers are provided. 1318 */ 1319 @Child(name = "item", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1320 @Description(shortDefinition="Groups and questions", formalDefinition="A group or question item from the original questionnaire for which answers are provided." ) 1321 protected List<QuestionnaireResponseItemComponent> item; 1322 1323 private static final long serialVersionUID = -1559552776L; 1324 1325 /** 1326 * Constructor 1327 */ 1328 public QuestionnaireResponse() { 1329 super(); 1330 } 1331 1332 /** 1333 * Constructor 1334 */ 1335 public QuestionnaireResponse(Enumeration<QuestionnaireResponseStatus> status) { 1336 super(); 1337 this.status = status; 1338 } 1339 1340 /** 1341 * @return {@link #identifier} (A business identifier assigned to a particular completed (or partially completed) questionnaire.) 1342 */ 1343 public Identifier getIdentifier() { 1344 if (this.identifier == null) 1345 if (Configuration.errorOnAutoCreate()) 1346 throw new Error("Attempt to auto-create QuestionnaireResponse.identifier"); 1347 else if (Configuration.doAutoCreate()) 1348 this.identifier = new Identifier(); // cc 1349 return this.identifier; 1350 } 1351 1352 public boolean hasIdentifier() { 1353 return this.identifier != null && !this.identifier.isEmpty(); 1354 } 1355 1356 /** 1357 * @param value {@link #identifier} (A business identifier assigned to a particular completed (or partially completed) questionnaire.) 1358 */ 1359 public QuestionnaireResponse setIdentifier(Identifier value) { 1360 this.identifier = value; 1361 return this; 1362 } 1363 1364 /** 1365 * @return {@link #basedOn} (The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.) 1366 */ 1367 public List<Reference> getBasedOn() { 1368 if (this.basedOn == null) 1369 this.basedOn = new ArrayList<Reference>(); 1370 return this.basedOn; 1371 } 1372 1373 /** 1374 * @return Returns a reference to <code>this</code> for easy method chaining 1375 */ 1376 public QuestionnaireResponse setBasedOn(List<Reference> theBasedOn) { 1377 this.basedOn = theBasedOn; 1378 return this; 1379 } 1380 1381 public boolean hasBasedOn() { 1382 if (this.basedOn == null) 1383 return false; 1384 for (Reference item : this.basedOn) 1385 if (!item.isEmpty()) 1386 return true; 1387 return false; 1388 } 1389 1390 public Reference addBasedOn() { //3 1391 Reference t = new Reference(); 1392 if (this.basedOn == null) 1393 this.basedOn = new ArrayList<Reference>(); 1394 this.basedOn.add(t); 1395 return t; 1396 } 1397 1398 public QuestionnaireResponse addBasedOn(Reference t) { //3 1399 if (t == null) 1400 return this; 1401 if (this.basedOn == null) 1402 this.basedOn = new ArrayList<Reference>(); 1403 this.basedOn.add(t); 1404 return this; 1405 } 1406 1407 /** 1408 * @return The first repetition of repeating field {@link #basedOn}, creating it if it does not already exist 1409 */ 1410 public Reference getBasedOnFirstRep() { 1411 if (getBasedOn().isEmpty()) { 1412 addBasedOn(); 1413 } 1414 return getBasedOn().get(0); 1415 } 1416 1417 /** 1418 * @deprecated Use Reference#setResource(IBaseResource) instead 1419 */ 1420 @Deprecated 1421 public List<Resource> getBasedOnTarget() { 1422 if (this.basedOnTarget == null) 1423 this.basedOnTarget = new ArrayList<Resource>(); 1424 return this.basedOnTarget; 1425 } 1426 1427 /** 1428 * @return {@link #parent} (A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.) 1429 */ 1430 public List<Reference> getParent() { 1431 if (this.parent == null) 1432 this.parent = new ArrayList<Reference>(); 1433 return this.parent; 1434 } 1435 1436 /** 1437 * @return Returns a reference to <code>this</code> for easy method chaining 1438 */ 1439 public QuestionnaireResponse setParent(List<Reference> theParent) { 1440 this.parent = theParent; 1441 return this; 1442 } 1443 1444 public boolean hasParent() { 1445 if (this.parent == null) 1446 return false; 1447 for (Reference item : this.parent) 1448 if (!item.isEmpty()) 1449 return true; 1450 return false; 1451 } 1452 1453 public Reference addParent() { //3 1454 Reference t = new Reference(); 1455 if (this.parent == null) 1456 this.parent = new ArrayList<Reference>(); 1457 this.parent.add(t); 1458 return t; 1459 } 1460 1461 public QuestionnaireResponse addParent(Reference t) { //3 1462 if (t == null) 1463 return this; 1464 if (this.parent == null) 1465 this.parent = new ArrayList<Reference>(); 1466 this.parent.add(t); 1467 return this; 1468 } 1469 1470 /** 1471 * @return The first repetition of repeating field {@link #parent}, creating it if it does not already exist 1472 */ 1473 public Reference getParentFirstRep() { 1474 if (getParent().isEmpty()) { 1475 addParent(); 1476 } 1477 return getParent().get(0); 1478 } 1479 1480 /** 1481 * @deprecated Use Reference#setResource(IBaseResource) instead 1482 */ 1483 @Deprecated 1484 public List<Resource> getParentTarget() { 1485 if (this.parentTarget == null) 1486 this.parentTarget = new ArrayList<Resource>(); 1487 return this.parentTarget; 1488 } 1489 1490 /** 1491 * @return {@link #questionnaire} (The Questionnaire that defines and organizes the questions for which answers are being provided.) 1492 */ 1493 public Reference getQuestionnaire() { 1494 if (this.questionnaire == null) 1495 if (Configuration.errorOnAutoCreate()) 1496 throw new Error("Attempt to auto-create QuestionnaireResponse.questionnaire"); 1497 else if (Configuration.doAutoCreate()) 1498 this.questionnaire = new Reference(); // cc 1499 return this.questionnaire; 1500 } 1501 1502 public boolean hasQuestionnaire() { 1503 return this.questionnaire != null && !this.questionnaire.isEmpty(); 1504 } 1505 1506 /** 1507 * @param value {@link #questionnaire} (The Questionnaire that defines and organizes the questions for which answers are being provided.) 1508 */ 1509 public QuestionnaireResponse setQuestionnaire(Reference value) { 1510 this.questionnaire = value; 1511 return this; 1512 } 1513 1514 /** 1515 * @return {@link #questionnaire} 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 Questionnaire that defines and organizes the questions for which answers are being provided.) 1516 */ 1517 public Questionnaire getQuestionnaireTarget() { 1518 if (this.questionnaireTarget == null) 1519 if (Configuration.errorOnAutoCreate()) 1520 throw new Error("Attempt to auto-create QuestionnaireResponse.questionnaire"); 1521 else if (Configuration.doAutoCreate()) 1522 this.questionnaireTarget = new Questionnaire(); // aa 1523 return this.questionnaireTarget; 1524 } 1525 1526 /** 1527 * @param value {@link #questionnaire} 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 Questionnaire that defines and organizes the questions for which answers are being provided.) 1528 */ 1529 public QuestionnaireResponse setQuestionnaireTarget(Questionnaire value) { 1530 this.questionnaireTarget = value; 1531 return this; 1532 } 1533 1534 /** 1535 * @return {@link #status} (The position of the questionnaire response within its overall lifecycle.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1536 */ 1537 public Enumeration<QuestionnaireResponseStatus> getStatusElement() { 1538 if (this.status == null) 1539 if (Configuration.errorOnAutoCreate()) 1540 throw new Error("Attempt to auto-create QuestionnaireResponse.status"); 1541 else if (Configuration.doAutoCreate()) 1542 this.status = new Enumeration<QuestionnaireResponseStatus>(new QuestionnaireResponseStatusEnumFactory()); // bb 1543 return this.status; 1544 } 1545 1546 public boolean hasStatusElement() { 1547 return this.status != null && !this.status.isEmpty(); 1548 } 1549 1550 public boolean hasStatus() { 1551 return this.status != null && !this.status.isEmpty(); 1552 } 1553 1554 /** 1555 * @param value {@link #status} (The position of the questionnaire response within its overall lifecycle.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 1556 */ 1557 public QuestionnaireResponse setStatusElement(Enumeration<QuestionnaireResponseStatus> value) { 1558 this.status = value; 1559 return this; 1560 } 1561 1562 /** 1563 * @return The position of the questionnaire response within its overall lifecycle. 1564 */ 1565 public QuestionnaireResponseStatus getStatus() { 1566 return this.status == null ? null : this.status.getValue(); 1567 } 1568 1569 /** 1570 * @param value The position of the questionnaire response within its overall lifecycle. 1571 */ 1572 public QuestionnaireResponse setStatus(QuestionnaireResponseStatus value) { 1573 if (this.status == null) 1574 this.status = new Enumeration<QuestionnaireResponseStatus>(new QuestionnaireResponseStatusEnumFactory()); 1575 this.status.setValue(value); 1576 return this; 1577 } 1578 1579 /** 1580 * @return {@link #subject} (The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.) 1581 */ 1582 public Reference getSubject() { 1583 if (this.subject == null) 1584 if (Configuration.errorOnAutoCreate()) 1585 throw new Error("Attempt to auto-create QuestionnaireResponse.subject"); 1586 else if (Configuration.doAutoCreate()) 1587 this.subject = new Reference(); // cc 1588 return this.subject; 1589 } 1590 1591 public boolean hasSubject() { 1592 return this.subject != null && !this.subject.isEmpty(); 1593 } 1594 1595 /** 1596 * @param value {@link #subject} (The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.) 1597 */ 1598 public QuestionnaireResponse setSubject(Reference value) { 1599 this.subject = value; 1600 return this; 1601 } 1602 1603 /** 1604 * @return {@link #subject} 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 subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.) 1605 */ 1606 public Resource getSubjectTarget() { 1607 return this.subjectTarget; 1608 } 1609 1610 /** 1611 * @param value {@link #subject} 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 subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.) 1612 */ 1613 public QuestionnaireResponse setSubjectTarget(Resource value) { 1614 this.subjectTarget = value; 1615 return this; 1616 } 1617 1618 /** 1619 * @return {@link #context} (The encounter or episode of care with primary association to the questionnaire response.) 1620 */ 1621 public Reference getContext() { 1622 if (this.context == null) 1623 if (Configuration.errorOnAutoCreate()) 1624 throw new Error("Attempt to auto-create QuestionnaireResponse.context"); 1625 else if (Configuration.doAutoCreate()) 1626 this.context = new Reference(); // cc 1627 return this.context; 1628 } 1629 1630 public boolean hasContext() { 1631 return this.context != null && !this.context.isEmpty(); 1632 } 1633 1634 /** 1635 * @param value {@link #context} (The encounter or episode of care with primary association to the questionnaire response.) 1636 */ 1637 public QuestionnaireResponse setContext(Reference value) { 1638 this.context = value; 1639 return this; 1640 } 1641 1642 /** 1643 * @return {@link #context} 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 encounter or episode of care with primary association to the questionnaire response.) 1644 */ 1645 public Resource getContextTarget() { 1646 return this.contextTarget; 1647 } 1648 1649 /** 1650 * @param value {@link #context} 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 encounter or episode of care with primary association to the questionnaire response.) 1651 */ 1652 public QuestionnaireResponse setContextTarget(Resource value) { 1653 this.contextTarget = value; 1654 return this; 1655 } 1656 1657 /** 1658 * @return {@link #authored} (The date and/or time that this set of answers were last changed.). This is the underlying object with id, value and extensions. The accessor "getAuthored" gives direct access to the value 1659 */ 1660 public DateTimeType getAuthoredElement() { 1661 if (this.authored == null) 1662 if (Configuration.errorOnAutoCreate()) 1663 throw new Error("Attempt to auto-create QuestionnaireResponse.authored"); 1664 else if (Configuration.doAutoCreate()) 1665 this.authored = new DateTimeType(); // bb 1666 return this.authored; 1667 } 1668 1669 public boolean hasAuthoredElement() { 1670 return this.authored != null && !this.authored.isEmpty(); 1671 } 1672 1673 public boolean hasAuthored() { 1674 return this.authored != null && !this.authored.isEmpty(); 1675 } 1676 1677 /** 1678 * @param value {@link #authored} (The date and/or time that this set of answers were last changed.). This is the underlying object with id, value and extensions. The accessor "getAuthored" gives direct access to the value 1679 */ 1680 public QuestionnaireResponse setAuthoredElement(DateTimeType value) { 1681 this.authored = value; 1682 return this; 1683 } 1684 1685 /** 1686 * @return The date and/or time that this set of answers were last changed. 1687 */ 1688 public Date getAuthored() { 1689 return this.authored == null ? null : this.authored.getValue(); 1690 } 1691 1692 /** 1693 * @param value The date and/or time that this set of answers were last changed. 1694 */ 1695 public QuestionnaireResponse setAuthored(Date value) { 1696 if (value == null) 1697 this.authored = null; 1698 else { 1699 if (this.authored == null) 1700 this.authored = new DateTimeType(); 1701 this.authored.setValue(value); 1702 } 1703 return this; 1704 } 1705 1706 /** 1707 * @return {@link #author} (Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.) 1708 */ 1709 public Reference getAuthor() { 1710 if (this.author == null) 1711 if (Configuration.errorOnAutoCreate()) 1712 throw new Error("Attempt to auto-create QuestionnaireResponse.author"); 1713 else if (Configuration.doAutoCreate()) 1714 this.author = new Reference(); // cc 1715 return this.author; 1716 } 1717 1718 public boolean hasAuthor() { 1719 return this.author != null && !this.author.isEmpty(); 1720 } 1721 1722 /** 1723 * @param value {@link #author} (Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.) 1724 */ 1725 public QuestionnaireResponse setAuthor(Reference value) { 1726 this.author = value; 1727 return this; 1728 } 1729 1730 /** 1731 * @return {@link #author} 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. (Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.) 1732 */ 1733 public Resource getAuthorTarget() { 1734 return this.authorTarget; 1735 } 1736 1737 /** 1738 * @param value {@link #author} 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. (Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.) 1739 */ 1740 public QuestionnaireResponse setAuthorTarget(Resource value) { 1741 this.authorTarget = value; 1742 return this; 1743 } 1744 1745 /** 1746 * @return {@link #source} (The person who answered the questions about the subject.) 1747 */ 1748 public Reference getSource() { 1749 if (this.source == null) 1750 if (Configuration.errorOnAutoCreate()) 1751 throw new Error("Attempt to auto-create QuestionnaireResponse.source"); 1752 else if (Configuration.doAutoCreate()) 1753 this.source = new Reference(); // cc 1754 return this.source; 1755 } 1756 1757 public boolean hasSource() { 1758 return this.source != null && !this.source.isEmpty(); 1759 } 1760 1761 /** 1762 * @param value {@link #source} (The person who answered the questions about the subject.) 1763 */ 1764 public QuestionnaireResponse setSource(Reference value) { 1765 this.source = value; 1766 return this; 1767 } 1768 1769 /** 1770 * @return {@link #source} 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 person who answered the questions about the subject.) 1771 */ 1772 public Resource getSourceTarget() { 1773 return this.sourceTarget; 1774 } 1775 1776 /** 1777 * @param value {@link #source} 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 person who answered the questions about the subject.) 1778 */ 1779 public QuestionnaireResponse setSourceTarget(Resource value) { 1780 this.sourceTarget = value; 1781 return this; 1782 } 1783 1784 /** 1785 * @return {@link #item} (A group or question item from the original questionnaire for which answers are provided.) 1786 */ 1787 public List<QuestionnaireResponseItemComponent> getItem() { 1788 if (this.item == null) 1789 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1790 return this.item; 1791 } 1792 1793 /** 1794 * @return Returns a reference to <code>this</code> for easy method chaining 1795 */ 1796 public QuestionnaireResponse setItem(List<QuestionnaireResponseItemComponent> theItem) { 1797 this.item = theItem; 1798 return this; 1799 } 1800 1801 public boolean hasItem() { 1802 if (this.item == null) 1803 return false; 1804 for (QuestionnaireResponseItemComponent item : this.item) 1805 if (!item.isEmpty()) 1806 return true; 1807 return false; 1808 } 1809 1810 public QuestionnaireResponseItemComponent addItem() { //3 1811 QuestionnaireResponseItemComponent t = new QuestionnaireResponseItemComponent(); 1812 if (this.item == null) 1813 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1814 this.item.add(t); 1815 return t; 1816 } 1817 1818 public QuestionnaireResponse addItem(QuestionnaireResponseItemComponent t) { //3 1819 if (t == null) 1820 return this; 1821 if (this.item == null) 1822 this.item = new ArrayList<QuestionnaireResponseItemComponent>(); 1823 this.item.add(t); 1824 return this; 1825 } 1826 1827 /** 1828 * @return The first repetition of repeating field {@link #item}, creating it if it does not already exist 1829 */ 1830 public QuestionnaireResponseItemComponent getItemFirstRep() { 1831 if (getItem().isEmpty()) { 1832 addItem(); 1833 } 1834 return getItem().get(0); 1835 } 1836 1837 protected void listChildren(List<Property> children) { 1838 super.listChildren(children); 1839 children.add(new Property("identifier", "Identifier", "A business identifier assigned to a particular completed (or partially completed) questionnaire.", 0, 1, identifier)); 1840 children.add(new Property("basedOn", "Reference(ReferralRequest|CarePlan|ProcedureRequest)", "The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.", 0, java.lang.Integer.MAX_VALUE, basedOn)); 1841 children.add(new Property("parent", "Reference(Observation|Procedure)", "A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.", 0, java.lang.Integer.MAX_VALUE, parent)); 1842 children.add(new Property("questionnaire", "Reference(Questionnaire)", "The Questionnaire that defines and organizes the questions for which answers are being provided.", 0, 1, questionnaire)); 1843 children.add(new Property("status", "code", "The position of the questionnaire response within its overall lifecycle.", 0, 1, status)); 1844 children.add(new Property("subject", "Reference(Any)", "The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.", 0, 1, subject)); 1845 children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode of care with primary association to the questionnaire response.", 0, 1, context)); 1846 children.add(new Property("authored", "dateTime", "The date and/or time that this set of answers were last changed.", 0, 1, authored)); 1847 children.add(new Property("author", "Reference(Device|Practitioner|Patient|RelatedPerson)", "Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.", 0, 1, author)); 1848 children.add(new Property("source", "Reference(Patient|Practitioner|RelatedPerson)", "The person who answered the questions about the subject.", 0, 1, source)); 1849 children.add(new Property("item", "", "A group or question item from the original questionnaire for which answers are provided.", 0, java.lang.Integer.MAX_VALUE, item)); 1850 } 1851 1852 @Override 1853 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1854 switch (_hash) { 1855 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A business identifier assigned to a particular completed (or partially completed) questionnaire.", 0, 1, identifier); 1856 case -332612366: /*basedOn*/ return new Property("basedOn", "Reference(ReferralRequest|CarePlan|ProcedureRequest)", "The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ProcedureRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression.", 0, java.lang.Integer.MAX_VALUE, basedOn); 1857 case -995424086: /*parent*/ return new Property("parent", "Reference(Observation|Procedure)", "A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of.", 0, java.lang.Integer.MAX_VALUE, parent); 1858 case -1017049693: /*questionnaire*/ return new Property("questionnaire", "Reference(Questionnaire)", "The Questionnaire that defines and organizes the questions for which answers are being provided.", 0, 1, questionnaire); 1859 case -892481550: /*status*/ return new Property("status", "code", "The position of the questionnaire response within its overall lifecycle.", 0, 1, status); 1860 case -1867885268: /*subject*/ return new Property("subject", "Reference(Any)", "The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information.", 0, 1, subject); 1861 case 951530927: /*context*/ return new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode of care with primary association to the questionnaire response.", 0, 1, context); 1862 case 1433073514: /*authored*/ return new Property("authored", "dateTime", "The date and/or time that this set of answers were last changed.", 0, 1, authored); 1863 case -1406328437: /*author*/ return new Property("author", "Reference(Device|Practitioner|Patient|RelatedPerson)", "Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system.", 0, 1, author); 1864 case -896505829: /*source*/ return new Property("source", "Reference(Patient|Practitioner|RelatedPerson)", "The person who answered the questions about the subject.", 0, 1, source); 1865 case 3242771: /*item*/ return new Property("item", "", "A group or question item from the original questionnaire for which answers are provided.", 0, java.lang.Integer.MAX_VALUE, item); 1866 default: return super.getNamedProperty(_hash, _name, _checkValid); 1867 } 1868 1869 } 1870 1871 @Override 1872 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1873 switch (hash) { 1874 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // Identifier 1875 case -332612366: /*basedOn*/ return this.basedOn == null ? new Base[0] : this.basedOn.toArray(new Base[this.basedOn.size()]); // Reference 1876 case -995424086: /*parent*/ return this.parent == null ? new Base[0] : this.parent.toArray(new Base[this.parent.size()]); // Reference 1877 case -1017049693: /*questionnaire*/ return this.questionnaire == null ? new Base[0] : new Base[] {this.questionnaire}; // Reference 1878 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<QuestionnaireResponseStatus> 1879 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 1880 case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference 1881 case 1433073514: /*authored*/ return this.authored == null ? new Base[0] : new Base[] {this.authored}; // DateTimeType 1882 case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference 1883 case -896505829: /*source*/ return this.source == null ? new Base[0] : new Base[] {this.source}; // Reference 1884 case 3242771: /*item*/ return this.item == null ? new Base[0] : this.item.toArray(new Base[this.item.size()]); // QuestionnaireResponseItemComponent 1885 default: return super.getProperty(hash, name, checkValid); 1886 } 1887 1888 } 1889 1890 @Override 1891 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1892 switch (hash) { 1893 case -1618432855: // identifier 1894 this.identifier = castToIdentifier(value); // Identifier 1895 return value; 1896 case -332612366: // basedOn 1897 this.getBasedOn().add(castToReference(value)); // Reference 1898 return value; 1899 case -995424086: // parent 1900 this.getParent().add(castToReference(value)); // Reference 1901 return value; 1902 case -1017049693: // questionnaire 1903 this.questionnaire = castToReference(value); // Reference 1904 return value; 1905 case -892481550: // status 1906 value = new QuestionnaireResponseStatusEnumFactory().fromType(castToCode(value)); 1907 this.status = (Enumeration) value; // Enumeration<QuestionnaireResponseStatus> 1908 return value; 1909 case -1867885268: // subject 1910 this.subject = castToReference(value); // Reference 1911 return value; 1912 case 951530927: // context 1913 this.context = castToReference(value); // Reference 1914 return value; 1915 case 1433073514: // authored 1916 this.authored = castToDateTime(value); // DateTimeType 1917 return value; 1918 case -1406328437: // author 1919 this.author = castToReference(value); // Reference 1920 return value; 1921 case -896505829: // source 1922 this.source = castToReference(value); // Reference 1923 return value; 1924 case 3242771: // item 1925 this.getItem().add((QuestionnaireResponseItemComponent) value); // QuestionnaireResponseItemComponent 1926 return value; 1927 default: return super.setProperty(hash, name, value); 1928 } 1929 1930 } 1931 1932 @Override 1933 public Base setProperty(String name, Base value) throws FHIRException { 1934 if (name.equals("identifier")) { 1935 this.identifier = castToIdentifier(value); // Identifier 1936 } else if (name.equals("basedOn")) { 1937 this.getBasedOn().add(castToReference(value)); 1938 } else if (name.equals("parent")) { 1939 this.getParent().add(castToReference(value)); 1940 } else if (name.equals("questionnaire")) { 1941 this.questionnaire = castToReference(value); // Reference 1942 } else if (name.equals("status")) { 1943 value = new QuestionnaireResponseStatusEnumFactory().fromType(castToCode(value)); 1944 this.status = (Enumeration) value; // Enumeration<QuestionnaireResponseStatus> 1945 } else if (name.equals("subject")) { 1946 this.subject = castToReference(value); // Reference 1947 } else if (name.equals("context")) { 1948 this.context = castToReference(value); // Reference 1949 } else if (name.equals("authored")) { 1950 this.authored = castToDateTime(value); // DateTimeType 1951 } else if (name.equals("author")) { 1952 this.author = castToReference(value); // Reference 1953 } else if (name.equals("source")) { 1954 this.source = castToReference(value); // Reference 1955 } else if (name.equals("item")) { 1956 this.getItem().add((QuestionnaireResponseItemComponent) value); 1957 } else 1958 return super.setProperty(name, value); 1959 return value; 1960 } 1961 1962 @Override 1963 public Base makeProperty(int hash, String name) throws FHIRException { 1964 switch (hash) { 1965 case -1618432855: return getIdentifier(); 1966 case -332612366: return addBasedOn(); 1967 case -995424086: return addParent(); 1968 case -1017049693: return getQuestionnaire(); 1969 case -892481550: return getStatusElement(); 1970 case -1867885268: return getSubject(); 1971 case 951530927: return getContext(); 1972 case 1433073514: return getAuthoredElement(); 1973 case -1406328437: return getAuthor(); 1974 case -896505829: return getSource(); 1975 case 3242771: return addItem(); 1976 default: return super.makeProperty(hash, name); 1977 } 1978 1979 } 1980 1981 @Override 1982 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1983 switch (hash) { 1984 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1985 case -332612366: /*basedOn*/ return new String[] {"Reference"}; 1986 case -995424086: /*parent*/ return new String[] {"Reference"}; 1987 case -1017049693: /*questionnaire*/ return new String[] {"Reference"}; 1988 case -892481550: /*status*/ return new String[] {"code"}; 1989 case -1867885268: /*subject*/ return new String[] {"Reference"}; 1990 case 951530927: /*context*/ return new String[] {"Reference"}; 1991 case 1433073514: /*authored*/ return new String[] {"dateTime"}; 1992 case -1406328437: /*author*/ return new String[] {"Reference"}; 1993 case -896505829: /*source*/ return new String[] {"Reference"}; 1994 case 3242771: /*item*/ return new String[] {}; 1995 default: return super.getTypesForProperty(hash, name); 1996 } 1997 1998 } 1999 2000 @Override 2001 public Base addChild(String name) throws FHIRException { 2002 if (name.equals("identifier")) { 2003 this.identifier = new Identifier(); 2004 return this.identifier; 2005 } 2006 else if (name.equals("basedOn")) { 2007 return addBasedOn(); 2008 } 2009 else if (name.equals("parent")) { 2010 return addParent(); 2011 } 2012 else if (name.equals("questionnaire")) { 2013 this.questionnaire = new Reference(); 2014 return this.questionnaire; 2015 } 2016 else if (name.equals("status")) { 2017 throw new FHIRException("Cannot call addChild on a primitive type QuestionnaireResponse.status"); 2018 } 2019 else if (name.equals("subject")) { 2020 this.subject = new Reference(); 2021 return this.subject; 2022 } 2023 else if (name.equals("context")) { 2024 this.context = new Reference(); 2025 return this.context; 2026 } 2027 else if (name.equals("authored")) { 2028 throw new FHIRException("Cannot call addChild on a primitive type QuestionnaireResponse.authored"); 2029 } 2030 else if (name.equals("author")) { 2031 this.author = new Reference(); 2032 return this.author; 2033 } 2034 else if (name.equals("source")) { 2035 this.source = new Reference(); 2036 return this.source; 2037 } 2038 else if (name.equals("item")) { 2039 return addItem(); 2040 } 2041 else 2042 return super.addChild(name); 2043 } 2044 2045 public String fhirType() { 2046 return "QuestionnaireResponse"; 2047 2048 } 2049 2050 public QuestionnaireResponse copy() { 2051 QuestionnaireResponse dst = new QuestionnaireResponse(); 2052 copyValues(dst); 2053 dst.identifier = identifier == null ? null : identifier.copy(); 2054 if (basedOn != null) { 2055 dst.basedOn = new ArrayList<Reference>(); 2056 for (Reference i : basedOn) 2057 dst.basedOn.add(i.copy()); 2058 }; 2059 if (parent != null) { 2060 dst.parent = new ArrayList<Reference>(); 2061 for (Reference i : parent) 2062 dst.parent.add(i.copy()); 2063 }; 2064 dst.questionnaire = questionnaire == null ? null : questionnaire.copy(); 2065 dst.status = status == null ? null : status.copy(); 2066 dst.subject = subject == null ? null : subject.copy(); 2067 dst.context = context == null ? null : context.copy(); 2068 dst.authored = authored == null ? null : authored.copy(); 2069 dst.author = author == null ? null : author.copy(); 2070 dst.source = source == null ? null : source.copy(); 2071 if (item != null) { 2072 dst.item = new ArrayList<QuestionnaireResponseItemComponent>(); 2073 for (QuestionnaireResponseItemComponent i : item) 2074 dst.item.add(i.copy()); 2075 }; 2076 return dst; 2077 } 2078 2079 protected QuestionnaireResponse typedCopy() { 2080 return copy(); 2081 } 2082 2083 @Override 2084 public boolean equalsDeep(Base other_) { 2085 if (!super.equalsDeep(other_)) 2086 return false; 2087 if (!(other_ instanceof QuestionnaireResponse)) 2088 return false; 2089 QuestionnaireResponse o = (QuestionnaireResponse) other_; 2090 return compareDeep(identifier, o.identifier, true) && compareDeep(basedOn, o.basedOn, true) && compareDeep(parent, o.parent, true) 2091 && compareDeep(questionnaire, o.questionnaire, true) && compareDeep(status, o.status, true) && compareDeep(subject, o.subject, true) 2092 && compareDeep(context, o.context, true) && compareDeep(authored, o.authored, true) && compareDeep(author, o.author, true) 2093 && compareDeep(source, o.source, true) && compareDeep(item, o.item, true); 2094 } 2095 2096 @Override 2097 public boolean equalsShallow(Base other_) { 2098 if (!super.equalsShallow(other_)) 2099 return false; 2100 if (!(other_ instanceof QuestionnaireResponse)) 2101 return false; 2102 QuestionnaireResponse o = (QuestionnaireResponse) other_; 2103 return compareValues(status, o.status, true) && compareValues(authored, o.authored, true); 2104 } 2105 2106 public boolean isEmpty() { 2107 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, basedOn, parent 2108 , questionnaire, status, subject, context, authored, author, source, item); 2109 } 2110 2111 @Override 2112 public ResourceType getResourceType() { 2113 return ResourceType.QuestionnaireResponse; 2114 } 2115 2116 /** 2117 * Search parameter: <b>authored</b> 2118 * <p> 2119 * Description: <b>When the questionnaire response was last changed</b><br> 2120 * Type: <b>date</b><br> 2121 * Path: <b>QuestionnaireResponse.authored</b><br> 2122 * </p> 2123 */ 2124 @SearchParamDefinition(name="authored", path="QuestionnaireResponse.authored", description="When the questionnaire response was last changed", type="date" ) 2125 public static final String SP_AUTHORED = "authored"; 2126 /** 2127 * <b>Fluent Client</b> search parameter constant for <b>authored</b> 2128 * <p> 2129 * Description: <b>When the questionnaire response was last changed</b><br> 2130 * Type: <b>date</b><br> 2131 * Path: <b>QuestionnaireResponse.authored</b><br> 2132 * </p> 2133 */ 2134 public static final ca.uhn.fhir.rest.gclient.DateClientParam AUTHORED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_AUTHORED); 2135 2136 /** 2137 * Search parameter: <b>identifier</b> 2138 * <p> 2139 * Description: <b>The unique identifier for the questionnaire response</b><br> 2140 * Type: <b>token</b><br> 2141 * Path: <b>QuestionnaireResponse.identifier</b><br> 2142 * </p> 2143 */ 2144 @SearchParamDefinition(name="identifier", path="QuestionnaireResponse.identifier", description="The unique identifier for the questionnaire response", type="token" ) 2145 public static final String SP_IDENTIFIER = "identifier"; 2146 /** 2147 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2148 * <p> 2149 * Description: <b>The unique identifier for the questionnaire response</b><br> 2150 * Type: <b>token</b><br> 2151 * Path: <b>QuestionnaireResponse.identifier</b><br> 2152 * </p> 2153 */ 2154 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2155 2156 /** 2157 * Search parameter: <b>parent</b> 2158 * <p> 2159 * Description: <b>Procedure or observation this questionnaire response was performed as a part of</b><br> 2160 * Type: <b>reference</b><br> 2161 * Path: <b>QuestionnaireResponse.parent</b><br> 2162 * </p> 2163 */ 2164 @SearchParamDefinition(name="parent", path="QuestionnaireResponse.parent", description="Procedure or observation this questionnaire response was performed as a part of", type="reference", target={Observation.class, Procedure.class } ) 2165 public static final String SP_PARENT = "parent"; 2166 /** 2167 * <b>Fluent Client</b> search parameter constant for <b>parent</b> 2168 * <p> 2169 * Description: <b>Procedure or observation this questionnaire response was performed as a part of</b><br> 2170 * Type: <b>reference</b><br> 2171 * Path: <b>QuestionnaireResponse.parent</b><br> 2172 * </p> 2173 */ 2174 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARENT); 2175 2176/** 2177 * Constant for fluent queries to be used to add include statements. Specifies 2178 * the path value of "<b>QuestionnaireResponse:parent</b>". 2179 */ 2180 public static final ca.uhn.fhir.model.api.Include INCLUDE_PARENT = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:parent").toLocked(); 2181 2182 /** 2183 * Search parameter: <b>questionnaire</b> 2184 * <p> 2185 * Description: <b>The questionnaire the answers are provided for</b><br> 2186 * Type: <b>reference</b><br> 2187 * Path: <b>QuestionnaireResponse.questionnaire</b><br> 2188 * </p> 2189 */ 2190 @SearchParamDefinition(name="questionnaire", path="QuestionnaireResponse.questionnaire", description="The questionnaire the answers are provided for", type="reference", target={Questionnaire.class } ) 2191 public static final String SP_QUESTIONNAIRE = "questionnaire"; 2192 /** 2193 * <b>Fluent Client</b> search parameter constant for <b>questionnaire</b> 2194 * <p> 2195 * Description: <b>The questionnaire the answers are provided for</b><br> 2196 * Type: <b>reference</b><br> 2197 * Path: <b>QuestionnaireResponse.questionnaire</b><br> 2198 * </p> 2199 */ 2200 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam QUESTIONNAIRE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_QUESTIONNAIRE); 2201 2202/** 2203 * Constant for fluent queries to be used to add include statements. Specifies 2204 * the path value of "<b>QuestionnaireResponse:questionnaire</b>". 2205 */ 2206 public static final ca.uhn.fhir.model.api.Include INCLUDE_QUESTIONNAIRE = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:questionnaire").toLocked(); 2207 2208 /** 2209 * Search parameter: <b>based-on</b> 2210 * <p> 2211 * Description: <b>Plan/proposal/order fulfilled by this questionnaire response</b><br> 2212 * Type: <b>reference</b><br> 2213 * Path: <b>QuestionnaireResponse.basedOn</b><br> 2214 * </p> 2215 */ 2216 @SearchParamDefinition(name="based-on", path="QuestionnaireResponse.basedOn", description="Plan/proposal/order fulfilled by this questionnaire response", type="reference", target={CarePlan.class, ProcedureRequest.class, ReferralRequest.class } ) 2217 public static final String SP_BASED_ON = "based-on"; 2218 /** 2219 * <b>Fluent Client</b> search parameter constant for <b>based-on</b> 2220 * <p> 2221 * Description: <b>Plan/proposal/order fulfilled by this questionnaire response</b><br> 2222 * Type: <b>reference</b><br> 2223 * Path: <b>QuestionnaireResponse.basedOn</b><br> 2224 * </p> 2225 */ 2226 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam BASED_ON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_BASED_ON); 2227 2228/** 2229 * Constant for fluent queries to be used to add include statements. Specifies 2230 * the path value of "<b>QuestionnaireResponse:based-on</b>". 2231 */ 2232 public static final ca.uhn.fhir.model.api.Include INCLUDE_BASED_ON = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:based-on").toLocked(); 2233 2234 /** 2235 * Search parameter: <b>subject</b> 2236 * <p> 2237 * Description: <b>The subject of the questionnaire response</b><br> 2238 * Type: <b>reference</b><br> 2239 * Path: <b>QuestionnaireResponse.subject</b><br> 2240 * </p> 2241 */ 2242 @SearchParamDefinition(name="subject", path="QuestionnaireResponse.subject", description="The subject of the questionnaire response", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") } ) 2243 public static final String SP_SUBJECT = "subject"; 2244 /** 2245 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2246 * <p> 2247 * Description: <b>The subject of the questionnaire response</b><br> 2248 * Type: <b>reference</b><br> 2249 * Path: <b>QuestionnaireResponse.subject</b><br> 2250 * </p> 2251 */ 2252 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2253 2254/** 2255 * Constant for fluent queries to be used to add include statements. Specifies 2256 * the path value of "<b>QuestionnaireResponse:subject</b>". 2257 */ 2258 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:subject").toLocked(); 2259 2260 /** 2261 * Search parameter: <b>author</b> 2262 * <p> 2263 * Description: <b>The author of the questionnaire response</b><br> 2264 * Type: <b>reference</b><br> 2265 * Path: <b>QuestionnaireResponse.author</b><br> 2266 * </p> 2267 */ 2268 @SearchParamDefinition(name="author", path="QuestionnaireResponse.author", description="The author of the questionnaire response", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Device.class, Patient.class, Practitioner.class, RelatedPerson.class } ) 2269 public static final String SP_AUTHOR = "author"; 2270 /** 2271 * <b>Fluent Client</b> search parameter constant for <b>author</b> 2272 * <p> 2273 * Description: <b>The author of the questionnaire response</b><br> 2274 * Type: <b>reference</b><br> 2275 * Path: <b>QuestionnaireResponse.author</b><br> 2276 * </p> 2277 */ 2278 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR); 2279 2280/** 2281 * Constant for fluent queries to be used to add include statements. Specifies 2282 * the path value of "<b>QuestionnaireResponse:author</b>". 2283 */ 2284 public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:author").toLocked(); 2285 2286 /** 2287 * Search parameter: <b>patient</b> 2288 * <p> 2289 * Description: <b>The patient that is the subject of the questionnaire response</b><br> 2290 * Type: <b>reference</b><br> 2291 * Path: <b>QuestionnaireResponse.subject</b><br> 2292 * </p> 2293 */ 2294 @SearchParamDefinition(name="patient", path="QuestionnaireResponse.subject", description="The patient that is the subject of the questionnaire response", type="reference", target={Patient.class } ) 2295 public static final String SP_PATIENT = "patient"; 2296 /** 2297 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2298 * <p> 2299 * Description: <b>The patient that is the subject of the questionnaire response</b><br> 2300 * Type: <b>reference</b><br> 2301 * Path: <b>QuestionnaireResponse.subject</b><br> 2302 * </p> 2303 */ 2304 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2305 2306/** 2307 * Constant for fluent queries to be used to add include statements. Specifies 2308 * the path value of "<b>QuestionnaireResponse:patient</b>". 2309 */ 2310 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:patient").toLocked(); 2311 2312 /** 2313 * Search parameter: <b>context</b> 2314 * <p> 2315 * Description: <b>Encounter or episode associated with the questionnaire response</b><br> 2316 * Type: <b>reference</b><br> 2317 * Path: <b>QuestionnaireResponse.context</b><br> 2318 * </p> 2319 */ 2320 @SearchParamDefinition(name="context", path="QuestionnaireResponse.context", description="Encounter or episode associated with the questionnaire response", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Encounter") }, target={Encounter.class, EpisodeOfCare.class } ) 2321 public static final String SP_CONTEXT = "context"; 2322 /** 2323 * <b>Fluent Client</b> search parameter constant for <b>context</b> 2324 * <p> 2325 * Description: <b>Encounter or episode associated with the questionnaire response</b><br> 2326 * Type: <b>reference</b><br> 2327 * Path: <b>QuestionnaireResponse.context</b><br> 2328 * </p> 2329 */ 2330 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTEXT); 2331 2332/** 2333 * Constant for fluent queries to be used to add include statements. Specifies 2334 * the path value of "<b>QuestionnaireResponse:context</b>". 2335 */ 2336 public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTEXT = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:context").toLocked(); 2337 2338 /** 2339 * Search parameter: <b>source</b> 2340 * <p> 2341 * Description: <b>The individual providing the information reflected in the questionnaire respose</b><br> 2342 * Type: <b>reference</b><br> 2343 * Path: <b>QuestionnaireResponse.source</b><br> 2344 * </p> 2345 */ 2346 @SearchParamDefinition(name="source", path="QuestionnaireResponse.source", description="The individual providing the information reflected in the questionnaire respose", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Patient.class, Practitioner.class, RelatedPerson.class } ) 2347 public static final String SP_SOURCE = "source"; 2348 /** 2349 * <b>Fluent Client</b> search parameter constant for <b>source</b> 2350 * <p> 2351 * Description: <b>The individual providing the information reflected in the questionnaire respose</b><br> 2352 * Type: <b>reference</b><br> 2353 * Path: <b>QuestionnaireResponse.source</b><br> 2354 * </p> 2355 */ 2356 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SOURCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SOURCE); 2357 2358/** 2359 * Constant for fluent queries to be used to add include statements. Specifies 2360 * the path value of "<b>QuestionnaireResponse:source</b>". 2361 */ 2362 public static final ca.uhn.fhir.model.api.Include INCLUDE_SOURCE = new ca.uhn.fhir.model.api.Include("QuestionnaireResponse:source").toLocked(); 2363 2364 /** 2365 * Search parameter: <b>status</b> 2366 * <p> 2367 * Description: <b>The status of the questionnaire response</b><br> 2368 * Type: <b>token</b><br> 2369 * Path: <b>QuestionnaireResponse.status</b><br> 2370 * </p> 2371 */ 2372 @SearchParamDefinition(name="status", path="QuestionnaireResponse.status", description="The status of the questionnaire response", type="token" ) 2373 public static final String SP_STATUS = "status"; 2374 /** 2375 * <b>Fluent Client</b> search parameter constant for <b>status</b> 2376 * <p> 2377 * Description: <b>The status of the questionnaire response</b><br> 2378 * Type: <b>token</b><br> 2379 * Path: <b>QuestionnaireResponse.status</b><br> 2380 * </p> 2381 */ 2382 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 2383 2384 2385}