001package org.hl7.fhir.r4.model; 002 003/*- 004 * #%L 005 * org.hl7.fhir.r4 006 * %% 007 * Copyright (C) 2014 - 2019 Health Level 7 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023/* 024 Copyright (c) 2011+, HL7, Inc. 025 All rights reserved. 026 027 Redistribution and use in source and binary forms, with or without modification, 028 are permitted provided that the following conditions are met: 029 030 * Redistributions of source code must retain the above copyright notice, this 031 list of conditions and the following disclaimer. 032 * Redistributions in binary form must reproduce the above copyright notice, 033 this list of conditions and the following disclaimer in the documentation 034 and/or other materials provided with the distribution. 035 * Neither the name of HL7 nor the names of its contributors may be used to 036 endorse or promote products derived from this software without specific 037 prior written permission. 038 039 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 040 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 041 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 042 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 043 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 044 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 045 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 046 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 047 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 048 POSSIBILITY OF SUCH DAMAGE. 049 050*/ 051 052// Generated on Thu, Dec 13, 2018 14:07+1100 for FHIR v4.0.0 053import java.util.ArrayList; 054import java.util.Date; 055import java.util.List; 056 057import org.hl7.fhir.exceptions.FHIRException; 058import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 059import org.hl7.fhir.utilities.Utilities; 060 061import ca.uhn.fhir.model.api.annotation.Block; 062import ca.uhn.fhir.model.api.annotation.Child; 063import ca.uhn.fhir.model.api.annotation.Description; 064import ca.uhn.fhir.model.api.annotation.ResourceDef; 065import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 066/** 067 * Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc. 068 */ 069@ResourceDef(name="Goal", profile="http://hl7.org/fhir/StructureDefinition/Goal") 070public class Goal extends DomainResource { 071 072 public enum GoalLifecycleStatus { 073 /** 074 * A goal is proposed for this patient. 075 */ 076 PROPOSED, 077 /** 078 * A goal is planned for this patient. 079 */ 080 PLANNED, 081 /** 082 * A proposed goal was accepted or acknowledged. 083 */ 084 ACCEPTED, 085 /** 086 * The goal is being sought actively. 087 */ 088 ACTIVE, 089 /** 090 * The goal remains a long term objective but is no longer being actively pursued for a temporary period of time. 091 */ 092 ONHOLD, 093 /** 094 * The goal is no longer being sought. 095 */ 096 COMPLETED, 097 /** 098 * The goal has been abandoned. 099 */ 100 CANCELLED, 101 /** 102 * The goal was entered in error and voided. 103 */ 104 ENTEREDINERROR, 105 /** 106 * A proposed goal was rejected. 107 */ 108 REJECTED, 109 /** 110 * added to help the parsers with the generic types 111 */ 112 NULL; 113 public static GoalLifecycleStatus fromCode(String codeString) throws FHIRException { 114 if (codeString == null || "".equals(codeString)) 115 return null; 116 if ("proposed".equals(codeString)) 117 return PROPOSED; 118 if ("planned".equals(codeString)) 119 return PLANNED; 120 if ("accepted".equals(codeString)) 121 return ACCEPTED; 122 if ("active".equals(codeString)) 123 return ACTIVE; 124 if ("on-hold".equals(codeString)) 125 return ONHOLD; 126 if ("completed".equals(codeString)) 127 return COMPLETED; 128 if ("cancelled".equals(codeString)) 129 return CANCELLED; 130 if ("entered-in-error".equals(codeString)) 131 return ENTEREDINERROR; 132 if ("rejected".equals(codeString)) 133 return REJECTED; 134 if (Configuration.isAcceptInvalidEnums()) 135 return null; 136 else 137 throw new FHIRException("Unknown GoalLifecycleStatus code '"+codeString+"'"); 138 } 139 public String toCode() { 140 switch (this) { 141 case PROPOSED: return "proposed"; 142 case PLANNED: return "planned"; 143 case ACCEPTED: return "accepted"; 144 case ACTIVE: return "active"; 145 case ONHOLD: return "on-hold"; 146 case COMPLETED: return "completed"; 147 case CANCELLED: return "cancelled"; 148 case ENTEREDINERROR: return "entered-in-error"; 149 case REJECTED: return "rejected"; 150 default: return "?"; 151 } 152 } 153 public String getSystem() { 154 switch (this) { 155 case PROPOSED: return "http://hl7.org/fhir/goal-status"; 156 case PLANNED: return "http://hl7.org/fhir/goal-status"; 157 case ACCEPTED: return "http://hl7.org/fhir/goal-status"; 158 case ACTIVE: return "http://hl7.org/fhir/goal-status"; 159 case ONHOLD: return "http://hl7.org/fhir/goal-status"; 160 case COMPLETED: return "http://hl7.org/fhir/goal-status"; 161 case CANCELLED: return "http://hl7.org/fhir/goal-status"; 162 case ENTEREDINERROR: return "http://hl7.org/fhir/goal-status"; 163 case REJECTED: return "http://hl7.org/fhir/goal-status"; 164 default: return "?"; 165 } 166 } 167 public String getDefinition() { 168 switch (this) { 169 case PROPOSED: return "A goal is proposed for this patient."; 170 case PLANNED: return "A goal is planned for this patient."; 171 case ACCEPTED: return "A proposed goal was accepted or acknowledged."; 172 case ACTIVE: return "The goal is being sought actively."; 173 case ONHOLD: return "The goal remains a long term objective but is no longer being actively pursued for a temporary period of time."; 174 case COMPLETED: return "The goal is no longer being sought."; 175 case CANCELLED: return "The goal has been abandoned."; 176 case ENTEREDINERROR: return "The goal was entered in error and voided."; 177 case REJECTED: return "A proposed goal was rejected."; 178 default: return "?"; 179 } 180 } 181 public String getDisplay() { 182 switch (this) { 183 case PROPOSED: return "Proposed"; 184 case PLANNED: return "Planned"; 185 case ACCEPTED: return "Accepted"; 186 case ACTIVE: return "Active"; 187 case ONHOLD: return "On Hold"; 188 case COMPLETED: return "Completed"; 189 case CANCELLED: return "Cancelled"; 190 case ENTEREDINERROR: return "Entered in Error"; 191 case REJECTED: return "Rejected"; 192 default: return "?"; 193 } 194 } 195 } 196 197 public static class GoalLifecycleStatusEnumFactory implements EnumFactory<GoalLifecycleStatus> { 198 public GoalLifecycleStatus fromCode(String codeString) throws IllegalArgumentException { 199 if (codeString == null || "".equals(codeString)) 200 if (codeString == null || "".equals(codeString)) 201 return null; 202 if ("proposed".equals(codeString)) 203 return GoalLifecycleStatus.PROPOSED; 204 if ("planned".equals(codeString)) 205 return GoalLifecycleStatus.PLANNED; 206 if ("accepted".equals(codeString)) 207 return GoalLifecycleStatus.ACCEPTED; 208 if ("active".equals(codeString)) 209 return GoalLifecycleStatus.ACTIVE; 210 if ("on-hold".equals(codeString)) 211 return GoalLifecycleStatus.ONHOLD; 212 if ("completed".equals(codeString)) 213 return GoalLifecycleStatus.COMPLETED; 214 if ("cancelled".equals(codeString)) 215 return GoalLifecycleStatus.CANCELLED; 216 if ("entered-in-error".equals(codeString)) 217 return GoalLifecycleStatus.ENTEREDINERROR; 218 if ("rejected".equals(codeString)) 219 return GoalLifecycleStatus.REJECTED; 220 throw new IllegalArgumentException("Unknown GoalLifecycleStatus code '"+codeString+"'"); 221 } 222 public Enumeration<GoalLifecycleStatus> fromType(Base code) throws FHIRException { 223 if (code == null) 224 return null; 225 if (code.isEmpty()) 226 return new Enumeration<GoalLifecycleStatus>(this); 227 String codeString = ((PrimitiveType) code).asStringValue(); 228 if (codeString == null || "".equals(codeString)) 229 return null; 230 if ("proposed".equals(codeString)) 231 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.PROPOSED); 232 if ("planned".equals(codeString)) 233 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.PLANNED); 234 if ("accepted".equals(codeString)) 235 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.ACCEPTED); 236 if ("active".equals(codeString)) 237 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.ACTIVE); 238 if ("on-hold".equals(codeString)) 239 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.ONHOLD); 240 if ("completed".equals(codeString)) 241 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.COMPLETED); 242 if ("cancelled".equals(codeString)) 243 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.CANCELLED); 244 if ("entered-in-error".equals(codeString)) 245 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.ENTEREDINERROR); 246 if ("rejected".equals(codeString)) 247 return new Enumeration<GoalLifecycleStatus>(this, GoalLifecycleStatus.REJECTED); 248 throw new FHIRException("Unknown GoalLifecycleStatus code '"+codeString+"'"); 249 } 250 public String toCode(GoalLifecycleStatus code) { 251 if (code == GoalLifecycleStatus.PROPOSED) 252 return "proposed"; 253 if (code == GoalLifecycleStatus.PLANNED) 254 return "planned"; 255 if (code == GoalLifecycleStatus.ACCEPTED) 256 return "accepted"; 257 if (code == GoalLifecycleStatus.ACTIVE) 258 return "active"; 259 if (code == GoalLifecycleStatus.ONHOLD) 260 return "on-hold"; 261 if (code == GoalLifecycleStatus.COMPLETED) 262 return "completed"; 263 if (code == GoalLifecycleStatus.CANCELLED) 264 return "cancelled"; 265 if (code == GoalLifecycleStatus.ENTEREDINERROR) 266 return "entered-in-error"; 267 if (code == GoalLifecycleStatus.REJECTED) 268 return "rejected"; 269 return "?"; 270 } 271 public String toSystem(GoalLifecycleStatus code) { 272 return code.getSystem(); 273 } 274 } 275 276 @Block() 277 public static class GoalTargetComponent extends BackboneElement implements IBaseBackboneElement { 278 /** 279 * The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level. 280 */ 281 @Child(name = "measure", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=true) 282 @Description(shortDefinition="The parameter whose value is being tracked", formalDefinition="The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level." ) 283 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/observation-codes") 284 protected CodeableConcept measure; 285 286 /** 287 * The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value. 288 */ 289 @Child(name = "detail", type = {Quantity.class, Range.class, CodeableConcept.class, StringType.class, BooleanType.class, IntegerType.class, Ratio.class}, order=2, min=0, max=1, modifier=false, summary=true) 290 @Description(shortDefinition="The target value to be achieved", formalDefinition="The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value." ) 291 protected Type detail; 292 293 /** 294 * Indicates either the date or the duration after start by which the goal should be met. 295 */ 296 @Child(name = "due", type = {DateType.class, Duration.class}, order=3, min=0, max=1, modifier=false, summary=true) 297 @Description(shortDefinition="Reach goal on or before", formalDefinition="Indicates either the date or the duration after start by which the goal should be met." ) 298 protected Type due; 299 300 private static final long serialVersionUID = -585108934L; 301 302 /** 303 * Constructor 304 */ 305 public GoalTargetComponent() { 306 super(); 307 } 308 309 /** 310 * @return {@link #measure} (The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.) 311 */ 312 public CodeableConcept getMeasure() { 313 if (this.measure == null) 314 if (Configuration.errorOnAutoCreate()) 315 throw new Error("Attempt to auto-create GoalTargetComponent.measure"); 316 else if (Configuration.doAutoCreate()) 317 this.measure = new CodeableConcept(); // cc 318 return this.measure; 319 } 320 321 public boolean hasMeasure() { 322 return this.measure != null && !this.measure.isEmpty(); 323 } 324 325 /** 326 * @param value {@link #measure} (The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.) 327 */ 328 public GoalTargetComponent setMeasure(CodeableConcept value) { 329 this.measure = value; 330 return this; 331 } 332 333 /** 334 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 335 */ 336 public Type getDetail() { 337 return this.detail; 338 } 339 340 /** 341 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 342 */ 343 public Quantity getDetailQuantity() throws FHIRException { 344 if (this.detail == null) 345 this.detail = new Quantity(); 346 if (!(this.detail instanceof Quantity)) 347 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.detail.getClass().getName()+" was encountered"); 348 return (Quantity) this.detail; 349 } 350 351 public boolean hasDetailQuantity() { 352 return this != null && this.detail instanceof Quantity; 353 } 354 355 /** 356 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 357 */ 358 public Range getDetailRange() throws FHIRException { 359 if (this.detail == null) 360 this.detail = new Range(); 361 if (!(this.detail instanceof Range)) 362 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.detail.getClass().getName()+" was encountered"); 363 return (Range) this.detail; 364 } 365 366 public boolean hasDetailRange() { 367 return this != null && this.detail instanceof Range; 368 } 369 370 /** 371 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 372 */ 373 public CodeableConcept getDetailCodeableConcept() throws FHIRException { 374 if (this.detail == null) 375 this.detail = new CodeableConcept(); 376 if (!(this.detail instanceof CodeableConcept)) 377 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.detail.getClass().getName()+" was encountered"); 378 return (CodeableConcept) this.detail; 379 } 380 381 public boolean hasDetailCodeableConcept() { 382 return this != null && this.detail instanceof CodeableConcept; 383 } 384 385 /** 386 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 387 */ 388 public StringType getDetailStringType() throws FHIRException { 389 if (this.detail == null) 390 this.detail = new StringType(); 391 if (!(this.detail instanceof StringType)) 392 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.detail.getClass().getName()+" was encountered"); 393 return (StringType) this.detail; 394 } 395 396 public boolean hasDetailStringType() { 397 return this != null && this.detail instanceof StringType; 398 } 399 400 /** 401 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 402 */ 403 public BooleanType getDetailBooleanType() throws FHIRException { 404 if (this.detail == null) 405 this.detail = new BooleanType(); 406 if (!(this.detail instanceof BooleanType)) 407 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.detail.getClass().getName()+" was encountered"); 408 return (BooleanType) this.detail; 409 } 410 411 public boolean hasDetailBooleanType() { 412 return this != null && this.detail instanceof BooleanType; 413 } 414 415 /** 416 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 417 */ 418 public IntegerType getDetailIntegerType() throws FHIRException { 419 if (this.detail == null) 420 this.detail = new IntegerType(); 421 if (!(this.detail instanceof IntegerType)) 422 throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.detail.getClass().getName()+" was encountered"); 423 return (IntegerType) this.detail; 424 } 425 426 public boolean hasDetailIntegerType() { 427 return this != null && this.detail instanceof IntegerType; 428 } 429 430 /** 431 * @return {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 432 */ 433 public Ratio getDetailRatio() throws FHIRException { 434 if (this.detail == null) 435 this.detail = new Ratio(); 436 if (!(this.detail instanceof Ratio)) 437 throw new FHIRException("Type mismatch: the type Ratio was expected, but "+this.detail.getClass().getName()+" was encountered"); 438 return (Ratio) this.detail; 439 } 440 441 public boolean hasDetailRatio() { 442 return this != null && this.detail instanceof Ratio; 443 } 444 445 public boolean hasDetail() { 446 return this.detail != null && !this.detail.isEmpty(); 447 } 448 449 /** 450 * @param value {@link #detail} (The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.) 451 */ 452 public GoalTargetComponent setDetail(Type value) { 453 if (value != null && !(value instanceof Quantity || value instanceof Range || value instanceof CodeableConcept || value instanceof StringType || value instanceof BooleanType || value instanceof IntegerType || value instanceof Ratio)) 454 throw new Error("Not the right type for Goal.target.detail[x]: "+value.fhirType()); 455 this.detail = value; 456 return this; 457 } 458 459 /** 460 * @return {@link #due} (Indicates either the date or the duration after start by which the goal should be met.) 461 */ 462 public Type getDue() { 463 return this.due; 464 } 465 466 /** 467 * @return {@link #due} (Indicates either the date or the duration after start by which the goal should be met.) 468 */ 469 public DateType getDueDateType() throws FHIRException { 470 if (this.due == null) 471 this.due = new DateType(); 472 if (!(this.due instanceof DateType)) 473 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.due.getClass().getName()+" was encountered"); 474 return (DateType) this.due; 475 } 476 477 public boolean hasDueDateType() { 478 return this != null && this.due instanceof DateType; 479 } 480 481 /** 482 * @return {@link #due} (Indicates either the date or the duration after start by which the goal should be met.) 483 */ 484 public Duration getDueDuration() throws FHIRException { 485 if (this.due == null) 486 this.due = new Duration(); 487 if (!(this.due instanceof Duration)) 488 throw new FHIRException("Type mismatch: the type Duration was expected, but "+this.due.getClass().getName()+" was encountered"); 489 return (Duration) this.due; 490 } 491 492 public boolean hasDueDuration() { 493 return this != null && this.due instanceof Duration; 494 } 495 496 public boolean hasDue() { 497 return this.due != null && !this.due.isEmpty(); 498 } 499 500 /** 501 * @param value {@link #due} (Indicates either the date or the duration after start by which the goal should be met.) 502 */ 503 public GoalTargetComponent setDue(Type value) { 504 if (value != null && !(value instanceof DateType || value instanceof Duration)) 505 throw new Error("Not the right type for Goal.target.due[x]: "+value.fhirType()); 506 this.due = value; 507 return this; 508 } 509 510 protected void listChildren(List<Property> children) { 511 super.listChildren(children); 512 children.add(new Property("measure", "CodeableConcept", "The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.", 0, 1, measure)); 513 children.add(new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail)); 514 children.add(new Property("due[x]", "date|Duration", "Indicates either the date or the duration after start by which the goal should be met.", 0, 1, due)); 515 } 516 517 @Override 518 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 519 switch (_hash) { 520 case 938321246: /*measure*/ return new Property("measure", "CodeableConcept", "The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level.", 0, 1, measure); 521 case -1973084529: /*detail[x]*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 522 case -1335224239: /*detail*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 523 case -1313079300: /*detailQuantity*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 524 case -2062632084: /*detailRange*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 525 case -175586544: /*detailCodeableConcept*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 526 case 529212354: /*detailString*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 527 case 1172184727: /*detailBoolean*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 528 case -1229442131: /*detailInteger*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 529 case -2062626246: /*detailRatio*/ return new Property("detail[x]", "Quantity|Range|CodeableConcept|string|boolean|integer|Ratio", "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value.", 0, 1, detail); 530 case -1320900084: /*due[x]*/ return new Property("due[x]", "date|Duration", "Indicates either the date or the duration after start by which the goal should be met.", 0, 1, due); 531 case 99828: /*due*/ return new Property("due[x]", "date|Duration", "Indicates either the date or the duration after start by which the goal should be met.", 0, 1, due); 532 case 2001063874: /*dueDate*/ return new Property("due[x]", "date|Duration", "Indicates either the date or the duration after start by which the goal should be met.", 0, 1, due); 533 case -620428376: /*dueDuration*/ return new Property("due[x]", "date|Duration", "Indicates either the date or the duration after start by which the goal should be met.", 0, 1, due); 534 default: return super.getNamedProperty(_hash, _name, _checkValid); 535 } 536 537 } 538 539 @Override 540 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 541 switch (hash) { 542 case 938321246: /*measure*/ return this.measure == null ? new Base[0] : new Base[] {this.measure}; // CodeableConcept 543 case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : new Base[] {this.detail}; // Type 544 case 99828: /*due*/ return this.due == null ? new Base[0] : new Base[] {this.due}; // Type 545 default: return super.getProperty(hash, name, checkValid); 546 } 547 548 } 549 550 @Override 551 public Base setProperty(int hash, String name, Base value) throws FHIRException { 552 switch (hash) { 553 case 938321246: // measure 554 this.measure = castToCodeableConcept(value); // CodeableConcept 555 return value; 556 case -1335224239: // detail 557 this.detail = castToType(value); // Type 558 return value; 559 case 99828: // due 560 this.due = castToType(value); // Type 561 return value; 562 default: return super.setProperty(hash, name, value); 563 } 564 565 } 566 567 @Override 568 public Base setProperty(String name, Base value) throws FHIRException { 569 if (name.equals("measure")) { 570 this.measure = castToCodeableConcept(value); // CodeableConcept 571 } else if (name.equals("detail[x]")) { 572 this.detail = castToType(value); // Type 573 } else if (name.equals("due[x]")) { 574 this.due = castToType(value); // Type 575 } else 576 return super.setProperty(name, value); 577 return value; 578 } 579 580 @Override 581 public Base makeProperty(int hash, String name) throws FHIRException { 582 switch (hash) { 583 case 938321246: return getMeasure(); 584 case -1973084529: return getDetail(); 585 case -1335224239: return getDetail(); 586 case -1320900084: return getDue(); 587 case 99828: return getDue(); 588 default: return super.makeProperty(hash, name); 589 } 590 591 } 592 593 @Override 594 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 595 switch (hash) { 596 case 938321246: /*measure*/ return new String[] {"CodeableConcept"}; 597 case -1335224239: /*detail*/ return new String[] {"Quantity", "Range", "CodeableConcept", "string", "boolean", "integer", "Ratio"}; 598 case 99828: /*due*/ return new String[] {"date", "Duration"}; 599 default: return super.getTypesForProperty(hash, name); 600 } 601 602 } 603 604 @Override 605 public Base addChild(String name) throws FHIRException { 606 if (name.equals("measure")) { 607 this.measure = new CodeableConcept(); 608 return this.measure; 609 } 610 else if (name.equals("detailQuantity")) { 611 this.detail = new Quantity(); 612 return this.detail; 613 } 614 else if (name.equals("detailRange")) { 615 this.detail = new Range(); 616 return this.detail; 617 } 618 else if (name.equals("detailCodeableConcept")) { 619 this.detail = new CodeableConcept(); 620 return this.detail; 621 } 622 else if (name.equals("detailString")) { 623 this.detail = new StringType(); 624 return this.detail; 625 } 626 else if (name.equals("detailBoolean")) { 627 this.detail = new BooleanType(); 628 return this.detail; 629 } 630 else if (name.equals("detailInteger")) { 631 this.detail = new IntegerType(); 632 return this.detail; 633 } 634 else if (name.equals("detailRatio")) { 635 this.detail = new Ratio(); 636 return this.detail; 637 } 638 else if (name.equals("dueDate")) { 639 this.due = new DateType(); 640 return this.due; 641 } 642 else if (name.equals("dueDuration")) { 643 this.due = new Duration(); 644 return this.due; 645 } 646 else 647 return super.addChild(name); 648 } 649 650 public GoalTargetComponent copy() { 651 GoalTargetComponent dst = new GoalTargetComponent(); 652 copyValues(dst); 653 dst.measure = measure == null ? null : measure.copy(); 654 dst.detail = detail == null ? null : detail.copy(); 655 dst.due = due == null ? null : due.copy(); 656 return dst; 657 } 658 659 @Override 660 public boolean equalsDeep(Base other_) { 661 if (!super.equalsDeep(other_)) 662 return false; 663 if (!(other_ instanceof GoalTargetComponent)) 664 return false; 665 GoalTargetComponent o = (GoalTargetComponent) other_; 666 return compareDeep(measure, o.measure, true) && compareDeep(detail, o.detail, true) && compareDeep(due, o.due, true) 667 ; 668 } 669 670 @Override 671 public boolean equalsShallow(Base other_) { 672 if (!super.equalsShallow(other_)) 673 return false; 674 if (!(other_ instanceof GoalTargetComponent)) 675 return false; 676 GoalTargetComponent o = (GoalTargetComponent) other_; 677 return true; 678 } 679 680 public boolean isEmpty() { 681 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(measure, detail, due); 682 } 683 684 public String fhirType() { 685 return "Goal.target"; 686 687 } 688 689 } 690 691 /** 692 * Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server. 693 */ 694 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 695 @Description(shortDefinition="External Ids for this goal", formalDefinition="Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server." ) 696 protected List<Identifier> identifier; 697 698 /** 699 * The state of the goal throughout its lifecycle. 700 */ 701 @Child(name = "lifecycleStatus", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true) 702 @Description(shortDefinition="proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected", formalDefinition="The state of the goal throughout its lifecycle." ) 703 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/goal-status") 704 protected Enumeration<GoalLifecycleStatus> lifecycleStatus; 705 706 /** 707 * Describes the progression, or lack thereof, towards the goal against the target. 708 */ 709 @Child(name = "achievementStatus", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=true) 710 @Description(shortDefinition="in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable", formalDefinition="Describes the progression, or lack thereof, towards the goal against the target." ) 711 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/goal-achievement") 712 protected CodeableConcept achievementStatus; 713 714 /** 715 * Indicates a category the goal falls within. 716 */ 717 @Child(name = "category", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 718 @Description(shortDefinition="E.g. Treatment, dietary, behavioral, etc.", formalDefinition="Indicates a category the goal falls within." ) 719 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/goal-category") 720 protected List<CodeableConcept> category; 721 722 /** 723 * Identifies the mutually agreed level of importance associated with reaching/sustaining the goal. 724 */ 725 @Child(name = "priority", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true) 726 @Description(shortDefinition="high-priority | medium-priority | low-priority", formalDefinition="Identifies the mutually agreed level of importance associated with reaching/sustaining the goal." ) 727 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/goal-priority") 728 protected CodeableConcept priority; 729 730 /** 731 * Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding". 732 */ 733 @Child(name = "description", type = {CodeableConcept.class}, order=5, min=1, max=1, modifier=false, summary=true) 734 @Description(shortDefinition="Code or text describing goal", formalDefinition="Human-readable and/or coded description of a specific desired objective of care, such as \"control blood pressure\" or \"negotiate an obstacle course\" or \"dance with child at wedding\"." ) 735 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/clinical-findings") 736 protected CodeableConcept description; 737 738 /** 739 * Identifies the patient, group or organization for whom the goal is being established. 740 */ 741 @Child(name = "subject", type = {Patient.class, Group.class, Organization.class}, order=6, min=1, max=1, modifier=false, summary=true) 742 @Description(shortDefinition="Who this goal is intended for", formalDefinition="Identifies the patient, group or organization for whom the goal is being established." ) 743 protected Reference subject; 744 745 /** 746 * The actual object that is the target of the reference (Identifies the patient, group or organization for whom the goal is being established.) 747 */ 748 protected Resource subjectTarget; 749 750 /** 751 * The date or event after which the goal should begin being pursued. 752 */ 753 @Child(name = "start", type = {DateType.class, CodeableConcept.class}, order=7, min=0, max=1, modifier=false, summary=true) 754 @Description(shortDefinition="When goal pursuit begins", formalDefinition="The date or event after which the goal should begin being pursued." ) 755 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/goal-start-event") 756 protected Type start; 757 758 /** 759 * Indicates what should be done by when. 760 */ 761 @Child(name = "target", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 762 @Description(shortDefinition="Target outcome for the goal", formalDefinition="Indicates what should be done by when." ) 763 protected List<GoalTargetComponent> target; 764 765 /** 766 * Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc. 767 */ 768 @Child(name = "statusDate", type = {DateType.class}, order=9, min=0, max=1, modifier=false, summary=true) 769 @Description(shortDefinition="When goal status took effect", formalDefinition="Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc." ) 770 protected DateType statusDate; 771 772 /** 773 * Captures the reason for the current status. 774 */ 775 @Child(name = "statusReason", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false) 776 @Description(shortDefinition="Reason for current status", formalDefinition="Captures the reason for the current status." ) 777 protected StringType statusReason; 778 779 /** 780 * Indicates whose goal this is - patient goal, practitioner goal, etc. 781 */ 782 @Child(name = "expressedBy", type = {Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class}, order=11, min=0, max=1, modifier=false, summary=true) 783 @Description(shortDefinition="Who's responsible for creating Goal?", formalDefinition="Indicates whose goal this is - patient goal, practitioner goal, etc." ) 784 protected Reference expressedBy; 785 786 /** 787 * The actual object that is the target of the reference (Indicates whose goal this is - patient goal, practitioner goal, etc.) 788 */ 789 protected Resource expressedByTarget; 790 791 /** 792 * The identified conditions and other health record elements that are intended to be addressed by the goal. 793 */ 794 @Child(name = "addresses", type = {Condition.class, Observation.class, MedicationStatement.class, NutritionOrder.class, ServiceRequest.class, RiskAssessment.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 795 @Description(shortDefinition="Issues addressed by this goal", formalDefinition="The identified conditions and other health record elements that are intended to be addressed by the goal." ) 796 protected List<Reference> addresses; 797 /** 798 * The actual objects that are the target of the reference (The identified conditions and other health record elements that are intended to be addressed by the goal.) 799 */ 800 protected List<Resource> addressesTarget; 801 802 803 /** 804 * Any comments related to the goal. 805 */ 806 @Child(name = "note", type = {Annotation.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 807 @Description(shortDefinition="Comments about the goal", formalDefinition="Any comments related to the goal." ) 808 protected List<Annotation> note; 809 810 /** 811 * Identifies the change (or lack of change) at the point when the status of the goal is assessed. 812 */ 813 @Child(name = "outcomeCode", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 814 @Description(shortDefinition="What result was achieved regarding the goal?", formalDefinition="Identifies the change (or lack of change) at the point when the status of the goal is assessed." ) 815 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/clinical-findings") 816 protected List<CodeableConcept> outcomeCode; 817 818 /** 819 * Details of what's changed (or not changed). 820 */ 821 @Child(name = "outcomeReference", type = {Observation.class}, order=15, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 822 @Description(shortDefinition="Observation that resulted from goal", formalDefinition="Details of what's changed (or not changed)." ) 823 protected List<Reference> outcomeReference; 824 /** 825 * The actual objects that are the target of the reference (Details of what's changed (or not changed).) 826 */ 827 protected List<Observation> outcomeReferenceTarget; 828 829 830 private static final long serialVersionUID = -1366854797L; 831 832 /** 833 * Constructor 834 */ 835 public Goal() { 836 super(); 837 } 838 839 /** 840 * Constructor 841 */ 842 public Goal(Enumeration<GoalLifecycleStatus> lifecycleStatus, CodeableConcept description, Reference subject) { 843 super(); 844 this.lifecycleStatus = lifecycleStatus; 845 this.description = description; 846 this.subject = subject; 847 } 848 849 /** 850 * @return {@link #identifier} (Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.) 851 */ 852 public List<Identifier> getIdentifier() { 853 if (this.identifier == null) 854 this.identifier = new ArrayList<Identifier>(); 855 return this.identifier; 856 } 857 858 /** 859 * @return Returns a reference to <code>this</code> for easy method chaining 860 */ 861 public Goal setIdentifier(List<Identifier> theIdentifier) { 862 this.identifier = theIdentifier; 863 return this; 864 } 865 866 public boolean hasIdentifier() { 867 if (this.identifier == null) 868 return false; 869 for (Identifier item : this.identifier) 870 if (!item.isEmpty()) 871 return true; 872 return false; 873 } 874 875 public Identifier addIdentifier() { //3 876 Identifier t = new Identifier(); 877 if (this.identifier == null) 878 this.identifier = new ArrayList<Identifier>(); 879 this.identifier.add(t); 880 return t; 881 } 882 883 public Goal addIdentifier(Identifier t) { //3 884 if (t == null) 885 return this; 886 if (this.identifier == null) 887 this.identifier = new ArrayList<Identifier>(); 888 this.identifier.add(t); 889 return this; 890 } 891 892 /** 893 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 894 */ 895 public Identifier getIdentifierFirstRep() { 896 if (getIdentifier().isEmpty()) { 897 addIdentifier(); 898 } 899 return getIdentifier().get(0); 900 } 901 902 /** 903 * @return {@link #lifecycleStatus} (The state of the goal throughout its lifecycle.). This is the underlying object with id, value and extensions. The accessor "getLifecycleStatus" gives direct access to the value 904 */ 905 public Enumeration<GoalLifecycleStatus> getLifecycleStatusElement() { 906 if (this.lifecycleStatus == null) 907 if (Configuration.errorOnAutoCreate()) 908 throw new Error("Attempt to auto-create Goal.lifecycleStatus"); 909 else if (Configuration.doAutoCreate()) 910 this.lifecycleStatus = new Enumeration<GoalLifecycleStatus>(new GoalLifecycleStatusEnumFactory()); // bb 911 return this.lifecycleStatus; 912 } 913 914 public boolean hasLifecycleStatusElement() { 915 return this.lifecycleStatus != null && !this.lifecycleStatus.isEmpty(); 916 } 917 918 public boolean hasLifecycleStatus() { 919 return this.lifecycleStatus != null && !this.lifecycleStatus.isEmpty(); 920 } 921 922 /** 923 * @param value {@link #lifecycleStatus} (The state of the goal throughout its lifecycle.). This is the underlying object with id, value and extensions. The accessor "getLifecycleStatus" gives direct access to the value 924 */ 925 public Goal setLifecycleStatusElement(Enumeration<GoalLifecycleStatus> value) { 926 this.lifecycleStatus = value; 927 return this; 928 } 929 930 /** 931 * @return The state of the goal throughout its lifecycle. 932 */ 933 public GoalLifecycleStatus getLifecycleStatus() { 934 return this.lifecycleStatus == null ? null : this.lifecycleStatus.getValue(); 935 } 936 937 /** 938 * @param value The state of the goal throughout its lifecycle. 939 */ 940 public Goal setLifecycleStatus(GoalLifecycleStatus value) { 941 if (this.lifecycleStatus == null) 942 this.lifecycleStatus = new Enumeration<GoalLifecycleStatus>(new GoalLifecycleStatusEnumFactory()); 943 this.lifecycleStatus.setValue(value); 944 return this; 945 } 946 947 /** 948 * @return {@link #achievementStatus} (Describes the progression, or lack thereof, towards the goal against the target.) 949 */ 950 public CodeableConcept getAchievementStatus() { 951 if (this.achievementStatus == null) 952 if (Configuration.errorOnAutoCreate()) 953 throw new Error("Attempt to auto-create Goal.achievementStatus"); 954 else if (Configuration.doAutoCreate()) 955 this.achievementStatus = new CodeableConcept(); // cc 956 return this.achievementStatus; 957 } 958 959 public boolean hasAchievementStatus() { 960 return this.achievementStatus != null && !this.achievementStatus.isEmpty(); 961 } 962 963 /** 964 * @param value {@link #achievementStatus} (Describes the progression, or lack thereof, towards the goal against the target.) 965 */ 966 public Goal setAchievementStatus(CodeableConcept value) { 967 this.achievementStatus = value; 968 return this; 969 } 970 971 /** 972 * @return {@link #category} (Indicates a category the goal falls within.) 973 */ 974 public List<CodeableConcept> getCategory() { 975 if (this.category == null) 976 this.category = new ArrayList<CodeableConcept>(); 977 return this.category; 978 } 979 980 /** 981 * @return Returns a reference to <code>this</code> for easy method chaining 982 */ 983 public Goal setCategory(List<CodeableConcept> theCategory) { 984 this.category = theCategory; 985 return this; 986 } 987 988 public boolean hasCategory() { 989 if (this.category == null) 990 return false; 991 for (CodeableConcept item : this.category) 992 if (!item.isEmpty()) 993 return true; 994 return false; 995 } 996 997 public CodeableConcept addCategory() { //3 998 CodeableConcept t = new CodeableConcept(); 999 if (this.category == null) 1000 this.category = new ArrayList<CodeableConcept>(); 1001 this.category.add(t); 1002 return t; 1003 } 1004 1005 public Goal addCategory(CodeableConcept t) { //3 1006 if (t == null) 1007 return this; 1008 if (this.category == null) 1009 this.category = new ArrayList<CodeableConcept>(); 1010 this.category.add(t); 1011 return this; 1012 } 1013 1014 /** 1015 * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist 1016 */ 1017 public CodeableConcept getCategoryFirstRep() { 1018 if (getCategory().isEmpty()) { 1019 addCategory(); 1020 } 1021 return getCategory().get(0); 1022 } 1023 1024 /** 1025 * @return {@link #priority} (Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.) 1026 */ 1027 public CodeableConcept getPriority() { 1028 if (this.priority == null) 1029 if (Configuration.errorOnAutoCreate()) 1030 throw new Error("Attempt to auto-create Goal.priority"); 1031 else if (Configuration.doAutoCreate()) 1032 this.priority = new CodeableConcept(); // cc 1033 return this.priority; 1034 } 1035 1036 public boolean hasPriority() { 1037 return this.priority != null && !this.priority.isEmpty(); 1038 } 1039 1040 /** 1041 * @param value {@link #priority} (Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.) 1042 */ 1043 public Goal setPriority(CodeableConcept value) { 1044 this.priority = value; 1045 return this; 1046 } 1047 1048 /** 1049 * @return {@link #description} (Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding".) 1050 */ 1051 public CodeableConcept getDescription() { 1052 if (this.description == null) 1053 if (Configuration.errorOnAutoCreate()) 1054 throw new Error("Attempt to auto-create Goal.description"); 1055 else if (Configuration.doAutoCreate()) 1056 this.description = new CodeableConcept(); // cc 1057 return this.description; 1058 } 1059 1060 public boolean hasDescription() { 1061 return this.description != null && !this.description.isEmpty(); 1062 } 1063 1064 /** 1065 * @param value {@link #description} (Human-readable and/or coded description of a specific desired objective of care, such as "control blood pressure" or "negotiate an obstacle course" or "dance with child at wedding".) 1066 */ 1067 public Goal setDescription(CodeableConcept value) { 1068 this.description = value; 1069 return this; 1070 } 1071 1072 /** 1073 * @return {@link #subject} (Identifies the patient, group or organization for whom the goal is being established.) 1074 */ 1075 public Reference getSubject() { 1076 if (this.subject == null) 1077 if (Configuration.errorOnAutoCreate()) 1078 throw new Error("Attempt to auto-create Goal.subject"); 1079 else if (Configuration.doAutoCreate()) 1080 this.subject = new Reference(); // cc 1081 return this.subject; 1082 } 1083 1084 public boolean hasSubject() { 1085 return this.subject != null && !this.subject.isEmpty(); 1086 } 1087 1088 /** 1089 * @param value {@link #subject} (Identifies the patient, group or organization for whom the goal is being established.) 1090 */ 1091 public Goal setSubject(Reference value) { 1092 this.subject = value; 1093 return this; 1094 } 1095 1096 /** 1097 * @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. (Identifies the patient, group or organization for whom the goal is being established.) 1098 */ 1099 public Resource getSubjectTarget() { 1100 return this.subjectTarget; 1101 } 1102 1103 /** 1104 * @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. (Identifies the patient, group or organization for whom the goal is being established.) 1105 */ 1106 public Goal setSubjectTarget(Resource value) { 1107 this.subjectTarget = value; 1108 return this; 1109 } 1110 1111 /** 1112 * @return {@link #start} (The date or event after which the goal should begin being pursued.) 1113 */ 1114 public Type getStart() { 1115 return this.start; 1116 } 1117 1118 /** 1119 * @return {@link #start} (The date or event after which the goal should begin being pursued.) 1120 */ 1121 public DateType getStartDateType() throws FHIRException { 1122 if (this.start == null) 1123 this.start = new DateType(); 1124 if (!(this.start instanceof DateType)) 1125 throw new FHIRException("Type mismatch: the type DateType was expected, but "+this.start.getClass().getName()+" was encountered"); 1126 return (DateType) this.start; 1127 } 1128 1129 public boolean hasStartDateType() { 1130 return this != null && this.start instanceof DateType; 1131 } 1132 1133 /** 1134 * @return {@link #start} (The date or event after which the goal should begin being pursued.) 1135 */ 1136 public CodeableConcept getStartCodeableConcept() throws FHIRException { 1137 if (this.start == null) 1138 this.start = new CodeableConcept(); 1139 if (!(this.start instanceof CodeableConcept)) 1140 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.start.getClass().getName()+" was encountered"); 1141 return (CodeableConcept) this.start; 1142 } 1143 1144 public boolean hasStartCodeableConcept() { 1145 return this != null && this.start instanceof CodeableConcept; 1146 } 1147 1148 public boolean hasStart() { 1149 return this.start != null && !this.start.isEmpty(); 1150 } 1151 1152 /** 1153 * @param value {@link #start} (The date or event after which the goal should begin being pursued.) 1154 */ 1155 public Goal setStart(Type value) { 1156 if (value != null && !(value instanceof DateType || value instanceof CodeableConcept)) 1157 throw new Error("Not the right type for Goal.start[x]: "+value.fhirType()); 1158 this.start = value; 1159 return this; 1160 } 1161 1162 /** 1163 * @return {@link #target} (Indicates what should be done by when.) 1164 */ 1165 public List<GoalTargetComponent> getTarget() { 1166 if (this.target == null) 1167 this.target = new ArrayList<GoalTargetComponent>(); 1168 return this.target; 1169 } 1170 1171 /** 1172 * @return Returns a reference to <code>this</code> for easy method chaining 1173 */ 1174 public Goal setTarget(List<GoalTargetComponent> theTarget) { 1175 this.target = theTarget; 1176 return this; 1177 } 1178 1179 public boolean hasTarget() { 1180 if (this.target == null) 1181 return false; 1182 for (GoalTargetComponent item : this.target) 1183 if (!item.isEmpty()) 1184 return true; 1185 return false; 1186 } 1187 1188 public GoalTargetComponent addTarget() { //3 1189 GoalTargetComponent t = new GoalTargetComponent(); 1190 if (this.target == null) 1191 this.target = new ArrayList<GoalTargetComponent>(); 1192 this.target.add(t); 1193 return t; 1194 } 1195 1196 public Goal addTarget(GoalTargetComponent t) { //3 1197 if (t == null) 1198 return this; 1199 if (this.target == null) 1200 this.target = new ArrayList<GoalTargetComponent>(); 1201 this.target.add(t); 1202 return this; 1203 } 1204 1205 /** 1206 * @return The first repetition of repeating field {@link #target}, creating it if it does not already exist 1207 */ 1208 public GoalTargetComponent getTargetFirstRep() { 1209 if (getTarget().isEmpty()) { 1210 addTarget(); 1211 } 1212 return getTarget().get(0); 1213 } 1214 1215 /** 1216 * @return {@link #statusDate} (Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.). This is the underlying object with id, value and extensions. The accessor "getStatusDate" gives direct access to the value 1217 */ 1218 public DateType getStatusDateElement() { 1219 if (this.statusDate == null) 1220 if (Configuration.errorOnAutoCreate()) 1221 throw new Error("Attempt to auto-create Goal.statusDate"); 1222 else if (Configuration.doAutoCreate()) 1223 this.statusDate = new DateType(); // bb 1224 return this.statusDate; 1225 } 1226 1227 public boolean hasStatusDateElement() { 1228 return this.statusDate != null && !this.statusDate.isEmpty(); 1229 } 1230 1231 public boolean hasStatusDate() { 1232 return this.statusDate != null && !this.statusDate.isEmpty(); 1233 } 1234 1235 /** 1236 * @param value {@link #statusDate} (Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.). This is the underlying object with id, value and extensions. The accessor "getStatusDate" gives direct access to the value 1237 */ 1238 public Goal setStatusDateElement(DateType value) { 1239 this.statusDate = value; 1240 return this; 1241 } 1242 1243 /** 1244 * @return Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc. 1245 */ 1246 public Date getStatusDate() { 1247 return this.statusDate == null ? null : this.statusDate.getValue(); 1248 } 1249 1250 /** 1251 * @param value Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc. 1252 */ 1253 public Goal setStatusDate(Date value) { 1254 if (value == null) 1255 this.statusDate = null; 1256 else { 1257 if (this.statusDate == null) 1258 this.statusDate = new DateType(); 1259 this.statusDate.setValue(value); 1260 } 1261 return this; 1262 } 1263 1264 /** 1265 * @return {@link #statusReason} (Captures the reason for the current status.). This is the underlying object with id, value and extensions. The accessor "getStatusReason" gives direct access to the value 1266 */ 1267 public StringType getStatusReasonElement() { 1268 if (this.statusReason == null) 1269 if (Configuration.errorOnAutoCreate()) 1270 throw new Error("Attempt to auto-create Goal.statusReason"); 1271 else if (Configuration.doAutoCreate()) 1272 this.statusReason = new StringType(); // bb 1273 return this.statusReason; 1274 } 1275 1276 public boolean hasStatusReasonElement() { 1277 return this.statusReason != null && !this.statusReason.isEmpty(); 1278 } 1279 1280 public boolean hasStatusReason() { 1281 return this.statusReason != null && !this.statusReason.isEmpty(); 1282 } 1283 1284 /** 1285 * @param value {@link #statusReason} (Captures the reason for the current status.). This is the underlying object with id, value and extensions. The accessor "getStatusReason" gives direct access to the value 1286 */ 1287 public Goal setStatusReasonElement(StringType value) { 1288 this.statusReason = value; 1289 return this; 1290 } 1291 1292 /** 1293 * @return Captures the reason for the current status. 1294 */ 1295 public String getStatusReason() { 1296 return this.statusReason == null ? null : this.statusReason.getValue(); 1297 } 1298 1299 /** 1300 * @param value Captures the reason for the current status. 1301 */ 1302 public Goal setStatusReason(String value) { 1303 if (Utilities.noString(value)) 1304 this.statusReason = null; 1305 else { 1306 if (this.statusReason == null) 1307 this.statusReason = new StringType(); 1308 this.statusReason.setValue(value); 1309 } 1310 return this; 1311 } 1312 1313 /** 1314 * @return {@link #expressedBy} (Indicates whose goal this is - patient goal, practitioner goal, etc.) 1315 */ 1316 public Reference getExpressedBy() { 1317 if (this.expressedBy == null) 1318 if (Configuration.errorOnAutoCreate()) 1319 throw new Error("Attempt to auto-create Goal.expressedBy"); 1320 else if (Configuration.doAutoCreate()) 1321 this.expressedBy = new Reference(); // cc 1322 return this.expressedBy; 1323 } 1324 1325 public boolean hasExpressedBy() { 1326 return this.expressedBy != null && !this.expressedBy.isEmpty(); 1327 } 1328 1329 /** 1330 * @param value {@link #expressedBy} (Indicates whose goal this is - patient goal, practitioner goal, etc.) 1331 */ 1332 public Goal setExpressedBy(Reference value) { 1333 this.expressedBy = value; 1334 return this; 1335 } 1336 1337 /** 1338 * @return {@link #expressedBy} 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. (Indicates whose goal this is - patient goal, practitioner goal, etc.) 1339 */ 1340 public Resource getExpressedByTarget() { 1341 return this.expressedByTarget; 1342 } 1343 1344 /** 1345 * @param value {@link #expressedBy} 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. (Indicates whose goal this is - patient goal, practitioner goal, etc.) 1346 */ 1347 public Goal setExpressedByTarget(Resource value) { 1348 this.expressedByTarget = value; 1349 return this; 1350 } 1351 1352 /** 1353 * @return {@link #addresses} (The identified conditions and other health record elements that are intended to be addressed by the goal.) 1354 */ 1355 public List<Reference> getAddresses() { 1356 if (this.addresses == null) 1357 this.addresses = new ArrayList<Reference>(); 1358 return this.addresses; 1359 } 1360 1361 /** 1362 * @return Returns a reference to <code>this</code> for easy method chaining 1363 */ 1364 public Goal setAddresses(List<Reference> theAddresses) { 1365 this.addresses = theAddresses; 1366 return this; 1367 } 1368 1369 public boolean hasAddresses() { 1370 if (this.addresses == null) 1371 return false; 1372 for (Reference item : this.addresses) 1373 if (!item.isEmpty()) 1374 return true; 1375 return false; 1376 } 1377 1378 public Reference addAddresses() { //3 1379 Reference t = new Reference(); 1380 if (this.addresses == null) 1381 this.addresses = new ArrayList<Reference>(); 1382 this.addresses.add(t); 1383 return t; 1384 } 1385 1386 public Goal addAddresses(Reference t) { //3 1387 if (t == null) 1388 return this; 1389 if (this.addresses == null) 1390 this.addresses = new ArrayList<Reference>(); 1391 this.addresses.add(t); 1392 return this; 1393 } 1394 1395 /** 1396 * @return The first repetition of repeating field {@link #addresses}, creating it if it does not already exist 1397 */ 1398 public Reference getAddressesFirstRep() { 1399 if (getAddresses().isEmpty()) { 1400 addAddresses(); 1401 } 1402 return getAddresses().get(0); 1403 } 1404 1405 /** 1406 * @deprecated Use Reference#setResource(IBaseResource) instead 1407 */ 1408 @Deprecated 1409 public List<Resource> getAddressesTarget() { 1410 if (this.addressesTarget == null) 1411 this.addressesTarget = new ArrayList<Resource>(); 1412 return this.addressesTarget; 1413 } 1414 1415 /** 1416 * @return {@link #note} (Any comments related to the goal.) 1417 */ 1418 public List<Annotation> getNote() { 1419 if (this.note == null) 1420 this.note = new ArrayList<Annotation>(); 1421 return this.note; 1422 } 1423 1424 /** 1425 * @return Returns a reference to <code>this</code> for easy method chaining 1426 */ 1427 public Goal setNote(List<Annotation> theNote) { 1428 this.note = theNote; 1429 return this; 1430 } 1431 1432 public boolean hasNote() { 1433 if (this.note == null) 1434 return false; 1435 for (Annotation item : this.note) 1436 if (!item.isEmpty()) 1437 return true; 1438 return false; 1439 } 1440 1441 public Annotation addNote() { //3 1442 Annotation t = new Annotation(); 1443 if (this.note == null) 1444 this.note = new ArrayList<Annotation>(); 1445 this.note.add(t); 1446 return t; 1447 } 1448 1449 public Goal addNote(Annotation t) { //3 1450 if (t == null) 1451 return this; 1452 if (this.note == null) 1453 this.note = new ArrayList<Annotation>(); 1454 this.note.add(t); 1455 return this; 1456 } 1457 1458 /** 1459 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 1460 */ 1461 public Annotation getNoteFirstRep() { 1462 if (getNote().isEmpty()) { 1463 addNote(); 1464 } 1465 return getNote().get(0); 1466 } 1467 1468 /** 1469 * @return {@link #outcomeCode} (Identifies the change (or lack of change) at the point when the status of the goal is assessed.) 1470 */ 1471 public List<CodeableConcept> getOutcomeCode() { 1472 if (this.outcomeCode == null) 1473 this.outcomeCode = new ArrayList<CodeableConcept>(); 1474 return this.outcomeCode; 1475 } 1476 1477 /** 1478 * @return Returns a reference to <code>this</code> for easy method chaining 1479 */ 1480 public Goal setOutcomeCode(List<CodeableConcept> theOutcomeCode) { 1481 this.outcomeCode = theOutcomeCode; 1482 return this; 1483 } 1484 1485 public boolean hasOutcomeCode() { 1486 if (this.outcomeCode == null) 1487 return false; 1488 for (CodeableConcept item : this.outcomeCode) 1489 if (!item.isEmpty()) 1490 return true; 1491 return false; 1492 } 1493 1494 public CodeableConcept addOutcomeCode() { //3 1495 CodeableConcept t = new CodeableConcept(); 1496 if (this.outcomeCode == null) 1497 this.outcomeCode = new ArrayList<CodeableConcept>(); 1498 this.outcomeCode.add(t); 1499 return t; 1500 } 1501 1502 public Goal addOutcomeCode(CodeableConcept t) { //3 1503 if (t == null) 1504 return this; 1505 if (this.outcomeCode == null) 1506 this.outcomeCode = new ArrayList<CodeableConcept>(); 1507 this.outcomeCode.add(t); 1508 return this; 1509 } 1510 1511 /** 1512 * @return The first repetition of repeating field {@link #outcomeCode}, creating it if it does not already exist 1513 */ 1514 public CodeableConcept getOutcomeCodeFirstRep() { 1515 if (getOutcomeCode().isEmpty()) { 1516 addOutcomeCode(); 1517 } 1518 return getOutcomeCode().get(0); 1519 } 1520 1521 /** 1522 * @return {@link #outcomeReference} (Details of what's changed (or not changed).) 1523 */ 1524 public List<Reference> getOutcomeReference() { 1525 if (this.outcomeReference == null) 1526 this.outcomeReference = new ArrayList<Reference>(); 1527 return this.outcomeReference; 1528 } 1529 1530 /** 1531 * @return Returns a reference to <code>this</code> for easy method chaining 1532 */ 1533 public Goal setOutcomeReference(List<Reference> theOutcomeReference) { 1534 this.outcomeReference = theOutcomeReference; 1535 return this; 1536 } 1537 1538 public boolean hasOutcomeReference() { 1539 if (this.outcomeReference == null) 1540 return false; 1541 for (Reference item : this.outcomeReference) 1542 if (!item.isEmpty()) 1543 return true; 1544 return false; 1545 } 1546 1547 public Reference addOutcomeReference() { //3 1548 Reference t = new Reference(); 1549 if (this.outcomeReference == null) 1550 this.outcomeReference = new ArrayList<Reference>(); 1551 this.outcomeReference.add(t); 1552 return t; 1553 } 1554 1555 public Goal addOutcomeReference(Reference t) { //3 1556 if (t == null) 1557 return this; 1558 if (this.outcomeReference == null) 1559 this.outcomeReference = new ArrayList<Reference>(); 1560 this.outcomeReference.add(t); 1561 return this; 1562 } 1563 1564 /** 1565 * @return The first repetition of repeating field {@link #outcomeReference}, creating it if it does not already exist 1566 */ 1567 public Reference getOutcomeReferenceFirstRep() { 1568 if (getOutcomeReference().isEmpty()) { 1569 addOutcomeReference(); 1570 } 1571 return getOutcomeReference().get(0); 1572 } 1573 1574 /** 1575 * @deprecated Use Reference#setResource(IBaseResource) instead 1576 */ 1577 @Deprecated 1578 public List<Observation> getOutcomeReferenceTarget() { 1579 if (this.outcomeReferenceTarget == null) 1580 this.outcomeReferenceTarget = new ArrayList<Observation>(); 1581 return this.outcomeReferenceTarget; 1582 } 1583 1584 /** 1585 * @deprecated Use Reference#setResource(IBaseResource) instead 1586 */ 1587 @Deprecated 1588 public Observation addOutcomeReferenceTarget() { 1589 Observation r = new Observation(); 1590 if (this.outcomeReferenceTarget == null) 1591 this.outcomeReferenceTarget = new ArrayList<Observation>(); 1592 this.outcomeReferenceTarget.add(r); 1593 return r; 1594 } 1595 1596 protected void listChildren(List<Property> children) { 1597 super.listChildren(children); 1598 children.add(new Property("identifier", "Identifier", "Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1599 children.add(new Property("lifecycleStatus", "code", "The state of the goal throughout its lifecycle.", 0, 1, lifecycleStatus)); 1600 children.add(new Property("achievementStatus", "CodeableConcept", "Describes the progression, or lack thereof, towards the goal against the target.", 0, 1, achievementStatus)); 1601 children.add(new Property("category", "CodeableConcept", "Indicates a category the goal falls within.", 0, java.lang.Integer.MAX_VALUE, category)); 1602 children.add(new Property("priority", "CodeableConcept", "Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.", 0, 1, priority)); 1603 children.add(new Property("description", "CodeableConcept", "Human-readable and/or coded description of a specific desired objective of care, such as \"control blood pressure\" or \"negotiate an obstacle course\" or \"dance with child at wedding\".", 0, 1, description)); 1604 children.add(new Property("subject", "Reference(Patient|Group|Organization)", "Identifies the patient, group or organization for whom the goal is being established.", 0, 1, subject)); 1605 children.add(new Property("start[x]", "date|CodeableConcept", "The date or event after which the goal should begin being pursued.", 0, 1, start)); 1606 children.add(new Property("target", "", "Indicates what should be done by when.", 0, java.lang.Integer.MAX_VALUE, target)); 1607 children.add(new Property("statusDate", "date", "Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.", 0, 1, statusDate)); 1608 children.add(new Property("statusReason", "string", "Captures the reason for the current status.", 0, 1, statusReason)); 1609 children.add(new Property("expressedBy", "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson)", "Indicates whose goal this is - patient goal, practitioner goal, etc.", 0, 1, expressedBy)); 1610 children.add(new Property("addresses", "Reference(Condition|Observation|MedicationStatement|NutritionOrder|ServiceRequest|RiskAssessment)", "The identified conditions and other health record elements that are intended to be addressed by the goal.", 0, java.lang.Integer.MAX_VALUE, addresses)); 1611 children.add(new Property("note", "Annotation", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, note)); 1612 children.add(new Property("outcomeCode", "CodeableConcept", "Identifies the change (or lack of change) at the point when the status of the goal is assessed.", 0, java.lang.Integer.MAX_VALUE, outcomeCode)); 1613 children.add(new Property("outcomeReference", "Reference(Observation)", "Details of what's changed (or not changed).", 0, java.lang.Integer.MAX_VALUE, outcomeReference)); 1614 } 1615 1616 @Override 1617 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1618 switch (_hash) { 1619 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server.", 0, java.lang.Integer.MAX_VALUE, identifier); 1620 case 1165552636: /*lifecycleStatus*/ return new Property("lifecycleStatus", "code", "The state of the goal throughout its lifecycle.", 0, 1, lifecycleStatus); 1621 case 104524801: /*achievementStatus*/ return new Property("achievementStatus", "CodeableConcept", "Describes the progression, or lack thereof, towards the goal against the target.", 0, 1, achievementStatus); 1622 case 50511102: /*category*/ return new Property("category", "CodeableConcept", "Indicates a category the goal falls within.", 0, java.lang.Integer.MAX_VALUE, category); 1623 case -1165461084: /*priority*/ return new Property("priority", "CodeableConcept", "Identifies the mutually agreed level of importance associated with reaching/sustaining the goal.", 0, 1, priority); 1624 case -1724546052: /*description*/ return new Property("description", "CodeableConcept", "Human-readable and/or coded description of a specific desired objective of care, such as \"control blood pressure\" or \"negotiate an obstacle course\" or \"dance with child at wedding\".", 0, 1, description); 1625 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group|Organization)", "Identifies the patient, group or organization for whom the goal is being established.", 0, 1, subject); 1626 case 1316793566: /*start[x]*/ return new Property("start[x]", "date|CodeableConcept", "The date or event after which the goal should begin being pursued.", 0, 1, start); 1627 case 109757538: /*start*/ return new Property("start[x]", "date|CodeableConcept", "The date or event after which the goal should begin being pursued.", 0, 1, start); 1628 case -2129778896: /*startDate*/ return new Property("start[x]", "date|CodeableConcept", "The date or event after which the goal should begin being pursued.", 0, 1, start); 1629 case -1758833953: /*startCodeableConcept*/ return new Property("start[x]", "date|CodeableConcept", "The date or event after which the goal should begin being pursued.", 0, 1, start); 1630 case -880905839: /*target*/ return new Property("target", "", "Indicates what should be done by when.", 0, java.lang.Integer.MAX_VALUE, target); 1631 case 247524032: /*statusDate*/ return new Property("statusDate", "date", "Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc.", 0, 1, statusDate); 1632 case 2051346646: /*statusReason*/ return new Property("statusReason", "string", "Captures the reason for the current status.", 0, 1, statusReason); 1633 case 175423686: /*expressedBy*/ return new Property("expressedBy", "Reference(Patient|Practitioner|PractitionerRole|RelatedPerson)", "Indicates whose goal this is - patient goal, practitioner goal, etc.", 0, 1, expressedBy); 1634 case 874544034: /*addresses*/ return new Property("addresses", "Reference(Condition|Observation|MedicationStatement|NutritionOrder|ServiceRequest|RiskAssessment)", "The identified conditions and other health record elements that are intended to be addressed by the goal.", 0, java.lang.Integer.MAX_VALUE, addresses); 1635 case 3387378: /*note*/ return new Property("note", "Annotation", "Any comments related to the goal.", 0, java.lang.Integer.MAX_VALUE, note); 1636 case 1062482015: /*outcomeCode*/ return new Property("outcomeCode", "CodeableConcept", "Identifies the change (or lack of change) at the point when the status of the goal is assessed.", 0, java.lang.Integer.MAX_VALUE, outcomeCode); 1637 case -782273511: /*outcomeReference*/ return new Property("outcomeReference", "Reference(Observation)", "Details of what's changed (or not changed).", 0, java.lang.Integer.MAX_VALUE, outcomeReference); 1638 default: return super.getNamedProperty(_hash, _name, _checkValid); 1639 } 1640 1641 } 1642 1643 @Override 1644 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1645 switch (hash) { 1646 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1647 case 1165552636: /*lifecycleStatus*/ return this.lifecycleStatus == null ? new Base[0] : new Base[] {this.lifecycleStatus}; // Enumeration<GoalLifecycleStatus> 1648 case 104524801: /*achievementStatus*/ return this.achievementStatus == null ? new Base[0] : new Base[] {this.achievementStatus}; // CodeableConcept 1649 case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept 1650 case -1165461084: /*priority*/ return this.priority == null ? new Base[0] : new Base[] {this.priority}; // CodeableConcept 1651 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // CodeableConcept 1652 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 1653 case 109757538: /*start*/ return this.start == null ? new Base[0] : new Base[] {this.start}; // Type 1654 case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // GoalTargetComponent 1655 case 247524032: /*statusDate*/ return this.statusDate == null ? new Base[0] : new Base[] {this.statusDate}; // DateType 1656 case 2051346646: /*statusReason*/ return this.statusReason == null ? new Base[0] : new Base[] {this.statusReason}; // StringType 1657 case 175423686: /*expressedBy*/ return this.expressedBy == null ? new Base[0] : new Base[] {this.expressedBy}; // Reference 1658 case 874544034: /*addresses*/ return this.addresses == null ? new Base[0] : this.addresses.toArray(new Base[this.addresses.size()]); // Reference 1659 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 1660 case 1062482015: /*outcomeCode*/ return this.outcomeCode == null ? new Base[0] : this.outcomeCode.toArray(new Base[this.outcomeCode.size()]); // CodeableConcept 1661 case -782273511: /*outcomeReference*/ return this.outcomeReference == null ? new Base[0] : this.outcomeReference.toArray(new Base[this.outcomeReference.size()]); // Reference 1662 default: return super.getProperty(hash, name, checkValid); 1663 } 1664 1665 } 1666 1667 @Override 1668 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1669 switch (hash) { 1670 case -1618432855: // identifier 1671 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1672 return value; 1673 case 1165552636: // lifecycleStatus 1674 value = new GoalLifecycleStatusEnumFactory().fromType(castToCode(value)); 1675 this.lifecycleStatus = (Enumeration) value; // Enumeration<GoalLifecycleStatus> 1676 return value; 1677 case 104524801: // achievementStatus 1678 this.achievementStatus = castToCodeableConcept(value); // CodeableConcept 1679 return value; 1680 case 50511102: // category 1681 this.getCategory().add(castToCodeableConcept(value)); // CodeableConcept 1682 return value; 1683 case -1165461084: // priority 1684 this.priority = castToCodeableConcept(value); // CodeableConcept 1685 return value; 1686 case -1724546052: // description 1687 this.description = castToCodeableConcept(value); // CodeableConcept 1688 return value; 1689 case -1867885268: // subject 1690 this.subject = castToReference(value); // Reference 1691 return value; 1692 case 109757538: // start 1693 this.start = castToType(value); // Type 1694 return value; 1695 case -880905839: // target 1696 this.getTarget().add((GoalTargetComponent) value); // GoalTargetComponent 1697 return value; 1698 case 247524032: // statusDate 1699 this.statusDate = castToDate(value); // DateType 1700 return value; 1701 case 2051346646: // statusReason 1702 this.statusReason = castToString(value); // StringType 1703 return value; 1704 case 175423686: // expressedBy 1705 this.expressedBy = castToReference(value); // Reference 1706 return value; 1707 case 874544034: // addresses 1708 this.getAddresses().add(castToReference(value)); // Reference 1709 return value; 1710 case 3387378: // note 1711 this.getNote().add(castToAnnotation(value)); // Annotation 1712 return value; 1713 case 1062482015: // outcomeCode 1714 this.getOutcomeCode().add(castToCodeableConcept(value)); // CodeableConcept 1715 return value; 1716 case -782273511: // outcomeReference 1717 this.getOutcomeReference().add(castToReference(value)); // Reference 1718 return value; 1719 default: return super.setProperty(hash, name, value); 1720 } 1721 1722 } 1723 1724 @Override 1725 public Base setProperty(String name, Base value) throws FHIRException { 1726 if (name.equals("identifier")) { 1727 this.getIdentifier().add(castToIdentifier(value)); 1728 } else if (name.equals("lifecycleStatus")) { 1729 value = new GoalLifecycleStatusEnumFactory().fromType(castToCode(value)); 1730 this.lifecycleStatus = (Enumeration) value; // Enumeration<GoalLifecycleStatus> 1731 } else if (name.equals("achievementStatus")) { 1732 this.achievementStatus = castToCodeableConcept(value); // CodeableConcept 1733 } else if (name.equals("category")) { 1734 this.getCategory().add(castToCodeableConcept(value)); 1735 } else if (name.equals("priority")) { 1736 this.priority = castToCodeableConcept(value); // CodeableConcept 1737 } else if (name.equals("description")) { 1738 this.description = castToCodeableConcept(value); // CodeableConcept 1739 } else if (name.equals("subject")) { 1740 this.subject = castToReference(value); // Reference 1741 } else if (name.equals("start[x]")) { 1742 this.start = castToType(value); // Type 1743 } else if (name.equals("target")) { 1744 this.getTarget().add((GoalTargetComponent) value); 1745 } else if (name.equals("statusDate")) { 1746 this.statusDate = castToDate(value); // DateType 1747 } else if (name.equals("statusReason")) { 1748 this.statusReason = castToString(value); // StringType 1749 } else if (name.equals("expressedBy")) { 1750 this.expressedBy = castToReference(value); // Reference 1751 } else if (name.equals("addresses")) { 1752 this.getAddresses().add(castToReference(value)); 1753 } else if (name.equals("note")) { 1754 this.getNote().add(castToAnnotation(value)); 1755 } else if (name.equals("outcomeCode")) { 1756 this.getOutcomeCode().add(castToCodeableConcept(value)); 1757 } else if (name.equals("outcomeReference")) { 1758 this.getOutcomeReference().add(castToReference(value)); 1759 } else 1760 return super.setProperty(name, value); 1761 return value; 1762 } 1763 1764 @Override 1765 public Base makeProperty(int hash, String name) throws FHIRException { 1766 switch (hash) { 1767 case -1618432855: return addIdentifier(); 1768 case 1165552636: return getLifecycleStatusElement(); 1769 case 104524801: return getAchievementStatus(); 1770 case 50511102: return addCategory(); 1771 case -1165461084: return getPriority(); 1772 case -1724546052: return getDescription(); 1773 case -1867885268: return getSubject(); 1774 case 1316793566: return getStart(); 1775 case 109757538: return getStart(); 1776 case -880905839: return addTarget(); 1777 case 247524032: return getStatusDateElement(); 1778 case 2051346646: return getStatusReasonElement(); 1779 case 175423686: return getExpressedBy(); 1780 case 874544034: return addAddresses(); 1781 case 3387378: return addNote(); 1782 case 1062482015: return addOutcomeCode(); 1783 case -782273511: return addOutcomeReference(); 1784 default: return super.makeProperty(hash, name); 1785 } 1786 1787 } 1788 1789 @Override 1790 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1791 switch (hash) { 1792 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1793 case 1165552636: /*lifecycleStatus*/ return new String[] {"code"}; 1794 case 104524801: /*achievementStatus*/ return new String[] {"CodeableConcept"}; 1795 case 50511102: /*category*/ return new String[] {"CodeableConcept"}; 1796 case -1165461084: /*priority*/ return new String[] {"CodeableConcept"}; 1797 case -1724546052: /*description*/ return new String[] {"CodeableConcept"}; 1798 case -1867885268: /*subject*/ return new String[] {"Reference"}; 1799 case 109757538: /*start*/ return new String[] {"date", "CodeableConcept"}; 1800 case -880905839: /*target*/ return new String[] {}; 1801 case 247524032: /*statusDate*/ return new String[] {"date"}; 1802 case 2051346646: /*statusReason*/ return new String[] {"string"}; 1803 case 175423686: /*expressedBy*/ return new String[] {"Reference"}; 1804 case 874544034: /*addresses*/ return new String[] {"Reference"}; 1805 case 3387378: /*note*/ return new String[] {"Annotation"}; 1806 case 1062482015: /*outcomeCode*/ return new String[] {"CodeableConcept"}; 1807 case -782273511: /*outcomeReference*/ return new String[] {"Reference"}; 1808 default: return super.getTypesForProperty(hash, name); 1809 } 1810 1811 } 1812 1813 @Override 1814 public Base addChild(String name) throws FHIRException { 1815 if (name.equals("identifier")) { 1816 return addIdentifier(); 1817 } 1818 else if (name.equals("lifecycleStatus")) { 1819 throw new FHIRException("Cannot call addChild on a primitive type Goal.lifecycleStatus"); 1820 } 1821 else if (name.equals("achievementStatus")) { 1822 this.achievementStatus = new CodeableConcept(); 1823 return this.achievementStatus; 1824 } 1825 else if (name.equals("category")) { 1826 return addCategory(); 1827 } 1828 else if (name.equals("priority")) { 1829 this.priority = new CodeableConcept(); 1830 return this.priority; 1831 } 1832 else if (name.equals("description")) { 1833 this.description = new CodeableConcept(); 1834 return this.description; 1835 } 1836 else if (name.equals("subject")) { 1837 this.subject = new Reference(); 1838 return this.subject; 1839 } 1840 else if (name.equals("startDate")) { 1841 this.start = new DateType(); 1842 return this.start; 1843 } 1844 else if (name.equals("startCodeableConcept")) { 1845 this.start = new CodeableConcept(); 1846 return this.start; 1847 } 1848 else if (name.equals("target")) { 1849 return addTarget(); 1850 } 1851 else if (name.equals("statusDate")) { 1852 throw new FHIRException("Cannot call addChild on a primitive type Goal.statusDate"); 1853 } 1854 else if (name.equals("statusReason")) { 1855 throw new FHIRException("Cannot call addChild on a primitive type Goal.statusReason"); 1856 } 1857 else if (name.equals("expressedBy")) { 1858 this.expressedBy = new Reference(); 1859 return this.expressedBy; 1860 } 1861 else if (name.equals("addresses")) { 1862 return addAddresses(); 1863 } 1864 else if (name.equals("note")) { 1865 return addNote(); 1866 } 1867 else if (name.equals("outcomeCode")) { 1868 return addOutcomeCode(); 1869 } 1870 else if (name.equals("outcomeReference")) { 1871 return addOutcomeReference(); 1872 } 1873 else 1874 return super.addChild(name); 1875 } 1876 1877 public String fhirType() { 1878 return "Goal"; 1879 1880 } 1881 1882 public Goal copy() { 1883 Goal dst = new Goal(); 1884 copyValues(dst); 1885 if (identifier != null) { 1886 dst.identifier = new ArrayList<Identifier>(); 1887 for (Identifier i : identifier) 1888 dst.identifier.add(i.copy()); 1889 }; 1890 dst.lifecycleStatus = lifecycleStatus == null ? null : lifecycleStatus.copy(); 1891 dst.achievementStatus = achievementStatus == null ? null : achievementStatus.copy(); 1892 if (category != null) { 1893 dst.category = new ArrayList<CodeableConcept>(); 1894 for (CodeableConcept i : category) 1895 dst.category.add(i.copy()); 1896 }; 1897 dst.priority = priority == null ? null : priority.copy(); 1898 dst.description = description == null ? null : description.copy(); 1899 dst.subject = subject == null ? null : subject.copy(); 1900 dst.start = start == null ? null : start.copy(); 1901 if (target != null) { 1902 dst.target = new ArrayList<GoalTargetComponent>(); 1903 for (GoalTargetComponent i : target) 1904 dst.target.add(i.copy()); 1905 }; 1906 dst.statusDate = statusDate == null ? null : statusDate.copy(); 1907 dst.statusReason = statusReason == null ? null : statusReason.copy(); 1908 dst.expressedBy = expressedBy == null ? null : expressedBy.copy(); 1909 if (addresses != null) { 1910 dst.addresses = new ArrayList<Reference>(); 1911 for (Reference i : addresses) 1912 dst.addresses.add(i.copy()); 1913 }; 1914 if (note != null) { 1915 dst.note = new ArrayList<Annotation>(); 1916 for (Annotation i : note) 1917 dst.note.add(i.copy()); 1918 }; 1919 if (outcomeCode != null) { 1920 dst.outcomeCode = new ArrayList<CodeableConcept>(); 1921 for (CodeableConcept i : outcomeCode) 1922 dst.outcomeCode.add(i.copy()); 1923 }; 1924 if (outcomeReference != null) { 1925 dst.outcomeReference = new ArrayList<Reference>(); 1926 for (Reference i : outcomeReference) 1927 dst.outcomeReference.add(i.copy()); 1928 }; 1929 return dst; 1930 } 1931 1932 protected Goal typedCopy() { 1933 return copy(); 1934 } 1935 1936 @Override 1937 public boolean equalsDeep(Base other_) { 1938 if (!super.equalsDeep(other_)) 1939 return false; 1940 if (!(other_ instanceof Goal)) 1941 return false; 1942 Goal o = (Goal) other_; 1943 return compareDeep(identifier, o.identifier, true) && compareDeep(lifecycleStatus, o.lifecycleStatus, true) 1944 && compareDeep(achievementStatus, o.achievementStatus, true) && compareDeep(category, o.category, true) 1945 && compareDeep(priority, o.priority, true) && compareDeep(description, o.description, true) && compareDeep(subject, o.subject, true) 1946 && compareDeep(start, o.start, true) && compareDeep(target, o.target, true) && compareDeep(statusDate, o.statusDate, true) 1947 && compareDeep(statusReason, o.statusReason, true) && compareDeep(expressedBy, o.expressedBy, true) 1948 && compareDeep(addresses, o.addresses, true) && compareDeep(note, o.note, true) && compareDeep(outcomeCode, o.outcomeCode, true) 1949 && compareDeep(outcomeReference, o.outcomeReference, true); 1950 } 1951 1952 @Override 1953 public boolean equalsShallow(Base other_) { 1954 if (!super.equalsShallow(other_)) 1955 return false; 1956 if (!(other_ instanceof Goal)) 1957 return false; 1958 Goal o = (Goal) other_; 1959 return compareValues(lifecycleStatus, o.lifecycleStatus, true) && compareValues(statusDate, o.statusDate, true) 1960 && compareValues(statusReason, o.statusReason, true); 1961 } 1962 1963 public boolean isEmpty() { 1964 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, lifecycleStatus 1965 , achievementStatus, category, priority, description, subject, start, target, statusDate 1966 , statusReason, expressedBy, addresses, note, outcomeCode, outcomeReference); 1967 } 1968 1969 @Override 1970 public ResourceType getResourceType() { 1971 return ResourceType.Goal; 1972 } 1973 1974 /** 1975 * Search parameter: <b>identifier</b> 1976 * <p> 1977 * Description: <b>External Ids for this goal</b><br> 1978 * Type: <b>token</b><br> 1979 * Path: <b>Goal.identifier</b><br> 1980 * </p> 1981 */ 1982 @SearchParamDefinition(name="identifier", path="Goal.identifier", description="External Ids for this goal", type="token" ) 1983 public static final String SP_IDENTIFIER = "identifier"; 1984 /** 1985 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1986 * <p> 1987 * Description: <b>External Ids for this goal</b><br> 1988 * Type: <b>token</b><br> 1989 * Path: <b>Goal.identifier</b><br> 1990 * </p> 1991 */ 1992 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1993 1994 /** 1995 * Search parameter: <b>lifecycle-status</b> 1996 * <p> 1997 * Description: <b>proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected</b><br> 1998 * Type: <b>token</b><br> 1999 * Path: <b>Goal.lifecycleStatus</b><br> 2000 * </p> 2001 */ 2002 @SearchParamDefinition(name="lifecycle-status", path="Goal.lifecycleStatus", description="proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected", type="token" ) 2003 public static final String SP_LIFECYCLE_STATUS = "lifecycle-status"; 2004 /** 2005 * <b>Fluent Client</b> search parameter constant for <b>lifecycle-status</b> 2006 * <p> 2007 * Description: <b>proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected</b><br> 2008 * Type: <b>token</b><br> 2009 * Path: <b>Goal.lifecycleStatus</b><br> 2010 * </p> 2011 */ 2012 public static final ca.uhn.fhir.rest.gclient.TokenClientParam LIFECYCLE_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_LIFECYCLE_STATUS); 2013 2014 /** 2015 * Search parameter: <b>achievement-status</b> 2016 * <p> 2017 * Description: <b>in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable</b><br> 2018 * Type: <b>token</b><br> 2019 * Path: <b>Goal.achievementStatus</b><br> 2020 * </p> 2021 */ 2022 @SearchParamDefinition(name="achievement-status", path="Goal.achievementStatus", description="in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable", type="token" ) 2023 public static final String SP_ACHIEVEMENT_STATUS = "achievement-status"; 2024 /** 2025 * <b>Fluent Client</b> search parameter constant for <b>achievement-status</b> 2026 * <p> 2027 * Description: <b>in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable</b><br> 2028 * Type: <b>token</b><br> 2029 * Path: <b>Goal.achievementStatus</b><br> 2030 * </p> 2031 */ 2032 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACHIEVEMENT_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACHIEVEMENT_STATUS); 2033 2034 /** 2035 * Search parameter: <b>patient</b> 2036 * <p> 2037 * Description: <b>Who this goal is intended for</b><br> 2038 * Type: <b>reference</b><br> 2039 * Path: <b>Goal.subject</b><br> 2040 * </p> 2041 */ 2042 @SearchParamDefinition(name="patient", path="Goal.subject.where(resolve() is Patient)", description="Who this goal is intended for", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Patient.class } ) 2043 public static final String SP_PATIENT = "patient"; 2044 /** 2045 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2046 * <p> 2047 * Description: <b>Who this goal is intended for</b><br> 2048 * Type: <b>reference</b><br> 2049 * Path: <b>Goal.subject</b><br> 2050 * </p> 2051 */ 2052 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2053 2054/** 2055 * Constant for fluent queries to be used to add include statements. Specifies 2056 * the path value of "<b>Goal:patient</b>". 2057 */ 2058 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Goal:patient").toLocked(); 2059 2060 /** 2061 * Search parameter: <b>subject</b> 2062 * <p> 2063 * Description: <b>Who this goal is intended for</b><br> 2064 * Type: <b>reference</b><br> 2065 * Path: <b>Goal.subject</b><br> 2066 * </p> 2067 */ 2068 @SearchParamDefinition(name="subject", path="Goal.subject", description="Who this goal is intended for", type="reference", target={Group.class, Organization.class, Patient.class } ) 2069 public static final String SP_SUBJECT = "subject"; 2070 /** 2071 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2072 * <p> 2073 * Description: <b>Who this goal is intended for</b><br> 2074 * Type: <b>reference</b><br> 2075 * Path: <b>Goal.subject</b><br> 2076 * </p> 2077 */ 2078 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2079 2080/** 2081 * Constant for fluent queries to be used to add include statements. Specifies 2082 * the path value of "<b>Goal:subject</b>". 2083 */ 2084 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Goal:subject").toLocked(); 2085 2086 /** 2087 * Search parameter: <b>start-date</b> 2088 * <p> 2089 * Description: <b>When goal pursuit begins</b><br> 2090 * Type: <b>date</b><br> 2091 * Path: <b>Goal.startDate</b><br> 2092 * </p> 2093 */ 2094 @SearchParamDefinition(name="start-date", path="(Goal.start as date)", description="When goal pursuit begins", type="date" ) 2095 public static final String SP_START_DATE = "start-date"; 2096 /** 2097 * <b>Fluent Client</b> search parameter constant for <b>start-date</b> 2098 * <p> 2099 * Description: <b>When goal pursuit begins</b><br> 2100 * Type: <b>date</b><br> 2101 * Path: <b>Goal.startDate</b><br> 2102 * </p> 2103 */ 2104 public static final ca.uhn.fhir.rest.gclient.DateClientParam START_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_START_DATE); 2105 2106 /** 2107 * Search parameter: <b>category</b> 2108 * <p> 2109 * Description: <b>E.g. Treatment, dietary, behavioral, etc.</b><br> 2110 * Type: <b>token</b><br> 2111 * Path: <b>Goal.category</b><br> 2112 * </p> 2113 */ 2114 @SearchParamDefinition(name="category", path="Goal.category", description="E.g. Treatment, dietary, behavioral, etc.", type="token" ) 2115 public static final String SP_CATEGORY = "category"; 2116 /** 2117 * <b>Fluent Client</b> search parameter constant for <b>category</b> 2118 * <p> 2119 * Description: <b>E.g. Treatment, dietary, behavioral, etc.</b><br> 2120 * Type: <b>token</b><br> 2121 * Path: <b>Goal.category</b><br> 2122 * </p> 2123 */ 2124 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY); 2125 2126 /** 2127 * Search parameter: <b>target-date</b> 2128 * <p> 2129 * Description: <b>Reach goal on or before</b><br> 2130 * Type: <b>date</b><br> 2131 * Path: <b>Goal.target.dueDate</b><br> 2132 * </p> 2133 */ 2134 @SearchParamDefinition(name="target-date", path="(Goal.target.due as date)", description="Reach goal on or before", type="date" ) 2135 public static final String SP_TARGET_DATE = "target-date"; 2136 /** 2137 * <b>Fluent Client</b> search parameter constant for <b>target-date</b> 2138 * <p> 2139 * Description: <b>Reach goal on or before</b><br> 2140 * Type: <b>date</b><br> 2141 * Path: <b>Goal.target.dueDate</b><br> 2142 * </p> 2143 */ 2144 public static final ca.uhn.fhir.rest.gclient.DateClientParam TARGET_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_TARGET_DATE); 2145 2146 2147} 2148