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