001package org.hl7.fhir.r4.model; 002 003/* 004 Copyright (c) 2011+, HL7, Inc. 005 All rights reserved. 006 007 Redistribution and use in source and binary forms, with or without modification, 008 are permitted provided that the following conditions are met: 009 010 * Redistributions of source code must retain the above copyright notice, this 011 list of conditions and the following disclaimer. 012 * Redistributions in binary form must reproduce the above copyright notice, 013 this list of conditions and the following disclaimer in the documentation 014 and/or other materials provided with the distribution. 015 * Neither the name of HL7 nor the names of its contributors may be used to 016 endorse or promote products derived from this software without specific 017 prior written permission. 018 019 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 020 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 021 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 022 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 023 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 024 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 025 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 026 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 027 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 028 POSSIBILITY OF SUCH DAMAGE. 029 030*/ 031 032// Generated on Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0 033 034import java.util.*; 035 036import org.hl7.fhir.utilities.Utilities; 037import ca.uhn.fhir.model.api.annotation.ResourceDef; 038import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 039import ca.uhn.fhir.model.api.annotation.Child; 040import ca.uhn.fhir.model.api.annotation.ChildOrder; 041import ca.uhn.fhir.model.api.annotation.Description; 042import ca.uhn.fhir.model.api.annotation.Block; 043import org.hl7.fhir.instance.model.api.*; 044import org.hl7.fhir.exceptions.FHIRException; 045/** 046 * Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively, and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization. 047 */ 048@ResourceDef(name="Group", profile="http://hl7.org/fhir/StructureDefinition/Group") 049public class Group extends DomainResource { 050 051 public enum GroupType { 052 /** 053 * Group contains "person" Patient resources. 054 */ 055 PERSON, 056 /** 057 * Group contains "animal" Patient resources. 058 */ 059 ANIMAL, 060 /** 061 * Group contains healthcare practitioner resources (Practitioner or PractitionerRole). 062 */ 063 PRACTITIONER, 064 /** 065 * Group contains Device resources. 066 */ 067 DEVICE, 068 /** 069 * Group contains Medication resources. 070 */ 071 MEDICATION, 072 /** 073 * Group contains Substance resources. 074 */ 075 SUBSTANCE, 076 /** 077 * added to help the parsers with the generic types 078 */ 079 NULL; 080 public static GroupType fromCode(String codeString) throws FHIRException { 081 if (codeString == null || "".equals(codeString)) 082 return null; 083 if ("person".equals(codeString)) 084 return PERSON; 085 if ("animal".equals(codeString)) 086 return ANIMAL; 087 if ("practitioner".equals(codeString)) 088 return PRACTITIONER; 089 if ("device".equals(codeString)) 090 return DEVICE; 091 if ("medication".equals(codeString)) 092 return MEDICATION; 093 if ("substance".equals(codeString)) 094 return SUBSTANCE; 095 if (Configuration.isAcceptInvalidEnums()) 096 return null; 097 else 098 throw new FHIRException("Unknown GroupType code '"+codeString+"'"); 099 } 100 public String toCode() { 101 switch (this) { 102 case PERSON: return "person"; 103 case ANIMAL: return "animal"; 104 case PRACTITIONER: return "practitioner"; 105 case DEVICE: return "device"; 106 case MEDICATION: return "medication"; 107 case SUBSTANCE: return "substance"; 108 default: return "?"; 109 } 110 } 111 public String getSystem() { 112 switch (this) { 113 case PERSON: return "http://hl7.org/fhir/group-type"; 114 case ANIMAL: return "http://hl7.org/fhir/group-type"; 115 case PRACTITIONER: return "http://hl7.org/fhir/group-type"; 116 case DEVICE: return "http://hl7.org/fhir/group-type"; 117 case MEDICATION: return "http://hl7.org/fhir/group-type"; 118 case SUBSTANCE: return "http://hl7.org/fhir/group-type"; 119 default: return "?"; 120 } 121 } 122 public String getDefinition() { 123 switch (this) { 124 case PERSON: return "Group contains \"person\" Patient resources."; 125 case ANIMAL: return "Group contains \"animal\" Patient resources."; 126 case PRACTITIONER: return "Group contains healthcare practitioner resources (Practitioner or PractitionerRole)."; 127 case DEVICE: return "Group contains Device resources."; 128 case MEDICATION: return "Group contains Medication resources."; 129 case SUBSTANCE: return "Group contains Substance resources."; 130 default: return "?"; 131 } 132 } 133 public String getDisplay() { 134 switch (this) { 135 case PERSON: return "Person"; 136 case ANIMAL: return "Animal"; 137 case PRACTITIONER: return "Practitioner"; 138 case DEVICE: return "Device"; 139 case MEDICATION: return "Medication"; 140 case SUBSTANCE: return "Substance"; 141 default: return "?"; 142 } 143 } 144 } 145 146 public static class GroupTypeEnumFactory implements EnumFactory<GroupType> { 147 public GroupType fromCode(String codeString) throws IllegalArgumentException { 148 if (codeString == null || "".equals(codeString)) 149 if (codeString == null || "".equals(codeString)) 150 return null; 151 if ("person".equals(codeString)) 152 return GroupType.PERSON; 153 if ("animal".equals(codeString)) 154 return GroupType.ANIMAL; 155 if ("practitioner".equals(codeString)) 156 return GroupType.PRACTITIONER; 157 if ("device".equals(codeString)) 158 return GroupType.DEVICE; 159 if ("medication".equals(codeString)) 160 return GroupType.MEDICATION; 161 if ("substance".equals(codeString)) 162 return GroupType.SUBSTANCE; 163 throw new IllegalArgumentException("Unknown GroupType code '"+codeString+"'"); 164 } 165 public Enumeration<GroupType> fromType(Base code) throws FHIRException { 166 if (code == null) 167 return null; 168 if (code.isEmpty()) 169 return new Enumeration<GroupType>(this); 170 String codeString = ((PrimitiveType) code).asStringValue(); 171 if (codeString == null || "".equals(codeString)) 172 return null; 173 if ("person".equals(codeString)) 174 return new Enumeration<GroupType>(this, GroupType.PERSON); 175 if ("animal".equals(codeString)) 176 return new Enumeration<GroupType>(this, GroupType.ANIMAL); 177 if ("practitioner".equals(codeString)) 178 return new Enumeration<GroupType>(this, GroupType.PRACTITIONER); 179 if ("device".equals(codeString)) 180 return new Enumeration<GroupType>(this, GroupType.DEVICE); 181 if ("medication".equals(codeString)) 182 return new Enumeration<GroupType>(this, GroupType.MEDICATION); 183 if ("substance".equals(codeString)) 184 return new Enumeration<GroupType>(this, GroupType.SUBSTANCE); 185 throw new FHIRException("Unknown GroupType code '"+codeString+"'"); 186 } 187 public String toCode(GroupType code) { 188 if (code == GroupType.PERSON) 189 return "person"; 190 if (code == GroupType.ANIMAL) 191 return "animal"; 192 if (code == GroupType.PRACTITIONER) 193 return "practitioner"; 194 if (code == GroupType.DEVICE) 195 return "device"; 196 if (code == GroupType.MEDICATION) 197 return "medication"; 198 if (code == GroupType.SUBSTANCE) 199 return "substance"; 200 return "?"; 201 } 202 public String toSystem(GroupType code) { 203 return code.getSystem(); 204 } 205 } 206 207 @Block() 208 public static class GroupCharacteristicComponent extends BackboneElement implements IBaseBackboneElement { 209 /** 210 * A code that identifies the kind of trait being asserted. 211 */ 212 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 213 @Description(shortDefinition="Kind of characteristic", formalDefinition="A code that identifies the kind of trait being asserted." ) 214 protected CodeableConcept code; 215 216 /** 217 * The value of the trait that holds (or does not hold - see 'exclude') for members of the group. 218 */ 219 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class}, order=2, min=1, max=1, modifier=false, summary=false) 220 @Description(shortDefinition="Value held by characteristic", formalDefinition="The value of the trait that holds (or does not hold - see 'exclude') for members of the group." ) 221 protected Type value; 222 223 /** 224 * If true, indicates the characteristic is one that is NOT held by members of the group. 225 */ 226 @Child(name = "exclude", type = {BooleanType.class}, order=3, min=1, max=1, modifier=false, summary=false) 227 @Description(shortDefinition="Group includes or excludes", formalDefinition="If true, indicates the characteristic is one that is NOT held by members of the group." ) 228 protected BooleanType exclude; 229 230 /** 231 * The period over which the characteristic is tested; e.g. the patient had an operation during the month of June. 232 */ 233 @Child(name = "period", type = {Period.class}, order=4, min=0, max=1, modifier=false, summary=false) 234 @Description(shortDefinition="Period over which characteristic is tested", formalDefinition="The period over which the characteristic is tested; e.g. the patient had an operation during the month of June." ) 235 protected Period period; 236 237 private static final long serialVersionUID = -1000688967L; 238 239 /** 240 * Constructor 241 */ 242 public GroupCharacteristicComponent() { 243 super(); 244 } 245 246 /** 247 * Constructor 248 */ 249 public GroupCharacteristicComponent(CodeableConcept code, Type value, BooleanType exclude) { 250 super(); 251 this.code = code; 252 this.value = value; 253 this.exclude = exclude; 254 } 255 256 /** 257 * @return {@link #code} (A code that identifies the kind of trait being asserted.) 258 */ 259 public CodeableConcept getCode() { 260 if (this.code == null) 261 if (Configuration.errorOnAutoCreate()) 262 throw new Error("Attempt to auto-create GroupCharacteristicComponent.code"); 263 else if (Configuration.doAutoCreate()) 264 this.code = new CodeableConcept(); // cc 265 return this.code; 266 } 267 268 public boolean hasCode() { 269 return this.code != null && !this.code.isEmpty(); 270 } 271 272 /** 273 * @param value {@link #code} (A code that identifies the kind of trait being asserted.) 274 */ 275 public GroupCharacteristicComponent setCode(CodeableConcept value) { 276 this.code = value; 277 return this; 278 } 279 280 /** 281 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 282 */ 283 public Type getValue() { 284 return this.value; 285 } 286 287 /** 288 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 289 */ 290 public CodeableConcept getValueCodeableConcept() throws FHIRException { 291 if (this.value == null) 292 return null; 293 if (!(this.value instanceof CodeableConcept)) 294 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 295 return (CodeableConcept) this.value; 296 } 297 298 public boolean hasValueCodeableConcept() { 299 return this != null && this.value instanceof CodeableConcept; 300 } 301 302 /** 303 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 304 */ 305 public BooleanType getValueBooleanType() throws FHIRException { 306 if (this.value == null) 307 return null; 308 if (!(this.value instanceof BooleanType)) 309 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 310 return (BooleanType) this.value; 311 } 312 313 public boolean hasValueBooleanType() { 314 return this != null && this.value instanceof BooleanType; 315 } 316 317 /** 318 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 319 */ 320 public Quantity getValueQuantity() throws FHIRException { 321 if (this.value == null) 322 return null; 323 if (!(this.value instanceof Quantity)) 324 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 325 return (Quantity) this.value; 326 } 327 328 public boolean hasValueQuantity() { 329 return this != null && this.value instanceof Quantity; 330 } 331 332 /** 333 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 334 */ 335 public Range getValueRange() throws FHIRException { 336 if (this.value == null) 337 return null; 338 if (!(this.value instanceof Range)) 339 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 340 return (Range) this.value; 341 } 342 343 public boolean hasValueRange() { 344 return this != null && this.value instanceof Range; 345 } 346 347 public boolean hasValue() { 348 return this.value != null && !this.value.isEmpty(); 349 } 350 351 /** 352 * @param value {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 353 */ 354 public GroupCharacteristicComponent setValue(Type value) { 355 if (value != null && !(value instanceof CodeableConcept || value instanceof BooleanType || value instanceof Quantity || value instanceof Range)) 356 throw new Error("Not the right type for Group.characteristic.value[x]: "+value.fhirType()); 357 this.value = value; 358 return this; 359 } 360 361 /** 362 * @return {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 363 */ 364 public BooleanType getExcludeElement() { 365 if (this.exclude == null) 366 if (Configuration.errorOnAutoCreate()) 367 throw new Error("Attempt to auto-create GroupCharacteristicComponent.exclude"); 368 else if (Configuration.doAutoCreate()) 369 this.exclude = new BooleanType(); // bb 370 return this.exclude; 371 } 372 373 public boolean hasExcludeElement() { 374 return this.exclude != null && !this.exclude.isEmpty(); 375 } 376 377 public boolean hasExclude() { 378 return this.exclude != null && !this.exclude.isEmpty(); 379 } 380 381 /** 382 * @param value {@link #exclude} (If true, indicates the characteristic is one that is NOT held by members of the group.). This is the underlying object with id, value and extensions. The accessor "getExclude" gives direct access to the value 383 */ 384 public GroupCharacteristicComponent setExcludeElement(BooleanType value) { 385 this.exclude = value; 386 return this; 387 } 388 389 /** 390 * @return If true, indicates the characteristic is one that is NOT held by members of the group. 391 */ 392 public boolean getExclude() { 393 return this.exclude == null || this.exclude.isEmpty() ? false : this.exclude.getValue(); 394 } 395 396 /** 397 * @param value If true, indicates the characteristic is one that is NOT held by members of the group. 398 */ 399 public GroupCharacteristicComponent setExclude(boolean value) { 400 if (this.exclude == null) 401 this.exclude = new BooleanType(); 402 this.exclude.setValue(value); 403 return this; 404 } 405 406 /** 407 * @return {@link #period} (The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.) 408 */ 409 public Period getPeriod() { 410 if (this.period == null) 411 if (Configuration.errorOnAutoCreate()) 412 throw new Error("Attempt to auto-create GroupCharacteristicComponent.period"); 413 else if (Configuration.doAutoCreate()) 414 this.period = new Period(); // cc 415 return this.period; 416 } 417 418 public boolean hasPeriod() { 419 return this.period != null && !this.period.isEmpty(); 420 } 421 422 /** 423 * @param value {@link #period} (The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.) 424 */ 425 public GroupCharacteristicComponent setPeriod(Period value) { 426 this.period = value; 427 return this; 428 } 429 430 protected void listChildren(List<Property> children) { 431 super.listChildren(children); 432 children.add(new Property("code", "CodeableConcept", "A code that identifies the kind of trait being asserted.", 0, 1, code)); 433 children.add(new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value)); 434 children.add(new Property("exclude", "boolean", "If true, indicates the characteristic is one that is NOT held by members of the group.", 0, 1, exclude)); 435 children.add(new Property("period", "Period", "The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.", 0, 1, period)); 436 } 437 438 @Override 439 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 440 switch (_hash) { 441 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "A code that identifies the kind of trait being asserted.", 0, 1, code); 442 case -1410166417: /*value[x]*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 443 case 111972721: /*value*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 444 case 924902896: /*valueCodeableConcept*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 445 case 733421943: /*valueBoolean*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 446 case -2029823716: /*valueQuantity*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 447 case 2030761548: /*valueRange*/ return new Property("value[x]", "CodeableConcept|boolean|Quantity|Range", "The value of the trait that holds (or does not hold - see 'exclude') for members of the group.", 0, 1, value); 448 case -1321148966: /*exclude*/ return new Property("exclude", "boolean", "If true, indicates the characteristic is one that is NOT held by members of the group.", 0, 1, exclude); 449 case -991726143: /*period*/ return new Property("period", "Period", "The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.", 0, 1, period); 450 default: return super.getNamedProperty(_hash, _name, _checkValid); 451 } 452 453 } 454 455 @Override 456 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 457 switch (hash) { 458 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 459 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // Type 460 case -1321148966: /*exclude*/ return this.exclude == null ? new Base[0] : new Base[] {this.exclude}; // BooleanType 461 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 462 default: return super.getProperty(hash, name, checkValid); 463 } 464 465 } 466 467 @Override 468 public Base setProperty(int hash, String name, Base value) throws FHIRException { 469 switch (hash) { 470 case 3059181: // code 471 this.code = castToCodeableConcept(value); // CodeableConcept 472 return value; 473 case 111972721: // value 474 this.value = castToType(value); // Type 475 return value; 476 case -1321148966: // exclude 477 this.exclude = castToBoolean(value); // BooleanType 478 return value; 479 case -991726143: // period 480 this.period = castToPeriod(value); // Period 481 return value; 482 default: return super.setProperty(hash, name, value); 483 } 484 485 } 486 487 @Override 488 public Base setProperty(String name, Base value) throws FHIRException { 489 if (name.equals("code")) { 490 this.code = castToCodeableConcept(value); // CodeableConcept 491 } else if (name.equals("value[x]")) { 492 this.value = castToType(value); // Type 493 } else if (name.equals("exclude")) { 494 this.exclude = castToBoolean(value); // BooleanType 495 } else if (name.equals("period")) { 496 this.period = castToPeriod(value); // Period 497 } else 498 return super.setProperty(name, value); 499 return value; 500 } 501 502 @Override 503 public Base makeProperty(int hash, String name) throws FHIRException { 504 switch (hash) { 505 case 3059181: return getCode(); 506 case -1410166417: return getValue(); 507 case 111972721: return getValue(); 508 case -1321148966: return getExcludeElement(); 509 case -991726143: return getPeriod(); 510 default: return super.makeProperty(hash, name); 511 } 512 513 } 514 515 @Override 516 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 517 switch (hash) { 518 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 519 case 111972721: /*value*/ return new String[] {"CodeableConcept", "boolean", "Quantity", "Range"}; 520 case -1321148966: /*exclude*/ return new String[] {"boolean"}; 521 case -991726143: /*period*/ return new String[] {"Period"}; 522 default: return super.getTypesForProperty(hash, name); 523 } 524 525 } 526 527 @Override 528 public Base addChild(String name) throws FHIRException { 529 if (name.equals("code")) { 530 this.code = new CodeableConcept(); 531 return this.code; 532 } 533 else if (name.equals("valueCodeableConcept")) { 534 this.value = new CodeableConcept(); 535 return this.value; 536 } 537 else if (name.equals("valueBoolean")) { 538 this.value = new BooleanType(); 539 return this.value; 540 } 541 else if (name.equals("valueQuantity")) { 542 this.value = new Quantity(); 543 return this.value; 544 } 545 else if (name.equals("valueRange")) { 546 this.value = new Range(); 547 return this.value; 548 } 549 else if (name.equals("exclude")) { 550 throw new FHIRException("Cannot call addChild on a primitive type Group.exclude"); 551 } 552 else if (name.equals("period")) { 553 this.period = new Period(); 554 return this.period; 555 } 556 else 557 return super.addChild(name); 558 } 559 560 public GroupCharacteristicComponent copy() { 561 GroupCharacteristicComponent dst = new GroupCharacteristicComponent(); 562 copyValues(dst); 563 dst.code = code == null ? null : code.copy(); 564 dst.value = value == null ? null : value.copy(); 565 dst.exclude = exclude == null ? null : exclude.copy(); 566 dst.period = period == null ? null : period.copy(); 567 return dst; 568 } 569 570 @Override 571 public boolean equalsDeep(Base other_) { 572 if (!super.equalsDeep(other_)) 573 return false; 574 if (!(other_ instanceof GroupCharacteristicComponent)) 575 return false; 576 GroupCharacteristicComponent o = (GroupCharacteristicComponent) other_; 577 return compareDeep(code, o.code, true) && compareDeep(value, o.value, true) && compareDeep(exclude, o.exclude, true) 578 && compareDeep(period, o.period, true); 579 } 580 581 @Override 582 public boolean equalsShallow(Base other_) { 583 if (!super.equalsShallow(other_)) 584 return false; 585 if (!(other_ instanceof GroupCharacteristicComponent)) 586 return false; 587 GroupCharacteristicComponent o = (GroupCharacteristicComponent) other_; 588 return compareValues(exclude, o.exclude, true); 589 } 590 591 public boolean isEmpty() { 592 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, value, exclude, period 593 ); 594 } 595 596 public String fhirType() { 597 return "Group.characteristic"; 598 599 } 600 601 } 602 603 @Block() 604 public static class GroupMemberComponent extends BackboneElement implements IBaseBackboneElement { 605 /** 606 * A reference to the entity that is a member of the group. Must be consistent with Group.type. 607 */ 608 @Child(name = "entity", type = {Patient.class, Practitioner.class, PractitionerRole.class, Device.class, Medication.class, Substance.class}, order=1, min=1, max=1, modifier=false, summary=false) 609 @Description(shortDefinition="Reference to the group member", formalDefinition="A reference to the entity that is a member of the group. Must be consistent with Group.type." ) 610 protected Reference entity; 611 612 /** 613 * The actual object that is the target of the reference (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 614 */ 615 protected Resource entityTarget; 616 617 /** 618 * The period that the member was in the group, if known. 619 */ 620 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 621 @Description(shortDefinition="Period member belonged to the group", formalDefinition="The period that the member was in the group, if known." ) 622 protected Period period; 623 624 /** 625 * A flag to indicate that the member is no longer in the group, but previously may have been a member. 626 */ 627 @Child(name = "inactive", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 628 @Description(shortDefinition="If member is no longer in group", formalDefinition="A flag to indicate that the member is no longer in the group, but previously may have been a member." ) 629 protected BooleanType inactive; 630 631 private static final long serialVersionUID = -333869055L; 632 633 /** 634 * Constructor 635 */ 636 public GroupMemberComponent() { 637 super(); 638 } 639 640 /** 641 * Constructor 642 */ 643 public GroupMemberComponent(Reference entity) { 644 super(); 645 this.entity = entity; 646 } 647 648 /** 649 * @return {@link #entity} (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 650 */ 651 public Reference getEntity() { 652 if (this.entity == null) 653 if (Configuration.errorOnAutoCreate()) 654 throw new Error("Attempt to auto-create GroupMemberComponent.entity"); 655 else if (Configuration.doAutoCreate()) 656 this.entity = new Reference(); // cc 657 return this.entity; 658 } 659 660 public boolean hasEntity() { 661 return this.entity != null && !this.entity.isEmpty(); 662 } 663 664 /** 665 * @param value {@link #entity} (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 666 */ 667 public GroupMemberComponent setEntity(Reference value) { 668 this.entity = value; 669 return this; 670 } 671 672 /** 673 * @return {@link #entity} 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. (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 674 */ 675 public Resource getEntityTarget() { 676 return this.entityTarget; 677 } 678 679 /** 680 * @param value {@link #entity} 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. (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 681 */ 682 public GroupMemberComponent setEntityTarget(Resource value) { 683 this.entityTarget = value; 684 return this; 685 } 686 687 /** 688 * @return {@link #period} (The period that the member was in the group, if known.) 689 */ 690 public Period getPeriod() { 691 if (this.period == null) 692 if (Configuration.errorOnAutoCreate()) 693 throw new Error("Attempt to auto-create GroupMemberComponent.period"); 694 else if (Configuration.doAutoCreate()) 695 this.period = new Period(); // cc 696 return this.period; 697 } 698 699 public boolean hasPeriod() { 700 return this.period != null && !this.period.isEmpty(); 701 } 702 703 /** 704 * @param value {@link #period} (The period that the member was in the group, if known.) 705 */ 706 public GroupMemberComponent setPeriod(Period value) { 707 this.period = value; 708 return this; 709 } 710 711 /** 712 * @return {@link #inactive} (A flag to indicate that the member is no longer in the group, but previously may have been a member.). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 713 */ 714 public BooleanType getInactiveElement() { 715 if (this.inactive == null) 716 if (Configuration.errorOnAutoCreate()) 717 throw new Error("Attempt to auto-create GroupMemberComponent.inactive"); 718 else if (Configuration.doAutoCreate()) 719 this.inactive = new BooleanType(); // bb 720 return this.inactive; 721 } 722 723 public boolean hasInactiveElement() { 724 return this.inactive != null && !this.inactive.isEmpty(); 725 } 726 727 public boolean hasInactive() { 728 return this.inactive != null && !this.inactive.isEmpty(); 729 } 730 731 /** 732 * @param value {@link #inactive} (A flag to indicate that the member is no longer in the group, but previously may have been a member.). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 733 */ 734 public GroupMemberComponent setInactiveElement(BooleanType value) { 735 this.inactive = value; 736 return this; 737 } 738 739 /** 740 * @return A flag to indicate that the member is no longer in the group, but previously may have been a member. 741 */ 742 public boolean getInactive() { 743 return this.inactive == null || this.inactive.isEmpty() ? false : this.inactive.getValue(); 744 } 745 746 /** 747 * @param value A flag to indicate that the member is no longer in the group, but previously may have been a member. 748 */ 749 public GroupMemberComponent setInactive(boolean value) { 750 if (this.inactive == null) 751 this.inactive = new BooleanType(); 752 this.inactive.setValue(value); 753 return this; 754 } 755 756 protected void listChildren(List<Property> children) { 757 super.listChildren(children); 758 children.add(new Property("entity", "Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance)", "A reference to the entity that is a member of the group. Must be consistent with Group.type.", 0, 1, entity)); 759 children.add(new Property("period", "Period", "The period that the member was in the group, if known.", 0, 1, period)); 760 children.add(new Property("inactive", "boolean", "A flag to indicate that the member is no longer in the group, but previously may have been a member.", 0, 1, inactive)); 761 } 762 763 @Override 764 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 765 switch (_hash) { 766 case -1298275357: /*entity*/ return new Property("entity", "Reference(Patient|Practitioner|PractitionerRole|Device|Medication|Substance)", "A reference to the entity that is a member of the group. Must be consistent with Group.type.", 0, 1, entity); 767 case -991726143: /*period*/ return new Property("period", "Period", "The period that the member was in the group, if known.", 0, 1, period); 768 case 24665195: /*inactive*/ return new Property("inactive", "boolean", "A flag to indicate that the member is no longer in the group, but previously may have been a member.", 0, 1, inactive); 769 default: return super.getNamedProperty(_hash, _name, _checkValid); 770 } 771 772 } 773 774 @Override 775 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 776 switch (hash) { 777 case -1298275357: /*entity*/ return this.entity == null ? new Base[0] : new Base[] {this.entity}; // Reference 778 case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period 779 case 24665195: /*inactive*/ return this.inactive == null ? new Base[0] : new Base[] {this.inactive}; // BooleanType 780 default: return super.getProperty(hash, name, checkValid); 781 } 782 783 } 784 785 @Override 786 public Base setProperty(int hash, String name, Base value) throws FHIRException { 787 switch (hash) { 788 case -1298275357: // entity 789 this.entity = castToReference(value); // Reference 790 return value; 791 case -991726143: // period 792 this.period = castToPeriod(value); // Period 793 return value; 794 case 24665195: // inactive 795 this.inactive = castToBoolean(value); // BooleanType 796 return value; 797 default: return super.setProperty(hash, name, value); 798 } 799 800 } 801 802 @Override 803 public Base setProperty(String name, Base value) throws FHIRException { 804 if (name.equals("entity")) { 805 this.entity = castToReference(value); // Reference 806 } else if (name.equals("period")) { 807 this.period = castToPeriod(value); // Period 808 } else if (name.equals("inactive")) { 809 this.inactive = castToBoolean(value); // BooleanType 810 } else 811 return super.setProperty(name, value); 812 return value; 813 } 814 815 @Override 816 public Base makeProperty(int hash, String name) throws FHIRException { 817 switch (hash) { 818 case -1298275357: return getEntity(); 819 case -991726143: return getPeriod(); 820 case 24665195: return getInactiveElement(); 821 default: return super.makeProperty(hash, name); 822 } 823 824 } 825 826 @Override 827 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 828 switch (hash) { 829 case -1298275357: /*entity*/ return new String[] {"Reference"}; 830 case -991726143: /*period*/ return new String[] {"Period"}; 831 case 24665195: /*inactive*/ return new String[] {"boolean"}; 832 default: return super.getTypesForProperty(hash, name); 833 } 834 835 } 836 837 @Override 838 public Base addChild(String name) throws FHIRException { 839 if (name.equals("entity")) { 840 this.entity = new Reference(); 841 return this.entity; 842 } 843 else if (name.equals("period")) { 844 this.period = new Period(); 845 return this.period; 846 } 847 else if (name.equals("inactive")) { 848 throw new FHIRException("Cannot call addChild on a primitive type Group.inactive"); 849 } 850 else 851 return super.addChild(name); 852 } 853 854 public GroupMemberComponent copy() { 855 GroupMemberComponent dst = new GroupMemberComponent(); 856 copyValues(dst); 857 dst.entity = entity == null ? null : entity.copy(); 858 dst.period = period == null ? null : period.copy(); 859 dst.inactive = inactive == null ? null : inactive.copy(); 860 return dst; 861 } 862 863 @Override 864 public boolean equalsDeep(Base other_) { 865 if (!super.equalsDeep(other_)) 866 return false; 867 if (!(other_ instanceof GroupMemberComponent)) 868 return false; 869 GroupMemberComponent o = (GroupMemberComponent) other_; 870 return compareDeep(entity, o.entity, true) && compareDeep(period, o.period, true) && compareDeep(inactive, o.inactive, true) 871 ; 872 } 873 874 @Override 875 public boolean equalsShallow(Base other_) { 876 if (!super.equalsShallow(other_)) 877 return false; 878 if (!(other_ instanceof GroupMemberComponent)) 879 return false; 880 GroupMemberComponent o = (GroupMemberComponent) other_; 881 return compareValues(inactive, o.inactive, true); 882 } 883 884 public boolean isEmpty() { 885 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(entity, period, inactive 886 ); 887 } 888 889 public String fhirType() { 890 return "Group.member"; 891 892 } 893 894 } 895 896 /** 897 * A unique business identifier for this group. 898 */ 899 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 900 @Description(shortDefinition="Unique id", formalDefinition="A unique business identifier for this group." ) 901 protected List<Identifier> identifier; 902 903 /** 904 * Indicates whether the record for the group is available for use or is merely being retained for historical purposes. 905 */ 906 @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 907 @Description(shortDefinition="Whether this group's record is in active use", formalDefinition="Indicates whether the record for the group is available for use or is merely being retained for historical purposes." ) 908 protected BooleanType active; 909 910 /** 911 * Identifies the broad classification of the kind of resources the group includes. 912 */ 913 @Child(name = "type", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 914 @Description(shortDefinition="person | animal | practitioner | device | medication | substance", formalDefinition="Identifies the broad classification of the kind of resources the group includes." ) 915 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/group-type") 916 protected Enumeration<GroupType> type; 917 918 /** 919 * If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. 920 */ 921 @Child(name = "actual", type = {BooleanType.class}, order=3, min=1, max=1, modifier=false, summary=true) 922 @Description(shortDefinition="Descriptive or actual", formalDefinition="If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals." ) 923 protected BooleanType actual; 924 925 /** 926 * Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc. 927 */ 928 @Child(name = "code", type = {CodeableConcept.class}, order=4, min=0, max=1, modifier=false, summary=true) 929 @Description(shortDefinition="Kind of Group members", formalDefinition="Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc." ) 930 protected CodeableConcept code; 931 932 /** 933 * A label assigned to the group for human identification and communication. 934 */ 935 @Child(name = "name", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=true) 936 @Description(shortDefinition="Label for Group", formalDefinition="A label assigned to the group for human identification and communication." ) 937 protected StringType name; 938 939 /** 940 * A count of the number of resource instances that are part of the group. 941 */ 942 @Child(name = "quantity", type = {UnsignedIntType.class}, order=6, min=0, max=1, modifier=false, summary=true) 943 @Description(shortDefinition="Number of members", formalDefinition="A count of the number of resource instances that are part of the group." ) 944 protected UnsignedIntType quantity; 945 946 /** 947 * Identifies traits whose presence r absence is shared by members of the group. 948 */ 949 @Child(name = "characteristic", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 950 @Description(shortDefinition="Include / Exclude group members by Trait", formalDefinition="Identifies traits whose presence r absence is shared by members of the group." ) 951 protected List<GroupCharacteristicComponent> characteristic; 952 953 /** 954 * Identifies the resource instances that are members of the group. 955 */ 956 @Child(name = "member", type = {}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 957 @Description(shortDefinition="Who or what is in group", formalDefinition="Identifies the resource instances that are members of the group." ) 958 protected List<GroupMemberComponent> member; 959 960 private static final long serialVersionUID = 659980713L; 961 962 /** 963 * Constructor 964 */ 965 public Group() { 966 super(); 967 } 968 969 /** 970 * Constructor 971 */ 972 public Group(Enumeration<GroupType> type, BooleanType actual) { 973 super(); 974 this.type = type; 975 this.actual = actual; 976 } 977 978 /** 979 * @return {@link #identifier} (A unique business identifier for this group.) 980 */ 981 public List<Identifier> getIdentifier() { 982 if (this.identifier == null) 983 this.identifier = new ArrayList<Identifier>(); 984 return this.identifier; 985 } 986 987 /** 988 * @return Returns a reference to <code>this</code> for easy method chaining 989 */ 990 public Group setIdentifier(List<Identifier> theIdentifier) { 991 this.identifier = theIdentifier; 992 return this; 993 } 994 995 public boolean hasIdentifier() { 996 if (this.identifier == null) 997 return false; 998 for (Identifier item : this.identifier) 999 if (!item.isEmpty()) 1000 return true; 1001 return false; 1002 } 1003 1004 public Identifier addIdentifier() { //3 1005 Identifier t = new Identifier(); 1006 if (this.identifier == null) 1007 this.identifier = new ArrayList<Identifier>(); 1008 this.identifier.add(t); 1009 return t; 1010 } 1011 1012 public Group addIdentifier(Identifier t) { //3 1013 if (t == null) 1014 return this; 1015 if (this.identifier == null) 1016 this.identifier = new ArrayList<Identifier>(); 1017 this.identifier.add(t); 1018 return this; 1019 } 1020 1021 /** 1022 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 1023 */ 1024 public Identifier getIdentifierFirstRep() { 1025 if (getIdentifier().isEmpty()) { 1026 addIdentifier(); 1027 } 1028 return getIdentifier().get(0); 1029 } 1030 1031 /** 1032 * @return {@link #active} (Indicates whether the record for the group is available for use or is merely being retained for historical purposes.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1033 */ 1034 public BooleanType getActiveElement() { 1035 if (this.active == null) 1036 if (Configuration.errorOnAutoCreate()) 1037 throw new Error("Attempt to auto-create Group.active"); 1038 else if (Configuration.doAutoCreate()) 1039 this.active = new BooleanType(); // bb 1040 return this.active; 1041 } 1042 1043 public boolean hasActiveElement() { 1044 return this.active != null && !this.active.isEmpty(); 1045 } 1046 1047 public boolean hasActive() { 1048 return this.active != null && !this.active.isEmpty(); 1049 } 1050 1051 /** 1052 * @param value {@link #active} (Indicates whether the record for the group is available for use or is merely being retained for historical purposes.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value 1053 */ 1054 public Group setActiveElement(BooleanType value) { 1055 this.active = value; 1056 return this; 1057 } 1058 1059 /** 1060 * @return Indicates whether the record for the group is available for use or is merely being retained for historical purposes. 1061 */ 1062 public boolean getActive() { 1063 return this.active == null || this.active.isEmpty() ? false : this.active.getValue(); 1064 } 1065 1066 /** 1067 * @param value Indicates whether the record for the group is available for use or is merely being retained for historical purposes. 1068 */ 1069 public Group setActive(boolean value) { 1070 if (this.active == null) 1071 this.active = new BooleanType(); 1072 this.active.setValue(value); 1073 return this; 1074 } 1075 1076 /** 1077 * @return {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1078 */ 1079 public Enumeration<GroupType> getTypeElement() { 1080 if (this.type == null) 1081 if (Configuration.errorOnAutoCreate()) 1082 throw new Error("Attempt to auto-create Group.type"); 1083 else if (Configuration.doAutoCreate()) 1084 this.type = new Enumeration<GroupType>(new GroupTypeEnumFactory()); // bb 1085 return this.type; 1086 } 1087 1088 public boolean hasTypeElement() { 1089 return this.type != null && !this.type.isEmpty(); 1090 } 1091 1092 public boolean hasType() { 1093 return this.type != null && !this.type.isEmpty(); 1094 } 1095 1096 /** 1097 * @param value {@link #type} (Identifies the broad classification of the kind of resources the group includes.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1098 */ 1099 public Group setTypeElement(Enumeration<GroupType> value) { 1100 this.type = value; 1101 return this; 1102 } 1103 1104 /** 1105 * @return Identifies the broad classification of the kind of resources the group includes. 1106 */ 1107 public GroupType getType() { 1108 return this.type == null ? null : this.type.getValue(); 1109 } 1110 1111 /** 1112 * @param value Identifies the broad classification of the kind of resources the group includes. 1113 */ 1114 public Group setType(GroupType value) { 1115 if (this.type == null) 1116 this.type = new Enumeration<GroupType>(new GroupTypeEnumFactory()); 1117 this.type.setValue(value); 1118 return this; 1119 } 1120 1121 /** 1122 * @return {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value 1123 */ 1124 public BooleanType getActualElement() { 1125 if (this.actual == null) 1126 if (Configuration.errorOnAutoCreate()) 1127 throw new Error("Attempt to auto-create Group.actual"); 1128 else if (Configuration.doAutoCreate()) 1129 this.actual = new BooleanType(); // bb 1130 return this.actual; 1131 } 1132 1133 public boolean hasActualElement() { 1134 return this.actual != null && !this.actual.isEmpty(); 1135 } 1136 1137 public boolean hasActual() { 1138 return this.actual != null && !this.actual.isEmpty(); 1139 } 1140 1141 /** 1142 * @param value {@link #actual} (If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.). This is the underlying object with id, value and extensions. The accessor "getActual" gives direct access to the value 1143 */ 1144 public Group setActualElement(BooleanType value) { 1145 this.actual = value; 1146 return this; 1147 } 1148 1149 /** 1150 * @return If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. 1151 */ 1152 public boolean getActual() { 1153 return this.actual == null || this.actual.isEmpty() ? false : this.actual.getValue(); 1154 } 1155 1156 /** 1157 * @param value If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. 1158 */ 1159 public Group setActual(boolean value) { 1160 if (this.actual == null) 1161 this.actual = new BooleanType(); 1162 this.actual.setValue(value); 1163 return this; 1164 } 1165 1166 /** 1167 * @return {@link #code} (Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc.) 1168 */ 1169 public CodeableConcept getCode() { 1170 if (this.code == null) 1171 if (Configuration.errorOnAutoCreate()) 1172 throw new Error("Attempt to auto-create Group.code"); 1173 else if (Configuration.doAutoCreate()) 1174 this.code = new CodeableConcept(); // cc 1175 return this.code; 1176 } 1177 1178 public boolean hasCode() { 1179 return this.code != null && !this.code.isEmpty(); 1180 } 1181 1182 /** 1183 * @param value {@link #code} (Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc.) 1184 */ 1185 public Group setCode(CodeableConcept value) { 1186 this.code = value; 1187 return this; 1188 } 1189 1190 /** 1191 * @return {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1192 */ 1193 public StringType getNameElement() { 1194 if (this.name == null) 1195 if (Configuration.errorOnAutoCreate()) 1196 throw new Error("Attempt to auto-create Group.name"); 1197 else if (Configuration.doAutoCreate()) 1198 this.name = new StringType(); // bb 1199 return this.name; 1200 } 1201 1202 public boolean hasNameElement() { 1203 return this.name != null && !this.name.isEmpty(); 1204 } 1205 1206 public boolean hasName() { 1207 return this.name != null && !this.name.isEmpty(); 1208 } 1209 1210 /** 1211 * @param value {@link #name} (A label assigned to the group for human identification and communication.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 1212 */ 1213 public Group setNameElement(StringType value) { 1214 this.name = value; 1215 return this; 1216 } 1217 1218 /** 1219 * @return A label assigned to the group for human identification and communication. 1220 */ 1221 public String getName() { 1222 return this.name == null ? null : this.name.getValue(); 1223 } 1224 1225 /** 1226 * @param value A label assigned to the group for human identification and communication. 1227 */ 1228 public Group setName(String value) { 1229 if (Utilities.noString(value)) 1230 this.name = null; 1231 else { 1232 if (this.name == null) 1233 this.name = new StringType(); 1234 this.name.setValue(value); 1235 } 1236 return this; 1237 } 1238 1239 /** 1240 * @return {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value 1241 */ 1242 public UnsignedIntType getQuantityElement() { 1243 if (this.quantity == null) 1244 if (Configuration.errorOnAutoCreate()) 1245 throw new Error("Attempt to auto-create Group.quantity"); 1246 else if (Configuration.doAutoCreate()) 1247 this.quantity = new UnsignedIntType(); // bb 1248 return this.quantity; 1249 } 1250 1251 public boolean hasQuantityElement() { 1252 return this.quantity != null && !this.quantity.isEmpty(); 1253 } 1254 1255 public boolean hasQuantity() { 1256 return this.quantity != null && !this.quantity.isEmpty(); 1257 } 1258 1259 /** 1260 * @param value {@link #quantity} (A count of the number of resource instances that are part of the group.). This is the underlying object with id, value and extensions. The accessor "getQuantity" gives direct access to the value 1261 */ 1262 public Group setQuantityElement(UnsignedIntType value) { 1263 this.quantity = value; 1264 return this; 1265 } 1266 1267 /** 1268 * @return A count of the number of resource instances that are part of the group. 1269 */ 1270 public int getQuantity() { 1271 return this.quantity == null || this.quantity.isEmpty() ? 0 : this.quantity.getValue(); 1272 } 1273 1274 /** 1275 * @param value A count of the number of resource instances that are part of the group. 1276 */ 1277 public Group setQuantity(int value) { 1278 if (this.quantity == null) 1279 this.quantity = new UnsignedIntType(); 1280 this.quantity.setValue(value); 1281 return this; 1282 } 1283 1284 /** 1285 * @return {@link #characteristic} (Identifies traits whose presence r absence is shared by members of the group.) 1286 */ 1287 public List<GroupCharacteristicComponent> getCharacteristic() { 1288 if (this.characteristic == null) 1289 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1290 return this.characteristic; 1291 } 1292 1293 /** 1294 * @return Returns a reference to <code>this</code> for easy method chaining 1295 */ 1296 public Group setCharacteristic(List<GroupCharacteristicComponent> theCharacteristic) { 1297 this.characteristic = theCharacteristic; 1298 return this; 1299 } 1300 1301 public boolean hasCharacteristic() { 1302 if (this.characteristic == null) 1303 return false; 1304 for (GroupCharacteristicComponent item : this.characteristic) 1305 if (!item.isEmpty()) 1306 return true; 1307 return false; 1308 } 1309 1310 public GroupCharacteristicComponent addCharacteristic() { //3 1311 GroupCharacteristicComponent t = new GroupCharacteristicComponent(); 1312 if (this.characteristic == null) 1313 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1314 this.characteristic.add(t); 1315 return t; 1316 } 1317 1318 public Group addCharacteristic(GroupCharacteristicComponent t) { //3 1319 if (t == null) 1320 return this; 1321 if (this.characteristic == null) 1322 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1323 this.characteristic.add(t); 1324 return this; 1325 } 1326 1327 /** 1328 * @return The first repetition of repeating field {@link #characteristic}, creating it if it does not already exist 1329 */ 1330 public GroupCharacteristicComponent getCharacteristicFirstRep() { 1331 if (getCharacteristic().isEmpty()) { 1332 addCharacteristic(); 1333 } 1334 return getCharacteristic().get(0); 1335 } 1336 1337 /** 1338 * @return {@link #member} (Identifies the resource instances that are members of the group.) 1339 */ 1340 public List<GroupMemberComponent> getMember() { 1341 if (this.member == null) 1342 this.member = new ArrayList<GroupMemberComponent>(); 1343 return this.member; 1344 } 1345 1346 /** 1347 * @return Returns a reference to <code>this</code> for easy method chaining 1348 */ 1349 public Group setMember(List<GroupMemberComponent> theMember) { 1350 this.member = theMember; 1351 return this; 1352 } 1353 1354 public boolean hasMember() { 1355 if (this.member == null) 1356 return false; 1357 for (GroupMemberComponent item : this.member) 1358 if (!item.isEmpty()) 1359 return true; 1360 return false; 1361 } 1362 1363 public GroupMemberComponent addMember() { //3 1364 GroupMemberComponent t = new GroupMemberComponent(); 1365 if (this.member == null) 1366 this.member = new ArrayList<GroupMemberComponent>(); 1367 this.member.add(t); 1368 return t; 1369 } 1370 1371 public Group addMember(GroupMemberComponent t) { //3 1372 if (t == null) 1373 return this; 1374 if (this.member == null) 1375 this.member = new ArrayList<GroupMemberComponent>(); 1376 this.member.add(t); 1377 return this; 1378 } 1379 1380 /** 1381 * @return The first repetition of repeating field {@link #member}, creating it if it does not already exist 1382 */ 1383 public GroupMemberComponent getMemberFirstRep() { 1384 if (getMember().isEmpty()) { 1385 addMember(); 1386 } 1387 return getMember().get(0); 1388 } 1389 1390 protected void listChildren(List<Property> children) { 1391 super.listChildren(children); 1392 children.add(new Property("identifier", "Identifier", "A unique business identifier for this group.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1393 children.add(new Property("active", "boolean", "Indicates whether the record for the group is available for use or is merely being retained for historical purposes.", 0, 1, active)); 1394 children.add(new Property("type", "code", "Identifies the broad classification of the kind of resources the group includes.", 0, 1, type)); 1395 children.add(new Property("actual", "boolean", "If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.", 0, 1, actual)); 1396 children.add(new Property("code", "CodeableConcept", "Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc.", 0, 1, code)); 1397 children.add(new Property("name", "string", "A label assigned to the group for human identification and communication.", 0, 1, name)); 1398 children.add(new Property("quantity", "unsignedInt", "A count of the number of resource instances that are part of the group.", 0, 1, quantity)); 1399 children.add(new Property("characteristic", "", "Identifies traits whose presence r absence is shared by members of the group.", 0, java.lang.Integer.MAX_VALUE, characteristic)); 1400 children.add(new Property("member", "", "Identifies the resource instances that are members of the group.", 0, java.lang.Integer.MAX_VALUE, member)); 1401 } 1402 1403 @Override 1404 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1405 switch (_hash) { 1406 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A unique business identifier for this group.", 0, java.lang.Integer.MAX_VALUE, identifier); 1407 case -1422950650: /*active*/ return new Property("active", "boolean", "Indicates whether the record for the group is available for use or is merely being retained for historical purposes.", 0, 1, active); 1408 case 3575610: /*type*/ return new Property("type", "code", "Identifies the broad classification of the kind of resources the group includes.", 0, 1, type); 1409 case -1422939762: /*actual*/ return new Property("actual", "boolean", "If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals.", 0, 1, actual); 1410 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc.", 0, 1, code); 1411 case 3373707: /*name*/ return new Property("name", "string", "A label assigned to the group for human identification and communication.", 0, 1, name); 1412 case -1285004149: /*quantity*/ return new Property("quantity", "unsignedInt", "A count of the number of resource instances that are part of the group.", 0, 1, quantity); 1413 case 366313883: /*characteristic*/ return new Property("characteristic", "", "Identifies traits whose presence r absence is shared by members of the group.", 0, java.lang.Integer.MAX_VALUE, characteristic); 1414 case -1077769574: /*member*/ return new Property("member", "", "Identifies the resource instances that are members of the group.", 0, java.lang.Integer.MAX_VALUE, member); 1415 default: return super.getNamedProperty(_hash, _name, _checkValid); 1416 } 1417 1418 } 1419 1420 @Override 1421 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1422 switch (hash) { 1423 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 1424 case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType 1425 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<GroupType> 1426 case -1422939762: /*actual*/ return this.actual == null ? new Base[0] : new Base[] {this.actual}; // BooleanType 1427 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 1428 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 1429 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // UnsignedIntType 1430 case 366313883: /*characteristic*/ return this.characteristic == null ? new Base[0] : this.characteristic.toArray(new Base[this.characteristic.size()]); // GroupCharacteristicComponent 1431 case -1077769574: /*member*/ return this.member == null ? new Base[0] : this.member.toArray(new Base[this.member.size()]); // GroupMemberComponent 1432 default: return super.getProperty(hash, name, checkValid); 1433 } 1434 1435 } 1436 1437 @Override 1438 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1439 switch (hash) { 1440 case -1618432855: // identifier 1441 this.getIdentifier().add(castToIdentifier(value)); // Identifier 1442 return value; 1443 case -1422950650: // active 1444 this.active = castToBoolean(value); // BooleanType 1445 return value; 1446 case 3575610: // type 1447 value = new GroupTypeEnumFactory().fromType(castToCode(value)); 1448 this.type = (Enumeration) value; // Enumeration<GroupType> 1449 return value; 1450 case -1422939762: // actual 1451 this.actual = castToBoolean(value); // BooleanType 1452 return value; 1453 case 3059181: // code 1454 this.code = castToCodeableConcept(value); // CodeableConcept 1455 return value; 1456 case 3373707: // name 1457 this.name = castToString(value); // StringType 1458 return value; 1459 case -1285004149: // quantity 1460 this.quantity = castToUnsignedInt(value); // UnsignedIntType 1461 return value; 1462 case 366313883: // characteristic 1463 this.getCharacteristic().add((GroupCharacteristicComponent) value); // GroupCharacteristicComponent 1464 return value; 1465 case -1077769574: // member 1466 this.getMember().add((GroupMemberComponent) value); // GroupMemberComponent 1467 return value; 1468 default: return super.setProperty(hash, name, value); 1469 } 1470 1471 } 1472 1473 @Override 1474 public Base setProperty(String name, Base value) throws FHIRException { 1475 if (name.equals("identifier")) { 1476 this.getIdentifier().add(castToIdentifier(value)); 1477 } else if (name.equals("active")) { 1478 this.active = castToBoolean(value); // BooleanType 1479 } else if (name.equals("type")) { 1480 value = new GroupTypeEnumFactory().fromType(castToCode(value)); 1481 this.type = (Enumeration) value; // Enumeration<GroupType> 1482 } else if (name.equals("actual")) { 1483 this.actual = castToBoolean(value); // BooleanType 1484 } else if (name.equals("code")) { 1485 this.code = castToCodeableConcept(value); // CodeableConcept 1486 } else if (name.equals("name")) { 1487 this.name = castToString(value); // StringType 1488 } else if (name.equals("quantity")) { 1489 this.quantity = castToUnsignedInt(value); // UnsignedIntType 1490 } else if (name.equals("characteristic")) { 1491 this.getCharacteristic().add((GroupCharacteristicComponent) value); 1492 } else if (name.equals("member")) { 1493 this.getMember().add((GroupMemberComponent) value); 1494 } else 1495 return super.setProperty(name, value); 1496 return value; 1497 } 1498 1499 @Override 1500 public Base makeProperty(int hash, String name) throws FHIRException { 1501 switch (hash) { 1502 case -1618432855: return addIdentifier(); 1503 case -1422950650: return getActiveElement(); 1504 case 3575610: return getTypeElement(); 1505 case -1422939762: return getActualElement(); 1506 case 3059181: return getCode(); 1507 case 3373707: return getNameElement(); 1508 case -1285004149: return getQuantityElement(); 1509 case 366313883: return addCharacteristic(); 1510 case -1077769574: return addMember(); 1511 default: return super.makeProperty(hash, name); 1512 } 1513 1514 } 1515 1516 @Override 1517 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1518 switch (hash) { 1519 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 1520 case -1422950650: /*active*/ return new String[] {"boolean"}; 1521 case 3575610: /*type*/ return new String[] {"code"}; 1522 case -1422939762: /*actual*/ return new String[] {"boolean"}; 1523 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 1524 case 3373707: /*name*/ return new String[] {"string"}; 1525 case -1285004149: /*quantity*/ return new String[] {"unsignedInt"}; 1526 case 366313883: /*characteristic*/ return new String[] {}; 1527 case -1077769574: /*member*/ return new String[] {}; 1528 default: return super.getTypesForProperty(hash, name); 1529 } 1530 1531 } 1532 1533 @Override 1534 public Base addChild(String name) throws FHIRException { 1535 if (name.equals("identifier")) { 1536 return addIdentifier(); 1537 } 1538 else if (name.equals("active")) { 1539 throw new FHIRException("Cannot call addChild on a primitive type Group.active"); 1540 } 1541 else if (name.equals("type")) { 1542 throw new FHIRException("Cannot call addChild on a primitive type Group.type"); 1543 } 1544 else if (name.equals("actual")) { 1545 throw new FHIRException("Cannot call addChild on a primitive type Group.actual"); 1546 } 1547 else if (name.equals("code")) { 1548 this.code = new CodeableConcept(); 1549 return this.code; 1550 } 1551 else if (name.equals("name")) { 1552 throw new FHIRException("Cannot call addChild on a primitive type Group.name"); 1553 } 1554 else if (name.equals("quantity")) { 1555 throw new FHIRException("Cannot call addChild on a primitive type Group.quantity"); 1556 } 1557 else if (name.equals("characteristic")) { 1558 return addCharacteristic(); 1559 } 1560 else if (name.equals("member")) { 1561 return addMember(); 1562 } 1563 else 1564 return super.addChild(name); 1565 } 1566 1567 public String fhirType() { 1568 return "Group"; 1569 1570 } 1571 1572 public Group copy() { 1573 Group dst = new Group(); 1574 copyValues(dst); 1575 if (identifier != null) { 1576 dst.identifier = new ArrayList<Identifier>(); 1577 for (Identifier i : identifier) 1578 dst.identifier.add(i.copy()); 1579 }; 1580 dst.active = active == null ? null : active.copy(); 1581 dst.type = type == null ? null : type.copy(); 1582 dst.actual = actual == null ? null : actual.copy(); 1583 dst.code = code == null ? null : code.copy(); 1584 dst.name = name == null ? null : name.copy(); 1585 dst.quantity = quantity == null ? null : quantity.copy(); 1586 if (characteristic != null) { 1587 dst.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1588 for (GroupCharacteristicComponent i : characteristic) 1589 dst.characteristic.add(i.copy()); 1590 }; 1591 if (member != null) { 1592 dst.member = new ArrayList<GroupMemberComponent>(); 1593 for (GroupMemberComponent i : member) 1594 dst.member.add(i.copy()); 1595 }; 1596 return dst; 1597 } 1598 1599 protected Group typedCopy() { 1600 return copy(); 1601 } 1602 1603 @Override 1604 public boolean equalsDeep(Base other_) { 1605 if (!super.equalsDeep(other_)) 1606 return false; 1607 if (!(other_ instanceof Group)) 1608 return false; 1609 Group o = (Group) other_; 1610 return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(type, o.type, true) 1611 && compareDeep(actual, o.actual, true) && compareDeep(code, o.code, true) && compareDeep(name, o.name, true) 1612 && compareDeep(quantity, o.quantity, true) && compareDeep(characteristic, o.characteristic, true) 1613 && compareDeep(member, o.member, true); 1614 } 1615 1616 @Override 1617 public boolean equalsShallow(Base other_) { 1618 if (!super.equalsShallow(other_)) 1619 return false; 1620 if (!(other_ instanceof Group)) 1621 return false; 1622 Group o = (Group) other_; 1623 return compareValues(active, o.active, true) && compareValues(type, o.type, true) && compareValues(actual, o.actual, true) 1624 && compareValues(name, o.name, true) && compareValues(quantity, o.quantity, true); 1625 } 1626 1627 public boolean isEmpty() { 1628 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, type 1629 , actual, code, name, quantity, characteristic, member); 1630 } 1631 1632 @Override 1633 public ResourceType getResourceType() { 1634 return ResourceType.Group; 1635 } 1636 1637 /** 1638 * Search parameter: <b>actual</b> 1639 * <p> 1640 * Description: <b>Descriptive or actual</b><br> 1641 * Type: <b>token</b><br> 1642 * Path: <b>Group.actual</b><br> 1643 * </p> 1644 */ 1645 @SearchParamDefinition(name="actual", path="Group.actual", description="Descriptive or actual", type="token" ) 1646 public static final String SP_ACTUAL = "actual"; 1647 /** 1648 * <b>Fluent Client</b> search parameter constant for <b>actual</b> 1649 * <p> 1650 * Description: <b>Descriptive or actual</b><br> 1651 * Type: <b>token</b><br> 1652 * Path: <b>Group.actual</b><br> 1653 * </p> 1654 */ 1655 public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTUAL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTUAL); 1656 1657 /** 1658 * Search parameter: <b>identifier</b> 1659 * <p> 1660 * Description: <b>Unique id</b><br> 1661 * Type: <b>token</b><br> 1662 * Path: <b>Group.identifier</b><br> 1663 * </p> 1664 */ 1665 @SearchParamDefinition(name="identifier", path="Group.identifier", description="Unique id", type="token" ) 1666 public static final String SP_IDENTIFIER = "identifier"; 1667 /** 1668 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 1669 * <p> 1670 * Description: <b>Unique id</b><br> 1671 * Type: <b>token</b><br> 1672 * Path: <b>Group.identifier</b><br> 1673 * </p> 1674 */ 1675 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 1676 1677 /** 1678 * Search parameter: <b>characteristic-value</b> 1679 * <p> 1680 * Description: <b>A composite of both characteristic and value</b><br> 1681 * Type: <b>composite</b><br> 1682 * Path: <b></b><br> 1683 * </p> 1684 */ 1685 @SearchParamDefinition(name="characteristic-value", path="Group.characteristic", description="A composite of both characteristic and value", type="composite", compositeOf={"characteristic", "value"} ) 1686 public static final String SP_CHARACTERISTIC_VALUE = "characteristic-value"; 1687 /** 1688 * <b>Fluent Client</b> search parameter constant for <b>characteristic-value</b> 1689 * <p> 1690 * Description: <b>A composite of both characteristic and value</b><br> 1691 * Type: <b>composite</b><br> 1692 * Path: <b></b><br> 1693 * </p> 1694 */ 1695 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CHARACTERISTIC_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CHARACTERISTIC_VALUE); 1696 1697 /** 1698 * Search parameter: <b>code</b> 1699 * <p> 1700 * Description: <b>The kind of resources contained</b><br> 1701 * Type: <b>token</b><br> 1702 * Path: <b>Group.code</b><br> 1703 * </p> 1704 */ 1705 @SearchParamDefinition(name="code", path="Group.code", description="The kind of resources contained", type="token" ) 1706 public static final String SP_CODE = "code"; 1707 /** 1708 * <b>Fluent Client</b> search parameter constant for <b>code</b> 1709 * <p> 1710 * Description: <b>The kind of resources contained</b><br> 1711 * Type: <b>token</b><br> 1712 * Path: <b>Group.code</b><br> 1713 * </p> 1714 */ 1715 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 1716 1717 /** 1718 * Search parameter: <b>member</b> 1719 * <p> 1720 * Description: <b>Reference to the group member</b><br> 1721 * Type: <b>reference</b><br> 1722 * Path: <b>Group.member.entity</b><br> 1723 * </p> 1724 */ 1725 @SearchParamDefinition(name="member", path="Group.member.entity", description="Reference to the group member", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner") }, target={Device.class, Medication.class, Patient.class, Practitioner.class, PractitionerRole.class, Substance.class } ) 1726 public static final String SP_MEMBER = "member"; 1727 /** 1728 * <b>Fluent Client</b> search parameter constant for <b>member</b> 1729 * <p> 1730 * Description: <b>Reference to the group member</b><br> 1731 * Type: <b>reference</b><br> 1732 * Path: <b>Group.member.entity</b><br> 1733 * </p> 1734 */ 1735 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam MEMBER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_MEMBER); 1736 1737/** 1738 * Constant for fluent queries to be used to add include statements. Specifies 1739 * the path value of "<b>Group:member</b>". 1740 */ 1741 public static final ca.uhn.fhir.model.api.Include INCLUDE_MEMBER = new ca.uhn.fhir.model.api.Include("Group:member").toLocked(); 1742 1743 /** 1744 * Search parameter: <b>exclude</b> 1745 * <p> 1746 * Description: <b>Group includes or excludes</b><br> 1747 * Type: <b>token</b><br> 1748 * Path: <b>Group.characteristic.exclude</b><br> 1749 * </p> 1750 */ 1751 @SearchParamDefinition(name="exclude", path="Group.characteristic.exclude", description="Group includes or excludes", type="token" ) 1752 public static final String SP_EXCLUDE = "exclude"; 1753 /** 1754 * <b>Fluent Client</b> search parameter constant for <b>exclude</b> 1755 * <p> 1756 * Description: <b>Group includes or excludes</b><br> 1757 * Type: <b>token</b><br> 1758 * Path: <b>Group.characteristic.exclude</b><br> 1759 * </p> 1760 */ 1761 public static final ca.uhn.fhir.rest.gclient.TokenClientParam EXCLUDE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EXCLUDE); 1762 1763 /** 1764 * Search parameter: <b>type</b> 1765 * <p> 1766 * Description: <b>The type of resources the group contains</b><br> 1767 * Type: <b>token</b><br> 1768 * Path: <b>Group.type</b><br> 1769 * </p> 1770 */ 1771 @SearchParamDefinition(name="type", path="Group.type", description="The type of resources the group contains", type="token" ) 1772 public static final String SP_TYPE = "type"; 1773 /** 1774 * <b>Fluent Client</b> search parameter constant for <b>type</b> 1775 * <p> 1776 * Description: <b>The type of resources the group contains</b><br> 1777 * Type: <b>token</b><br> 1778 * Path: <b>Group.type</b><br> 1779 * </p> 1780 */ 1781 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 1782 1783 /** 1784 * Search parameter: <b>value</b> 1785 * <p> 1786 * Description: <b>Value held by characteristic</b><br> 1787 * Type: <b>token</b><br> 1788 * Path: <b>Group.characteristic.value[x]</b><br> 1789 * </p> 1790 */ 1791 @SearchParamDefinition(name="value", path="Group.characteristic.value", description="Value held by characteristic", type="token" ) 1792 public static final String SP_VALUE = "value"; 1793 /** 1794 * <b>Fluent Client</b> search parameter constant for <b>value</b> 1795 * <p> 1796 * Description: <b>Value held by characteristic</b><br> 1797 * Type: <b>token</b><br> 1798 * Path: <b>Group.characteristic.value[x]</b><br> 1799 * </p> 1800 */ 1801 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VALUE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VALUE); 1802 1803 /** 1804 * Search parameter: <b>characteristic</b> 1805 * <p> 1806 * Description: <b>Kind of characteristic</b><br> 1807 * Type: <b>token</b><br> 1808 * Path: <b>Group.characteristic.code</b><br> 1809 * </p> 1810 */ 1811 @SearchParamDefinition(name="characteristic", path="Group.characteristic.code", description="Kind of characteristic", type="token" ) 1812 public static final String SP_CHARACTERISTIC = "characteristic"; 1813 /** 1814 * <b>Fluent Client</b> search parameter constant for <b>characteristic</b> 1815 * <p> 1816 * Description: <b>Kind of characteristic</b><br> 1817 * Type: <b>token</b><br> 1818 * Path: <b>Group.characteristic.code</b><br> 1819 * </p> 1820 */ 1821 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CHARACTERISTIC = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CHARACTERISTIC); 1822 1823 1824} 1825