001package org.hl7.fhir.dstu2.model; 002 003 004 005 006/* 007 Copyright (c) 2011+, HL7, Inc. 008 All rights reserved. 009 010 Redistribution and use in source and binary forms, with or without modification, 011 are permitted provided that the following conditions are met: 012 013 * Redistributions of source code must retain the above copyright notice, this 014 list of conditions and the following disclaimer. 015 * Redistributions in binary form must reproduce the above copyright notice, 016 this list of conditions and the following disclaimer in the documentation 017 and/or other materials provided with the distribution. 018 * Neither the name of HL7 nor the names of its contributors may be used to 019 endorse or promote products derived from this software without specific 020 prior written permission. 021 022 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 023 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 024 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 025 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 026 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 027 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 028 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 029 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 030 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 031 POSSIBILITY OF SUCH DAMAGE. 032 033*/ 034 035// Generated on Wed, Jul 13, 2016 05:32+1000 for FHIR v1.0.2 036import java.util.ArrayList; 037import java.util.List; 038 039import ca.uhn.fhir.model.api.annotation.Block; 040import ca.uhn.fhir.model.api.annotation.Child; 041import ca.uhn.fhir.model.api.annotation.Description; 042import ca.uhn.fhir.model.api.annotation.ResourceDef; 043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 044import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 045import org.hl7.fhir.exceptions.FHIRException; 046import org.hl7.fhir.utilities.Utilities; 047/** 048 * 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. 049 */ 050@ResourceDef(name="Group", profile="http://hl7.org/fhir/Profile/Group") 051public class Group extends DomainResource { 052 053 public enum GroupType { 054 /** 055 * Group contains "person" Patient resources 056 */ 057 PERSON, 058 /** 059 * Group contains "animal" Patient resources 060 */ 061 ANIMAL, 062 /** 063 * Group contains healthcare practitioner resources 064 */ 065 PRACTITIONER, 066 /** 067 * Group contains Device resources 068 */ 069 DEVICE, 070 /** 071 * Group contains Medication resources 072 */ 073 MEDICATION, 074 /** 075 * Group contains Substance resources 076 */ 077 SUBSTANCE, 078 /** 079 * added to help the parsers 080 */ 081 NULL; 082 public static GroupType fromCode(String codeString) throws FHIRException { 083 if (codeString == null || "".equals(codeString)) 084 return null; 085 if ("person".equals(codeString)) 086 return PERSON; 087 if ("animal".equals(codeString)) 088 return ANIMAL; 089 if ("practitioner".equals(codeString)) 090 return PRACTITIONER; 091 if ("device".equals(codeString)) 092 return DEVICE; 093 if ("medication".equals(codeString)) 094 return MEDICATION; 095 if ("substance".equals(codeString)) 096 return SUBSTANCE; 097 throw new FHIRException("Unknown GroupType code '"+codeString+"'"); 098 } 099 public String toCode() { 100 switch (this) { 101 case PERSON: return "person"; 102 case ANIMAL: return "animal"; 103 case PRACTITIONER: return "practitioner"; 104 case DEVICE: return "device"; 105 case MEDICATION: return "medication"; 106 case SUBSTANCE: return "substance"; 107 default: return "?"; 108 } 109 } 110 public String getSystem() { 111 switch (this) { 112 case PERSON: return "http://hl7.org/fhir/group-type"; 113 case ANIMAL: return "http://hl7.org/fhir/group-type"; 114 case PRACTITIONER: return "http://hl7.org/fhir/group-type"; 115 case DEVICE: return "http://hl7.org/fhir/group-type"; 116 case MEDICATION: return "http://hl7.org/fhir/group-type"; 117 case SUBSTANCE: return "http://hl7.org/fhir/group-type"; 118 default: return "?"; 119 } 120 } 121 public String getDefinition() { 122 switch (this) { 123 case PERSON: return "Group contains \"person\" Patient resources"; 124 case ANIMAL: return "Group contains \"animal\" Patient resources"; 125 case PRACTITIONER: return "Group contains healthcare practitioner resources"; 126 case DEVICE: return "Group contains Device resources"; 127 case MEDICATION: return "Group contains Medication resources"; 128 case SUBSTANCE: return "Group contains Substance resources"; 129 default: return "?"; 130 } 131 } 132 public String getDisplay() { 133 switch (this) { 134 case PERSON: return "Person"; 135 case ANIMAL: return "Animal"; 136 case PRACTITIONER: return "Practitioner"; 137 case DEVICE: return "Device"; 138 case MEDICATION: return "Medication"; 139 case SUBSTANCE: return "Substance"; 140 default: return "?"; 141 } 142 } 143 } 144 145 public static class GroupTypeEnumFactory implements EnumFactory<GroupType> { 146 public GroupType fromCode(String codeString) throws IllegalArgumentException { 147 if (codeString == null || "".equals(codeString)) 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("person".equals(codeString)) 151 return GroupType.PERSON; 152 if ("animal".equals(codeString)) 153 return GroupType.ANIMAL; 154 if ("practitioner".equals(codeString)) 155 return GroupType.PRACTITIONER; 156 if ("device".equals(codeString)) 157 return GroupType.DEVICE; 158 if ("medication".equals(codeString)) 159 return GroupType.MEDICATION; 160 if ("substance".equals(codeString)) 161 return GroupType.SUBSTANCE; 162 throw new IllegalArgumentException("Unknown GroupType code '"+codeString+"'"); 163 } 164 public Enumeration<GroupType> fromType(Base code) throws FHIRException { 165 if (code == null || code.isEmpty()) 166 return null; 167 String codeString = ((PrimitiveType) code).asStringValue(); 168 if (codeString == null || "".equals(codeString)) 169 return null; 170 if ("person".equals(codeString)) 171 return new Enumeration<GroupType>(this, GroupType.PERSON); 172 if ("animal".equals(codeString)) 173 return new Enumeration<GroupType>(this, GroupType.ANIMAL); 174 if ("practitioner".equals(codeString)) 175 return new Enumeration<GroupType>(this, GroupType.PRACTITIONER); 176 if ("device".equals(codeString)) 177 return new Enumeration<GroupType>(this, GroupType.DEVICE); 178 if ("medication".equals(codeString)) 179 return new Enumeration<GroupType>(this, GroupType.MEDICATION); 180 if ("substance".equals(codeString)) 181 return new Enumeration<GroupType>(this, GroupType.SUBSTANCE); 182 throw new FHIRException("Unknown GroupType code '"+codeString+"'"); 183 } 184 public String toCode(GroupType code) { 185 if (code == GroupType.PERSON) 186 return "person"; 187 if (code == GroupType.ANIMAL) 188 return "animal"; 189 if (code == GroupType.PRACTITIONER) 190 return "practitioner"; 191 if (code == GroupType.DEVICE) 192 return "device"; 193 if (code == GroupType.MEDICATION) 194 return "medication"; 195 if (code == GroupType.SUBSTANCE) 196 return "substance"; 197 return "?"; 198 } 199 } 200 201 @Block() 202 public static class GroupCharacteristicComponent extends BackboneElement implements IBaseBackboneElement { 203 /** 204 * A code that identifies the kind of trait being asserted. 205 */ 206 @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false) 207 @Description(shortDefinition="Kind of characteristic", formalDefinition="A code that identifies the kind of trait being asserted." ) 208 protected CodeableConcept code; 209 210 /** 211 * The value of the trait that holds (or does not hold - see 'exclude') for members of the group. 212 */ 213 @Child(name = "value", type = {CodeableConcept.class, BooleanType.class, Quantity.class, Range.class}, order=2, min=1, max=1, modifier=false, summary=false) 214 @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." ) 215 protected Type value; 216 217 /** 218 * If true, indicates the characteristic is one that is NOT held by members of the group. 219 */ 220 @Child(name = "exclude", type = {BooleanType.class}, order=3, min=1, max=1, modifier=true, summary=false) 221 @Description(shortDefinition="Group includes or excludes", formalDefinition="If true, indicates the characteristic is one that is NOT held by members of the group." ) 222 protected BooleanType exclude; 223 224 /** 225 * The period over which the characteristic is tested; e.g. the patient had an operation during the month of June. 226 */ 227 @Child(name = "period", type = {Period.class}, order=4, min=0, max=1, modifier=false, summary=false) 228 @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." ) 229 protected Period period; 230 231 private static final long serialVersionUID = -1000688967L; 232 233 /* 234 * Constructor 235 */ 236 public GroupCharacteristicComponent() { 237 super(); 238 } 239 240 /* 241 * Constructor 242 */ 243 public GroupCharacteristicComponent(CodeableConcept code, Type value, BooleanType exclude) { 244 super(); 245 this.code = code; 246 this.value = value; 247 this.exclude = exclude; 248 } 249 250 /** 251 * @return {@link #code} (A code that identifies the kind of trait being asserted.) 252 */ 253 public CodeableConcept getCode() { 254 if (this.code == null) 255 if (Configuration.errorOnAutoCreate()) 256 throw new Error("Attempt to auto-create GroupCharacteristicComponent.code"); 257 else if (Configuration.doAutoCreate()) 258 this.code = new CodeableConcept(); // cc 259 return this.code; 260 } 261 262 public boolean hasCode() { 263 return this.code != null && !this.code.isEmpty(); 264 } 265 266 /** 267 * @param value {@link #code} (A code that identifies the kind of trait being asserted.) 268 */ 269 public GroupCharacteristicComponent setCode(CodeableConcept value) { 270 this.code = value; 271 return this; 272 } 273 274 /** 275 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 276 */ 277 public Type getValue() { 278 return this.value; 279 } 280 281 /** 282 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 283 */ 284 public CodeableConcept getValueCodeableConcept() throws FHIRException { 285 if (!(this.value instanceof CodeableConcept)) 286 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.value.getClass().getName()+" was encountered"); 287 return (CodeableConcept) this.value; 288 } 289 290 public boolean hasValueCodeableConcept() { 291 return this.value instanceof CodeableConcept; 292 } 293 294 /** 295 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 296 */ 297 public BooleanType getValueBooleanType() throws FHIRException { 298 if (!(this.value instanceof BooleanType)) 299 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 300 return (BooleanType) this.value; 301 } 302 303 public boolean hasValueBooleanType() { 304 return this.value instanceof BooleanType; 305 } 306 307 /** 308 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 309 */ 310 public Quantity getValueQuantity() throws FHIRException { 311 if (!(this.value instanceof Quantity)) 312 throw new FHIRException("Type mismatch: the type Quantity was expected, but "+this.value.getClass().getName()+" was encountered"); 313 return (Quantity) this.value; 314 } 315 316 public boolean hasValueQuantity() { 317 return this.value instanceof Quantity; 318 } 319 320 /** 321 * @return {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 322 */ 323 public Range getValueRange() throws FHIRException { 324 if (!(this.value instanceof Range)) 325 throw new FHIRException("Type mismatch: the type Range was expected, but "+this.value.getClass().getName()+" was encountered"); 326 return (Range) this.value; 327 } 328 329 public boolean hasValueRange() { 330 return this.value instanceof Range; 331 } 332 333 public boolean hasValue() { 334 return this.value != null && !this.value.isEmpty(); 335 } 336 337 /** 338 * @param value {@link #value} (The value of the trait that holds (or does not hold - see 'exclude') for members of the group.) 339 */ 340 public GroupCharacteristicComponent setValue(Type value) { 341 this.value = value; 342 return this; 343 } 344 345 /** 346 * @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 347 */ 348 public BooleanType getExcludeElement() { 349 if (this.exclude == null) 350 if (Configuration.errorOnAutoCreate()) 351 throw new Error("Attempt to auto-create GroupCharacteristicComponent.exclude"); 352 else if (Configuration.doAutoCreate()) 353 this.exclude = new BooleanType(); // bb 354 return this.exclude; 355 } 356 357 public boolean hasExcludeElement() { 358 return this.exclude != null && !this.exclude.isEmpty(); 359 } 360 361 public boolean hasExclude() { 362 return this.exclude != null && !this.exclude.isEmpty(); 363 } 364 365 /** 366 * @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 367 */ 368 public GroupCharacteristicComponent setExcludeElement(BooleanType value) { 369 this.exclude = value; 370 return this; 371 } 372 373 /** 374 * @return If true, indicates the characteristic is one that is NOT held by members of the group. 375 */ 376 public boolean getExclude() { 377 return this.exclude == null || this.exclude.isEmpty() ? false : this.exclude.getValue(); 378 } 379 380 /** 381 * @param value If true, indicates the characteristic is one that is NOT held by members of the group. 382 */ 383 public GroupCharacteristicComponent setExclude(boolean value) { 384 if (this.exclude == null) 385 this.exclude = new BooleanType(); 386 this.exclude.setValue(value); 387 return this; 388 } 389 390 /** 391 * @return {@link #period} (The period over which the characteristic is tested; e.g. the patient had an operation during the month of June.) 392 */ 393 public Period getPeriod() { 394 if (this.period == null) 395 if (Configuration.errorOnAutoCreate()) 396 throw new Error("Attempt to auto-create GroupCharacteristicComponent.period"); 397 else if (Configuration.doAutoCreate()) 398 this.period = new Period(); // cc 399 return this.period; 400 } 401 402 public boolean hasPeriod() { 403 return this.period != null && !this.period.isEmpty(); 404 } 405 406 /** 407 * @param value {@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 GroupCharacteristicComponent setPeriod(Period value) { 410 this.period = value; 411 return this; 412 } 413 414 protected void listChildren(List<Property> childrenList) { 415 super.listChildren(childrenList); 416 childrenList.add(new Property("code", "CodeableConcept", "A code that identifies the kind of trait being asserted.", 0, java.lang.Integer.MAX_VALUE, code)); 417 childrenList.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, java.lang.Integer.MAX_VALUE, value)); 418 childrenList.add(new Property("exclude", "boolean", "If true, indicates the characteristic is one that is NOT held by members of the group.", 0, java.lang.Integer.MAX_VALUE, exclude)); 419 childrenList.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, java.lang.Integer.MAX_VALUE, period)); 420 } 421 422 @Override 423 public void setProperty(String name, Base value) throws FHIRException { 424 if (name.equals("code")) 425 this.code = castToCodeableConcept(value); // CodeableConcept 426 else if (name.equals("value[x]")) 427 this.value = (Type) value; // Type 428 else if (name.equals("exclude")) 429 this.exclude = castToBoolean(value); // BooleanType 430 else if (name.equals("period")) 431 this.period = castToPeriod(value); // Period 432 else 433 super.setProperty(name, value); 434 } 435 436 @Override 437 public Base addChild(String name) throws FHIRException { 438 if (name.equals("code")) { 439 this.code = new CodeableConcept(); 440 return this.code; 441 } 442 else if (name.equals("valueCodeableConcept")) { 443 this.value = new CodeableConcept(); 444 return this.value; 445 } 446 else if (name.equals("valueBoolean")) { 447 this.value = new BooleanType(); 448 return this.value; 449 } 450 else if (name.equals("valueQuantity")) { 451 this.value = new Quantity(); 452 return this.value; 453 } 454 else if (name.equals("valueRange")) { 455 this.value = new Range(); 456 return this.value; 457 } 458 else if (name.equals("exclude")) { 459 throw new FHIRException("Cannot call addChild on a primitive type Group.exclude"); 460 } 461 else if (name.equals("period")) { 462 this.period = new Period(); 463 return this.period; 464 } 465 else 466 return super.addChild(name); 467 } 468 469 public GroupCharacteristicComponent copy() { 470 GroupCharacteristicComponent dst = new GroupCharacteristicComponent(); 471 copyValues(dst); 472 dst.code = code == null ? null : code.copy(); 473 dst.value = value == null ? null : value.copy(); 474 dst.exclude = exclude == null ? null : exclude.copy(); 475 dst.period = period == null ? null : period.copy(); 476 return dst; 477 } 478 479 @Override 480 public boolean equalsDeep(Base other) { 481 if (!super.equalsDeep(other)) 482 return false; 483 if (!(other instanceof GroupCharacteristicComponent)) 484 return false; 485 GroupCharacteristicComponent o = (GroupCharacteristicComponent) other; 486 return compareDeep(code, o.code, true) && compareDeep(value, o.value, true) && compareDeep(exclude, o.exclude, true) 487 && compareDeep(period, o.period, true); 488 } 489 490 @Override 491 public boolean equalsShallow(Base other) { 492 if (!super.equalsShallow(other)) 493 return false; 494 if (!(other instanceof GroupCharacteristicComponent)) 495 return false; 496 GroupCharacteristicComponent o = (GroupCharacteristicComponent) other; 497 return compareValues(exclude, o.exclude, true); 498 } 499 500 public boolean isEmpty() { 501 return super.isEmpty() && (code == null || code.isEmpty()) && (value == null || value.isEmpty()) 502 && (exclude == null || exclude.isEmpty()) && (period == null || period.isEmpty()); 503 } 504 505 public String fhirType() { 506 return "Group.characteristic"; 507 508 } 509 510 } 511 512 @Block() 513 public static class GroupMemberComponent extends BackboneElement implements IBaseBackboneElement { 514 /** 515 * A reference to the entity that is a member of the group. Must be consistent with Group.type. 516 */ 517 @Child(name = "entity", type = {Patient.class, Practitioner.class, Device.class, Medication.class, Substance.class}, order=1, min=1, max=1, modifier=false, summary=false) 518 @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." ) 519 protected Reference entity; 520 521 /** 522 * 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.) 523 */ 524 protected Resource entityTarget; 525 526 /** 527 * The period that the member was in the group, if known. 528 */ 529 @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=false) 530 @Description(shortDefinition="Period member belonged to the group", formalDefinition="The period that the member was in the group, if known." ) 531 protected Period period; 532 533 /** 534 * A flag to indicate that the member is no longer in the group, but previously may have been a member. 535 */ 536 @Child(name = "inactive", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 537 @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." ) 538 protected BooleanType inactive; 539 540 private static final long serialVersionUID = -333869055L; 541 542 /* 543 * Constructor 544 */ 545 public GroupMemberComponent() { 546 super(); 547 } 548 549 /* 550 * Constructor 551 */ 552 public GroupMemberComponent(Reference entity) { 553 super(); 554 this.entity = entity; 555 } 556 557 /** 558 * @return {@link #entity} (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 559 */ 560 public Reference getEntity() { 561 if (this.entity == null) 562 if (Configuration.errorOnAutoCreate()) 563 throw new Error("Attempt to auto-create GroupMemberComponent.entity"); 564 else if (Configuration.doAutoCreate()) 565 this.entity = new Reference(); // cc 566 return this.entity; 567 } 568 569 public boolean hasEntity() { 570 return this.entity != null && !this.entity.isEmpty(); 571 } 572 573 /** 574 * @param value {@link #entity} (A reference to the entity that is a member of the group. Must be consistent with Group.type.) 575 */ 576 public GroupMemberComponent setEntity(Reference value) { 577 this.entity = value; 578 return this; 579 } 580 581 /** 582 * @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.) 583 */ 584 public Resource getEntityTarget() { 585 return this.entityTarget; 586 } 587 588 /** 589 * @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.) 590 */ 591 public GroupMemberComponent setEntityTarget(Resource value) { 592 this.entityTarget = value; 593 return this; 594 } 595 596 /** 597 * @return {@link #period} (The period that the member was in the group, if known.) 598 */ 599 public Period getPeriod() { 600 if (this.period == null) 601 if (Configuration.errorOnAutoCreate()) 602 throw new Error("Attempt to auto-create GroupMemberComponent.period"); 603 else if (Configuration.doAutoCreate()) 604 this.period = new Period(); // cc 605 return this.period; 606 } 607 608 public boolean hasPeriod() { 609 return this.period != null && !this.period.isEmpty(); 610 } 611 612 /** 613 * @param value {@link #period} (The period that the member was in the group, if known.) 614 */ 615 public GroupMemberComponent setPeriod(Period value) { 616 this.period = value; 617 return this; 618 } 619 620 /** 621 * @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 622 */ 623 public BooleanType getInactiveElement() { 624 if (this.inactive == null) 625 if (Configuration.errorOnAutoCreate()) 626 throw new Error("Attempt to auto-create GroupMemberComponent.inactive"); 627 else if (Configuration.doAutoCreate()) 628 this.inactive = new BooleanType(); // bb 629 return this.inactive; 630 } 631 632 public boolean hasInactiveElement() { 633 return this.inactive != null && !this.inactive.isEmpty(); 634 } 635 636 public boolean hasInactive() { 637 return this.inactive != null && !this.inactive.isEmpty(); 638 } 639 640 /** 641 * @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 642 */ 643 public GroupMemberComponent setInactiveElement(BooleanType value) { 644 this.inactive = value; 645 return this; 646 } 647 648 /** 649 * @return A flag to indicate that the member is no longer in the group, but previously may have been a member. 650 */ 651 public boolean getInactive() { 652 return this.inactive == null || this.inactive.isEmpty() ? false : this.inactive.getValue(); 653 } 654 655 /** 656 * @param value A flag to indicate that the member is no longer in the group, but previously may have been a member. 657 */ 658 public GroupMemberComponent setInactive(boolean value) { 659 if (this.inactive == null) 660 this.inactive = new BooleanType(); 661 this.inactive.setValue(value); 662 return this; 663 } 664 665 protected void listChildren(List<Property> childrenList) { 666 super.listChildren(childrenList); 667 childrenList.add(new Property("entity", "Reference(Patient|Practitioner|Device|Medication|Substance)", "A reference to the entity that is a member of the group. Must be consistent with Group.type.", 0, java.lang.Integer.MAX_VALUE, entity)); 668 childrenList.add(new Property("period", "Period", "The period that the member was in the group, if known.", 0, java.lang.Integer.MAX_VALUE, period)); 669 childrenList.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, java.lang.Integer.MAX_VALUE, inactive)); 670 } 671 672 @Override 673 public void setProperty(String name, Base value) throws FHIRException { 674 if (name.equals("entity")) 675 this.entity = castToReference(value); // Reference 676 else if (name.equals("period")) 677 this.period = castToPeriod(value); // Period 678 else if (name.equals("inactive")) 679 this.inactive = castToBoolean(value); // BooleanType 680 else 681 super.setProperty(name, value); 682 } 683 684 @Override 685 public Base addChild(String name) throws FHIRException { 686 if (name.equals("entity")) { 687 this.entity = new Reference(); 688 return this.entity; 689 } 690 else if (name.equals("period")) { 691 this.period = new Period(); 692 return this.period; 693 } 694 else if (name.equals("inactive")) { 695 throw new FHIRException("Cannot call addChild on a primitive type Group.inactive"); 696 } 697 else 698 return super.addChild(name); 699 } 700 701 public GroupMemberComponent copy() { 702 GroupMemberComponent dst = new GroupMemberComponent(); 703 copyValues(dst); 704 dst.entity = entity == null ? null : entity.copy(); 705 dst.period = period == null ? null : period.copy(); 706 dst.inactive = inactive == null ? null : inactive.copy(); 707 return dst; 708 } 709 710 @Override 711 public boolean equalsDeep(Base other) { 712 if (!super.equalsDeep(other)) 713 return false; 714 if (!(other instanceof GroupMemberComponent)) 715 return false; 716 GroupMemberComponent o = (GroupMemberComponent) other; 717 return compareDeep(entity, o.entity, true) && compareDeep(period, o.period, true) && compareDeep(inactive, o.inactive, true) 718 ; 719 } 720 721 @Override 722 public boolean equalsShallow(Base other) { 723 if (!super.equalsShallow(other)) 724 return false; 725 if (!(other instanceof GroupMemberComponent)) 726 return false; 727 GroupMemberComponent o = (GroupMemberComponent) other; 728 return compareValues(inactive, o.inactive, true); 729 } 730 731 public boolean isEmpty() { 732 return super.isEmpty() && (entity == null || entity.isEmpty()) && (period == null || period.isEmpty()) 733 && (inactive == null || inactive.isEmpty()); 734 } 735 736 public String fhirType() { 737 return "Group.member"; 738 739 } 740 741 } 742 743 /** 744 * A unique business identifier for this group. 745 */ 746 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 747 @Description(shortDefinition="Unique id", formalDefinition="A unique business identifier for this group." ) 748 protected List<Identifier> identifier; 749 750 /** 751 * Identifies the broad classification of the kind of resources the group includes. 752 */ 753 @Child(name = "type", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 754 @Description(shortDefinition="person | animal | practitioner | device | medication | substance", formalDefinition="Identifies the broad classification of the kind of resources the group includes." ) 755 protected Enumeration<GroupType> type; 756 757 /** 758 * If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals. 759 */ 760 @Child(name = "actual", type = {BooleanType.class}, order=2, min=1, max=1, modifier=false, summary=true) 761 @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." ) 762 protected BooleanType actual; 763 764 /** 765 * Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc. 766 */ 767 @Child(name = "code", type = {CodeableConcept.class}, order=3, min=0, max=1, modifier=false, summary=true) 768 @Description(shortDefinition="Kind of Group members", formalDefinition="Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc." ) 769 protected CodeableConcept code; 770 771 /** 772 * A label assigned to the group for human identification and communication. 773 */ 774 @Child(name = "name", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=true) 775 @Description(shortDefinition="Label for Group", formalDefinition="A label assigned to the group for human identification and communication." ) 776 protected StringType name; 777 778 /** 779 * A count of the number of resource instances that are part of the group. 780 */ 781 @Child(name = "quantity", type = {UnsignedIntType.class}, order=5, min=0, max=1, modifier=false, summary=true) 782 @Description(shortDefinition="Number of members", formalDefinition="A count of the number of resource instances that are part of the group." ) 783 protected UnsignedIntType quantity; 784 785 /** 786 * Identifies the traits shared by members of the group. 787 */ 788 @Child(name = "characteristic", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 789 @Description(shortDefinition="Trait of group members", formalDefinition="Identifies the traits shared by members of the group." ) 790 protected List<GroupCharacteristicComponent> characteristic; 791 792 /** 793 * Identifies the resource instances that are members of the group. 794 */ 795 @Child(name = "member", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 796 @Description(shortDefinition="Who or what is in group", formalDefinition="Identifies the resource instances that are members of the group." ) 797 protected List<GroupMemberComponent> member; 798 799 private static final long serialVersionUID = 1401345819L; 800 801 /* 802 * Constructor 803 */ 804 public Group() { 805 super(); 806 } 807 808 /* 809 * Constructor 810 */ 811 public Group(Enumeration<GroupType> type, BooleanType actual) { 812 super(); 813 this.type = type; 814 this.actual = actual; 815 } 816 817 /** 818 * @return {@link #identifier} (A unique business identifier for this group.) 819 */ 820 public List<Identifier> getIdentifier() { 821 if (this.identifier == null) 822 this.identifier = new ArrayList<Identifier>(); 823 return this.identifier; 824 } 825 826 public boolean hasIdentifier() { 827 if (this.identifier == null) 828 return false; 829 for (Identifier item : this.identifier) 830 if (!item.isEmpty()) 831 return true; 832 return false; 833 } 834 835 /** 836 * @return {@link #identifier} (A unique business identifier for this group.) 837 */ 838 // syntactic sugar 839 public Identifier addIdentifier() { //3 840 Identifier t = new Identifier(); 841 if (this.identifier == null) 842 this.identifier = new ArrayList<Identifier>(); 843 this.identifier.add(t); 844 return t; 845 } 846 847 // syntactic sugar 848 public Group addIdentifier(Identifier t) { //3 849 if (t == null) 850 return this; 851 if (this.identifier == null) 852 this.identifier = new ArrayList<Identifier>(); 853 this.identifier.add(t); 854 return this; 855 } 856 857 /** 858 * @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 859 */ 860 public Enumeration<GroupType> getTypeElement() { 861 if (this.type == null) 862 if (Configuration.errorOnAutoCreate()) 863 throw new Error("Attempt to auto-create Group.type"); 864 else if (Configuration.doAutoCreate()) 865 this.type = new Enumeration<GroupType>(new GroupTypeEnumFactory()); // bb 866 return this.type; 867 } 868 869 public boolean hasTypeElement() { 870 return this.type != null && !this.type.isEmpty(); 871 } 872 873 public boolean hasType() { 874 return this.type != null && !this.type.isEmpty(); 875 } 876 877 /** 878 * @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 879 */ 880 public Group setTypeElement(Enumeration<GroupType> value) { 881 this.type = value; 882 return this; 883 } 884 885 /** 886 * @return Identifies the broad classification of the kind of resources the group includes. 887 */ 888 public GroupType getType() { 889 return this.type == null ? null : this.type.getValue(); 890 } 891 892 /** 893 * @param value Identifies the broad classification of the kind of resources the group includes. 894 */ 895 public Group setType(GroupType value) { 896 if (this.type == null) 897 this.type = new Enumeration<GroupType>(new GroupTypeEnumFactory()); 898 this.type.setValue(value); 899 return this; 900 } 901 902 /** 903 * @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 904 */ 905 public BooleanType getActualElement() { 906 if (this.actual == null) 907 if (Configuration.errorOnAutoCreate()) 908 throw new Error("Attempt to auto-create Group.actual"); 909 else if (Configuration.doAutoCreate()) 910 this.actual = new BooleanType(); // bb 911 return this.actual; 912 } 913 914 public boolean hasActualElement() { 915 return this.actual != null && !this.actual.isEmpty(); 916 } 917 918 public boolean hasActual() { 919 return this.actual != null && !this.actual.isEmpty(); 920 } 921 922 /** 923 * @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 924 */ 925 public Group setActualElement(BooleanType value) { 926 this.actual = value; 927 return this; 928 } 929 930 /** 931 * @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. 932 */ 933 public boolean getActual() { 934 return this.actual == null || this.actual.isEmpty() ? false : this.actual.getValue(); 935 } 936 937 /** 938 * @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. 939 */ 940 public Group setActual(boolean value) { 941 if (this.actual == null) 942 this.actual = new BooleanType(); 943 this.actual.setValue(value); 944 return this; 945 } 946 947 /** 948 * @return {@link #code} (Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc.) 949 */ 950 public CodeableConcept getCode() { 951 if (this.code == null) 952 if (Configuration.errorOnAutoCreate()) 953 throw new Error("Attempt to auto-create Group.code"); 954 else if (Configuration.doAutoCreate()) 955 this.code = new CodeableConcept(); // cc 956 return this.code; 957 } 958 959 public boolean hasCode() { 960 return this.code != null && !this.code.isEmpty(); 961 } 962 963 /** 964 * @param value {@link #code} (Provides a specific type of resource the group includes; e.g. "cow", "syringe", etc.) 965 */ 966 public Group setCode(CodeableConcept value) { 967 this.code = value; 968 return this; 969 } 970 971 /** 972 * @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 973 */ 974 public StringType getNameElement() { 975 if (this.name == null) 976 if (Configuration.errorOnAutoCreate()) 977 throw new Error("Attempt to auto-create Group.name"); 978 else if (Configuration.doAutoCreate()) 979 this.name = new StringType(); // bb 980 return this.name; 981 } 982 983 public boolean hasNameElement() { 984 return this.name != null && !this.name.isEmpty(); 985 } 986 987 public boolean hasName() { 988 return this.name != null && !this.name.isEmpty(); 989 } 990 991 /** 992 * @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 993 */ 994 public Group setNameElement(StringType value) { 995 this.name = value; 996 return this; 997 } 998 999 /** 1000 * @return A label assigned to the group for human identification and communication. 1001 */ 1002 public String getName() { 1003 return this.name == null ? null : this.name.getValue(); 1004 } 1005 1006 /** 1007 * @param value A label assigned to the group for human identification and communication. 1008 */ 1009 public Group setName(String value) { 1010 if (Utilities.noString(value)) 1011 this.name = null; 1012 else { 1013 if (this.name == null) 1014 this.name = new StringType(); 1015 this.name.setValue(value); 1016 } 1017 return this; 1018 } 1019 1020 /** 1021 * @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 1022 */ 1023 public UnsignedIntType getQuantityElement() { 1024 if (this.quantity == null) 1025 if (Configuration.errorOnAutoCreate()) 1026 throw new Error("Attempt to auto-create Group.quantity"); 1027 else if (Configuration.doAutoCreate()) 1028 this.quantity = new UnsignedIntType(); // bb 1029 return this.quantity; 1030 } 1031 1032 public boolean hasQuantityElement() { 1033 return this.quantity != null && !this.quantity.isEmpty(); 1034 } 1035 1036 public boolean hasQuantity() { 1037 return this.quantity != null && !this.quantity.isEmpty(); 1038 } 1039 1040 /** 1041 * @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 1042 */ 1043 public Group setQuantityElement(UnsignedIntType value) { 1044 this.quantity = value; 1045 return this; 1046 } 1047 1048 /** 1049 * @return A count of the number of resource instances that are part of the group. 1050 */ 1051 public int getQuantity() { 1052 return this.quantity == null || this.quantity.isEmpty() ? 0 : this.quantity.getValue(); 1053 } 1054 1055 /** 1056 * @param value A count of the number of resource instances that are part of the group. 1057 */ 1058 public Group setQuantity(int value) { 1059 if (this.quantity == null) 1060 this.quantity = new UnsignedIntType(); 1061 this.quantity.setValue(value); 1062 return this; 1063 } 1064 1065 /** 1066 * @return {@link #characteristic} (Identifies the traits shared by members of the group.) 1067 */ 1068 public List<GroupCharacteristicComponent> getCharacteristic() { 1069 if (this.characteristic == null) 1070 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1071 return this.characteristic; 1072 } 1073 1074 public boolean hasCharacteristic() { 1075 if (this.characteristic == null) 1076 return false; 1077 for (GroupCharacteristicComponent item : this.characteristic) 1078 if (!item.isEmpty()) 1079 return true; 1080 return false; 1081 } 1082 1083 /** 1084 * @return {@link #characteristic} (Identifies the traits shared by members of the group.) 1085 */ 1086 // syntactic sugar 1087 public GroupCharacteristicComponent addCharacteristic() { //3 1088 GroupCharacteristicComponent t = new GroupCharacteristicComponent(); 1089 if (this.characteristic == null) 1090 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1091 this.characteristic.add(t); 1092 return t; 1093 } 1094 1095 // syntactic sugar 1096 public Group addCharacteristic(GroupCharacteristicComponent t) { //3 1097 if (t == null) 1098 return this; 1099 if (this.characteristic == null) 1100 this.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1101 this.characteristic.add(t); 1102 return this; 1103 } 1104 1105 /** 1106 * @return {@link #member} (Identifies the resource instances that are members of the group.) 1107 */ 1108 public List<GroupMemberComponent> getMember() { 1109 if (this.member == null) 1110 this.member = new ArrayList<GroupMemberComponent>(); 1111 return this.member; 1112 } 1113 1114 public boolean hasMember() { 1115 if (this.member == null) 1116 return false; 1117 for (GroupMemberComponent item : this.member) 1118 if (!item.isEmpty()) 1119 return true; 1120 return false; 1121 } 1122 1123 /** 1124 * @return {@link #member} (Identifies the resource instances that are members of the group.) 1125 */ 1126 // syntactic sugar 1127 public GroupMemberComponent addMember() { //3 1128 GroupMemberComponent t = new GroupMemberComponent(); 1129 if (this.member == null) 1130 this.member = new ArrayList<GroupMemberComponent>(); 1131 this.member.add(t); 1132 return t; 1133 } 1134 1135 // syntactic sugar 1136 public Group addMember(GroupMemberComponent t) { //3 1137 if (t == null) 1138 return this; 1139 if (this.member == null) 1140 this.member = new ArrayList<GroupMemberComponent>(); 1141 this.member.add(t); 1142 return this; 1143 } 1144 1145 protected void listChildren(List<Property> childrenList) { 1146 super.listChildren(childrenList); 1147 childrenList.add(new Property("identifier", "Identifier", "A unique business identifier for this group.", 0, java.lang.Integer.MAX_VALUE, identifier)); 1148 childrenList.add(new Property("type", "code", "Identifies the broad classification of the kind of resources the group includes.", 0, java.lang.Integer.MAX_VALUE, type)); 1149 childrenList.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, java.lang.Integer.MAX_VALUE, actual)); 1150 childrenList.add(new Property("code", "CodeableConcept", "Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc.", 0, java.lang.Integer.MAX_VALUE, code)); 1151 childrenList.add(new Property("name", "string", "A label assigned to the group for human identification and communication.", 0, java.lang.Integer.MAX_VALUE, name)); 1152 childrenList.add(new Property("quantity", "unsignedInt", "A count of the number of resource instances that are part of the group.", 0, java.lang.Integer.MAX_VALUE, quantity)); 1153 childrenList.add(new Property("characteristic", "", "Identifies the traits shared by members of the group.", 0, java.lang.Integer.MAX_VALUE, characteristic)); 1154 childrenList.add(new Property("member", "", "Identifies the resource instances that are members of the group.", 0, java.lang.Integer.MAX_VALUE, member)); 1155 } 1156 1157 @Override 1158 public void setProperty(String name, Base value) throws FHIRException { 1159 if (name.equals("identifier")) 1160 this.getIdentifier().add(castToIdentifier(value)); 1161 else if (name.equals("type")) 1162 this.type = new GroupTypeEnumFactory().fromType(value); // Enumeration<GroupType> 1163 else if (name.equals("actual")) 1164 this.actual = castToBoolean(value); // BooleanType 1165 else if (name.equals("code")) 1166 this.code = castToCodeableConcept(value); // CodeableConcept 1167 else if (name.equals("name")) 1168 this.name = castToString(value); // StringType 1169 else if (name.equals("quantity")) 1170 this.quantity = castToUnsignedInt(value); // UnsignedIntType 1171 else if (name.equals("characteristic")) 1172 this.getCharacteristic().add((GroupCharacteristicComponent) value); 1173 else if (name.equals("member")) 1174 this.getMember().add((GroupMemberComponent) value); 1175 else 1176 super.setProperty(name, value); 1177 } 1178 1179 @Override 1180 public Base addChild(String name) throws FHIRException { 1181 if (name.equals("identifier")) { 1182 return addIdentifier(); 1183 } 1184 else if (name.equals("type")) { 1185 throw new FHIRException("Cannot call addChild on a primitive type Group.type"); 1186 } 1187 else if (name.equals("actual")) { 1188 throw new FHIRException("Cannot call addChild on a primitive type Group.actual"); 1189 } 1190 else if (name.equals("code")) { 1191 this.code = new CodeableConcept(); 1192 return this.code; 1193 } 1194 else if (name.equals("name")) { 1195 throw new FHIRException("Cannot call addChild on a primitive type Group.name"); 1196 } 1197 else if (name.equals("quantity")) { 1198 throw new FHIRException("Cannot call addChild on a primitive type Group.quantity"); 1199 } 1200 else if (name.equals("characteristic")) { 1201 return addCharacteristic(); 1202 } 1203 else if (name.equals("member")) { 1204 return addMember(); 1205 } 1206 else 1207 return super.addChild(name); 1208 } 1209 1210 public String fhirType() { 1211 return "Group"; 1212 1213 } 1214 1215 public Group copy() { 1216 Group dst = new Group(); 1217 copyValues(dst); 1218 if (identifier != null) { 1219 dst.identifier = new ArrayList<Identifier>(); 1220 for (Identifier i : identifier) 1221 dst.identifier.add(i.copy()); 1222 }; 1223 dst.type = type == null ? null : type.copy(); 1224 dst.actual = actual == null ? null : actual.copy(); 1225 dst.code = code == null ? null : code.copy(); 1226 dst.name = name == null ? null : name.copy(); 1227 dst.quantity = quantity == null ? null : quantity.copy(); 1228 if (characteristic != null) { 1229 dst.characteristic = new ArrayList<GroupCharacteristicComponent>(); 1230 for (GroupCharacteristicComponent i : characteristic) 1231 dst.characteristic.add(i.copy()); 1232 }; 1233 if (member != null) { 1234 dst.member = new ArrayList<GroupMemberComponent>(); 1235 for (GroupMemberComponent i : member) 1236 dst.member.add(i.copy()); 1237 }; 1238 return dst; 1239 } 1240 1241 protected Group typedCopy() { 1242 return copy(); 1243 } 1244 1245 @Override 1246 public boolean equalsDeep(Base other) { 1247 if (!super.equalsDeep(other)) 1248 return false; 1249 if (!(other instanceof Group)) 1250 return false; 1251 Group o = (Group) other; 1252 return compareDeep(identifier, o.identifier, true) && compareDeep(type, o.type, true) && compareDeep(actual, o.actual, true) 1253 && compareDeep(code, o.code, true) && compareDeep(name, o.name, true) && compareDeep(quantity, o.quantity, true) 1254 && compareDeep(characteristic, o.characteristic, true) && compareDeep(member, o.member, true); 1255 } 1256 1257 @Override 1258 public boolean equalsShallow(Base other) { 1259 if (!super.equalsShallow(other)) 1260 return false; 1261 if (!(other instanceof Group)) 1262 return false; 1263 Group o = (Group) other; 1264 return compareValues(type, o.type, true) && compareValues(actual, o.actual, true) && compareValues(name, o.name, true) 1265 && compareValues(quantity, o.quantity, true); 1266 } 1267 1268 public boolean isEmpty() { 1269 return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (type == null || type.isEmpty()) 1270 && (actual == null || actual.isEmpty()) && (code == null || code.isEmpty()) && (name == null || name.isEmpty()) 1271 && (quantity == null || quantity.isEmpty()) && (characteristic == null || characteristic.isEmpty()) 1272 && (member == null || member.isEmpty()); 1273 } 1274 1275 @Override 1276 public ResourceType getResourceType() { 1277 return ResourceType.Group; 1278 } 1279 1280 @SearchParamDefinition(name="actual", path="Group.actual", description="Descriptive or actual", type="token" ) 1281 public static final String SP_ACTUAL = "actual"; 1282 @SearchParamDefinition(name="identifier", path="Group.identifier", description="Unique id", type="token" ) 1283 public static final String SP_IDENTIFIER = "identifier"; 1284 @SearchParamDefinition(name="characteristic-value", path="null", description="A composite of both characteristic and value", type="composite" ) 1285 public static final String SP_CHARACTERISTICVALUE = "characteristic-value"; 1286 @SearchParamDefinition(name="code", path="Group.code", description="The kind of resources contained", type="token" ) 1287 public static final String SP_CODE = "code"; 1288 @SearchParamDefinition(name="member", path="Group.member.entity", description="Reference to the group member", type="reference" ) 1289 public static final String SP_MEMBER = "member"; 1290 @SearchParamDefinition(name="exclude", path="Group.characteristic.exclude", description="Group includes or excludes", type="token" ) 1291 public static final String SP_EXCLUDE = "exclude"; 1292 @SearchParamDefinition(name="type", path="Group.type", description="The type of resources the group contains", type="token" ) 1293 public static final String SP_TYPE = "type"; 1294 @SearchParamDefinition(name="value", path="Group.characteristic.value[x]", description="Value held by characteristic", type="token" ) 1295 public static final String SP_VALUE = "value"; 1296 @SearchParamDefinition(name="characteristic", path="Group.characteristic.code", description="Kind of characteristic", type="token" ) 1297 public static final String SP_CHARACTERISTIC = "characteristic"; 1298 1299}