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