001package org.hl7.fhir.dstu3.model; 002 003/*- 004 * #%L 005 * org.hl7.fhir.dstu3 006 * %% 007 * Copyright (C) 2014 - 2019 Health Level 7 008 * %% 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 * #L% 021 */ 022 023/* 024 Copyright (c) 2011+, HL7, Inc. 025 All rights reserved. 026 027 Redistribution and use in source and binary forms, with or without modification, 028 are permitted provided that the following conditions are met: 029 030 * Redistributions of source code must retain the above copyright notice, this 031 list of conditions and the following disclaimer. 032 * Redistributions in binary form must reproduce the above copyright notice, 033 this list of conditions and the following disclaimer in the documentation 034 and/or other materials provided with the distribution. 035 * Neither the name of HL7 nor the names of its contributors may be used to 036 endorse or promote products derived from this software without specific 037 prior written permission. 038 039 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 040 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 041 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 042 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 043 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 044 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 045 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 046 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 047 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 048 POSSIBILITY OF SUCH DAMAGE. 049 050*/ 051 052// Generated on Fri, Mar 16, 2018 15:21+1100 for FHIR v3.0.x 053import java.util.ArrayList; 054import java.util.Date; 055import java.util.List; 056 057import org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus; 058import org.hl7.fhir.dstu3.model.Enumerations.PublicationStatusEnumFactory; 059import org.hl7.fhir.exceptions.FHIRException; 060import org.hl7.fhir.exceptions.FHIRFormatError; 061import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 062import org.hl7.fhir.utilities.Utilities; 063 064import ca.uhn.fhir.model.api.annotation.Block; 065import ca.uhn.fhir.model.api.annotation.Child; 066import ca.uhn.fhir.model.api.annotation.ChildOrder; 067import ca.uhn.fhir.model.api.annotation.Description; 068import ca.uhn.fhir.model.api.annotation.ResourceDef; 069import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 070/** 071 * A value set specifies a set of codes drawn from one or more code systems. 072 */ 073@ResourceDef(name="ValueSet", profile="http://hl7.org/fhir/Profile/ValueSet") 074@ChildOrder(names={"url", "identifier", "version", "name", "title", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "immutable", "purpose", "copyright", "extensible", "compose", "expansion"}) 075public class ValueSet extends MetadataResource { 076 077 public enum FilterOperator { 078 /** 079 * The specified property of the code equals the provided value. 080 */ 081 EQUAL, 082 /** 083 * Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (i.e. include child codes) 084 */ 085 ISA, 086 /** 087 * Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself (i.e. include child codes) 088 */ 089 DESCENDENTOF, 090 /** 091 * The specified property of the code does not have an is-a relationship with the provided value. 092 */ 093 ISNOTA, 094 /** 095 * The specified property of the code matches the regex specified in the provided value. 096 */ 097 REGEX, 098 /** 099 * The specified property of the code is in the set of codes or concepts specified in the provided value (comma separated list). 100 */ 101 IN, 102 /** 103 * The specified property of the code is not in the set of codes or concepts specified in the provided value (comma separated list). 104 */ 105 NOTIN, 106 /** 107 * Includes all concept ids that have a transitive is-a relationship from the concept Id provided as the value, including the provided concept itself (e.g. include parent codes) 108 */ 109 GENERALIZES, 110 /** 111 * The specified property of the code has at least one value (if the specified value is true; if the specified value is false, then matches when the specified property of the code has no values) 112 */ 113 EXISTS, 114 /** 115 * added to help the parsers with the generic types 116 */ 117 NULL; 118 public static FilterOperator fromCode(String codeString) throws FHIRException { 119 if (codeString == null || "".equals(codeString)) 120 return null; 121 if ("=".equals(codeString)) 122 return EQUAL; 123 if ("is-a".equals(codeString)) 124 return ISA; 125 if ("descendent-of".equals(codeString)) 126 return DESCENDENTOF; 127 if ("is-not-a".equals(codeString)) 128 return ISNOTA; 129 if ("regex".equals(codeString)) 130 return REGEX; 131 if ("in".equals(codeString)) 132 return IN; 133 if ("not-in".equals(codeString)) 134 return NOTIN; 135 if ("generalizes".equals(codeString)) 136 return GENERALIZES; 137 if ("exists".equals(codeString)) 138 return EXISTS; 139 if (Configuration.isAcceptInvalidEnums()) 140 return null; 141 else 142 throw new FHIRException("Unknown FilterOperator code '"+codeString+"'"); 143 } 144 public String toCode() { 145 switch (this) { 146 case EQUAL: return "="; 147 case ISA: return "is-a"; 148 case DESCENDENTOF: return "descendent-of"; 149 case ISNOTA: return "is-not-a"; 150 case REGEX: return "regex"; 151 case IN: return "in"; 152 case NOTIN: return "not-in"; 153 case GENERALIZES: return "generalizes"; 154 case EXISTS: return "exists"; 155 default: return "?"; 156 } 157 } 158 public String getSystem() { 159 switch (this) { 160 case EQUAL: return "http://hl7.org/fhir/filter-operator"; 161 case ISA: return "http://hl7.org/fhir/filter-operator"; 162 case DESCENDENTOF: return "http://hl7.org/fhir/filter-operator"; 163 case ISNOTA: return "http://hl7.org/fhir/filter-operator"; 164 case REGEX: return "http://hl7.org/fhir/filter-operator"; 165 case IN: return "http://hl7.org/fhir/filter-operator"; 166 case NOTIN: return "http://hl7.org/fhir/filter-operator"; 167 case GENERALIZES: return "http://hl7.org/fhir/filter-operator"; 168 case EXISTS: return "http://hl7.org/fhir/filter-operator"; 169 default: return "?"; 170 } 171 } 172 public String getDefinition() { 173 switch (this) { 174 case EQUAL: return "The specified property of the code equals the provided value."; 175 case ISA: return "Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, including the provided concept itself (i.e. include child codes)"; 176 case DESCENDENTOF: return "Includes all concept ids that have a transitive is-a relationship with the concept Id provided as the value, excluding the provided concept itself (i.e. include child codes)"; 177 case ISNOTA: return "The specified property of the code does not have an is-a relationship with the provided value."; 178 case REGEX: return "The specified property of the code matches the regex specified in the provided value."; 179 case IN: return "The specified property of the code is in the set of codes or concepts specified in the provided value (comma separated list)."; 180 case NOTIN: return "The specified property of the code is not in the set of codes or concepts specified in the provided value (comma separated list)."; 181 case GENERALIZES: return "Includes all concept ids that have a transitive is-a relationship from the concept Id provided as the value, including the provided concept itself (e.g. include parent codes)"; 182 case EXISTS: return "The specified property of the code has at least one value (if the specified value is true; if the specified value is false, then matches when the specified property of the code has no values)"; 183 default: return "?"; 184 } 185 } 186 public String getDisplay() { 187 switch (this) { 188 case EQUAL: return "Equals"; 189 case ISA: return "Is A (by subsumption)"; 190 case DESCENDENTOF: return "Descendent Of (by subsumption)"; 191 case ISNOTA: return "Not (Is A) (by subsumption)"; 192 case REGEX: return "Regular Expression"; 193 case IN: return "In Set"; 194 case NOTIN: return "Not in Set"; 195 case GENERALIZES: return "Generalizes (by Subsumption)"; 196 case EXISTS: return "Exists"; 197 default: return "?"; 198 } 199 } 200 } 201 202 public static class FilterOperatorEnumFactory implements EnumFactory<FilterOperator> { 203 public FilterOperator fromCode(String codeString) throws IllegalArgumentException { 204 if (codeString == null || "".equals(codeString)) 205 if (codeString == null || "".equals(codeString)) 206 return null; 207 if ("=".equals(codeString)) 208 return FilterOperator.EQUAL; 209 if ("is-a".equals(codeString)) 210 return FilterOperator.ISA; 211 if ("descendent-of".equals(codeString)) 212 return FilterOperator.DESCENDENTOF; 213 if ("is-not-a".equals(codeString)) 214 return FilterOperator.ISNOTA; 215 if ("regex".equals(codeString)) 216 return FilterOperator.REGEX; 217 if ("in".equals(codeString)) 218 return FilterOperator.IN; 219 if ("not-in".equals(codeString)) 220 return FilterOperator.NOTIN; 221 if ("generalizes".equals(codeString)) 222 return FilterOperator.GENERALIZES; 223 if ("exists".equals(codeString)) 224 return FilterOperator.EXISTS; 225 throw new IllegalArgumentException("Unknown FilterOperator code '"+codeString+"'"); 226 } 227 public Enumeration<FilterOperator> fromType(Base code) throws FHIRException { 228 if (code == null) 229 return null; 230 if (code.isEmpty()) 231 return new Enumeration<FilterOperator>(this); 232 String codeString = ((PrimitiveType) code).asStringValue(); 233 if (codeString == null || "".equals(codeString)) 234 return null; 235 if ("=".equals(codeString)) 236 return new Enumeration<FilterOperator>(this, FilterOperator.EQUAL); 237 if ("is-a".equals(codeString)) 238 return new Enumeration<FilterOperator>(this, FilterOperator.ISA); 239 if ("descendent-of".equals(codeString)) 240 return new Enumeration<FilterOperator>(this, FilterOperator.DESCENDENTOF); 241 if ("is-not-a".equals(codeString)) 242 return new Enumeration<FilterOperator>(this, FilterOperator.ISNOTA); 243 if ("regex".equals(codeString)) 244 return new Enumeration<FilterOperator>(this, FilterOperator.REGEX); 245 if ("in".equals(codeString)) 246 return new Enumeration<FilterOperator>(this, FilterOperator.IN); 247 if ("not-in".equals(codeString)) 248 return new Enumeration<FilterOperator>(this, FilterOperator.NOTIN); 249 if ("generalizes".equals(codeString)) 250 return new Enumeration<FilterOperator>(this, FilterOperator.GENERALIZES); 251 if ("exists".equals(codeString)) 252 return new Enumeration<FilterOperator>(this, FilterOperator.EXISTS); 253 throw new FHIRException("Unknown FilterOperator code '"+codeString+"'"); 254 } 255 public String toCode(FilterOperator code) { 256 if (code == FilterOperator.EQUAL) 257 return "="; 258 if (code == FilterOperator.ISA) 259 return "is-a"; 260 if (code == FilterOperator.DESCENDENTOF) 261 return "descendent-of"; 262 if (code == FilterOperator.ISNOTA) 263 return "is-not-a"; 264 if (code == FilterOperator.REGEX) 265 return "regex"; 266 if (code == FilterOperator.IN) 267 return "in"; 268 if (code == FilterOperator.NOTIN) 269 return "not-in"; 270 if (code == FilterOperator.GENERALIZES) 271 return "generalizes"; 272 if (code == FilterOperator.EXISTS) 273 return "exists"; 274 return "?"; 275 } 276 public String toSystem(FilterOperator code) { 277 return code.getSystem(); 278 } 279 } 280 281 @Block() 282 public static class ValueSetComposeComponent extends BackboneElement implements IBaseBackboneElement { 283 /** 284 * If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined. 285 */ 286 @Child(name = "lockedDate", type = {DateType.class}, order=1, min=0, max=1, modifier=false, summary=true) 287 @Description(shortDefinition="Fixed date for version-less references (transitive)", formalDefinition="If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined." ) 288 protected DateType lockedDate; 289 290 /** 291 * Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included). 292 */ 293 @Child(name = "inactive", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=true) 294 @Description(shortDefinition="Whether inactive codes are in the value set", formalDefinition="Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included)." ) 295 protected BooleanType inactive; 296 297 /** 298 * Include one or more codes from a code system or other value set(s). 299 */ 300 @Child(name = "include", type = {}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 301 @Description(shortDefinition="Include one or more codes from a code system or other value set(s)", formalDefinition="Include one or more codes from a code system or other value set(s)." ) 302 protected List<ConceptSetComponent> include; 303 304 /** 305 * Exclude one or more codes from the value set based on code system filters and/or other value sets. 306 */ 307 @Child(name = "exclude", type = {ConceptSetComponent.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 308 @Description(shortDefinition="Explicitly exclude codes from a code system or other value sets", formalDefinition="Exclude one or more codes from the value set based on code system filters and/or other value sets." ) 309 protected List<ConceptSetComponent> exclude; 310 311 private static final long serialVersionUID = -765941757L; 312 313 /** 314 * Constructor 315 */ 316 public ValueSetComposeComponent() { 317 super(); 318 } 319 320 /** 321 * @return {@link #lockedDate} (If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined.). This is the underlying object with id, value and extensions. The accessor "getLockedDate" gives direct access to the value 322 */ 323 public DateType getLockedDateElement() { 324 if (this.lockedDate == null) 325 if (Configuration.errorOnAutoCreate()) 326 throw new Error("Attempt to auto-create ValueSetComposeComponent.lockedDate"); 327 else if (Configuration.doAutoCreate()) 328 this.lockedDate = new DateType(); // bb 329 return this.lockedDate; 330 } 331 332 public boolean hasLockedDateElement() { 333 return this.lockedDate != null && !this.lockedDate.isEmpty(); 334 } 335 336 public boolean hasLockedDate() { 337 return this.lockedDate != null && !this.lockedDate.isEmpty(); 338 } 339 340 /** 341 * @param value {@link #lockedDate} (If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined.). This is the underlying object with id, value and extensions. The accessor "getLockedDate" gives direct access to the value 342 */ 343 public ValueSetComposeComponent setLockedDateElement(DateType value) { 344 this.lockedDate = value; 345 return this; 346 } 347 348 /** 349 * @return If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined. 350 */ 351 public Date getLockedDate() { 352 return this.lockedDate == null ? null : this.lockedDate.getValue(); 353 } 354 355 /** 356 * @param value If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined. 357 */ 358 public ValueSetComposeComponent setLockedDate(Date value) { 359 if (value == null) 360 this.lockedDate = null; 361 else { 362 if (this.lockedDate == null) 363 this.lockedDate = new DateType(); 364 this.lockedDate.setValue(value); 365 } 366 return this; 367 } 368 369 /** 370 * @return {@link #inactive} (Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included).). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 371 */ 372 public BooleanType getInactiveElement() { 373 if (this.inactive == null) 374 if (Configuration.errorOnAutoCreate()) 375 throw new Error("Attempt to auto-create ValueSetComposeComponent.inactive"); 376 else if (Configuration.doAutoCreate()) 377 this.inactive = new BooleanType(); // bb 378 return this.inactive; 379 } 380 381 public boolean hasInactiveElement() { 382 return this.inactive != null && !this.inactive.isEmpty(); 383 } 384 385 public boolean hasInactive() { 386 return this.inactive != null && !this.inactive.isEmpty(); 387 } 388 389 /** 390 * @param value {@link #inactive} (Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included).). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 391 */ 392 public ValueSetComposeComponent setInactiveElement(BooleanType value) { 393 this.inactive = value; 394 return this; 395 } 396 397 /** 398 * @return Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included). 399 */ 400 public boolean getInactive() { 401 return this.inactive == null || this.inactive.isEmpty() ? false : this.inactive.getValue(); 402 } 403 404 /** 405 * @param value Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included). 406 */ 407 public ValueSetComposeComponent setInactive(boolean value) { 408 if (this.inactive == null) 409 this.inactive = new BooleanType(); 410 this.inactive.setValue(value); 411 return this; 412 } 413 414 /** 415 * @return {@link #include} (Include one or more codes from a code system or other value set(s).) 416 */ 417 public List<ConceptSetComponent> getInclude() { 418 if (this.include == null) 419 this.include = new ArrayList<ConceptSetComponent>(); 420 return this.include; 421 } 422 423 /** 424 * @return Returns a reference to <code>this</code> for easy method chaining 425 */ 426 public ValueSetComposeComponent setInclude(List<ConceptSetComponent> theInclude) { 427 this.include = theInclude; 428 return this; 429 } 430 431 public boolean hasInclude() { 432 if (this.include == null) 433 return false; 434 for (ConceptSetComponent item : this.include) 435 if (!item.isEmpty()) 436 return true; 437 return false; 438 } 439 440 public ConceptSetComponent addInclude() { //3 441 ConceptSetComponent t = new ConceptSetComponent(); 442 if (this.include == null) 443 this.include = new ArrayList<ConceptSetComponent>(); 444 this.include.add(t); 445 return t; 446 } 447 448 public ValueSetComposeComponent addInclude(ConceptSetComponent t) { //3 449 if (t == null) 450 return this; 451 if (this.include == null) 452 this.include = new ArrayList<ConceptSetComponent>(); 453 this.include.add(t); 454 return this; 455 } 456 457 /** 458 * @return The first repetition of repeating field {@link #include}, creating it if it does not already exist 459 */ 460 public ConceptSetComponent getIncludeFirstRep() { 461 if (getInclude().isEmpty()) { 462 addInclude(); 463 } 464 return getInclude().get(0); 465 } 466 467 /** 468 * @return {@link #exclude} (Exclude one or more codes from the value set based on code system filters and/or other value sets.) 469 */ 470 public List<ConceptSetComponent> getExclude() { 471 if (this.exclude == null) 472 this.exclude = new ArrayList<ConceptSetComponent>(); 473 return this.exclude; 474 } 475 476 /** 477 * @return Returns a reference to <code>this</code> for easy method chaining 478 */ 479 public ValueSetComposeComponent setExclude(List<ConceptSetComponent> theExclude) { 480 this.exclude = theExclude; 481 return this; 482 } 483 484 public boolean hasExclude() { 485 if (this.exclude == null) 486 return false; 487 for (ConceptSetComponent item : this.exclude) 488 if (!item.isEmpty()) 489 return true; 490 return false; 491 } 492 493 public ConceptSetComponent addExclude() { //3 494 ConceptSetComponent t = new ConceptSetComponent(); 495 if (this.exclude == null) 496 this.exclude = new ArrayList<ConceptSetComponent>(); 497 this.exclude.add(t); 498 return t; 499 } 500 501 public ValueSetComposeComponent addExclude(ConceptSetComponent t) { //3 502 if (t == null) 503 return this; 504 if (this.exclude == null) 505 this.exclude = new ArrayList<ConceptSetComponent>(); 506 this.exclude.add(t); 507 return this; 508 } 509 510 /** 511 * @return The first repetition of repeating field {@link #exclude}, creating it if it does not already exist 512 */ 513 public ConceptSetComponent getExcludeFirstRep() { 514 if (getExclude().isEmpty()) { 515 addExclude(); 516 } 517 return getExclude().get(0); 518 } 519 520 protected void listChildren(List<Property> children) { 521 super.listChildren(children); 522 children.add(new Property("lockedDate", "date", "If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined.", 0, 1, lockedDate)); 523 children.add(new Property("inactive", "boolean", "Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included).", 0, 1, inactive)); 524 children.add(new Property("include", "", "Include one or more codes from a code system or other value set(s).", 0, java.lang.Integer.MAX_VALUE, include)); 525 children.add(new Property("exclude", "@ValueSet.compose.include", "Exclude one or more codes from the value set based on code system filters and/or other value sets.", 0, java.lang.Integer.MAX_VALUE, exclude)); 526 } 527 528 @Override 529 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 530 switch (_hash) { 531 case 1391591896: /*lockedDate*/ return new Property("lockedDate", "date", "If a locked date is defined, then the Content Logical Definition must be evaluated using the current version as of the locked date for referenced code system(s) and value set instances where ValueSet.compose.include.version is not defined.", 0, 1, lockedDate); 532 case 24665195: /*inactive*/ return new Property("inactive", "boolean", "Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable ExpansionProfile (but generally, inactive codes would be expected to be included).", 0, 1, inactive); 533 case 1942574248: /*include*/ return new Property("include", "", "Include one or more codes from a code system or other value set(s).", 0, java.lang.Integer.MAX_VALUE, include); 534 case -1321148966: /*exclude*/ return new Property("exclude", "@ValueSet.compose.include", "Exclude one or more codes from the value set based on code system filters and/or other value sets.", 0, java.lang.Integer.MAX_VALUE, exclude); 535 default: return super.getNamedProperty(_hash, _name, _checkValid); 536 } 537 538 } 539 540 @Override 541 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 542 switch (hash) { 543 case 1391591896: /*lockedDate*/ return this.lockedDate == null ? new Base[0] : new Base[] {this.lockedDate}; // DateType 544 case 24665195: /*inactive*/ return this.inactive == null ? new Base[0] : new Base[] {this.inactive}; // BooleanType 545 case 1942574248: /*include*/ return this.include == null ? new Base[0] : this.include.toArray(new Base[this.include.size()]); // ConceptSetComponent 546 case -1321148966: /*exclude*/ return this.exclude == null ? new Base[0] : this.exclude.toArray(new Base[this.exclude.size()]); // ConceptSetComponent 547 default: return super.getProperty(hash, name, checkValid); 548 } 549 550 } 551 552 @Override 553 public Base setProperty(int hash, String name, Base value) throws FHIRException { 554 switch (hash) { 555 case 1391591896: // lockedDate 556 this.lockedDate = castToDate(value); // DateType 557 return value; 558 case 24665195: // inactive 559 this.inactive = castToBoolean(value); // BooleanType 560 return value; 561 case 1942574248: // include 562 this.getInclude().add((ConceptSetComponent) value); // ConceptSetComponent 563 return value; 564 case -1321148966: // exclude 565 this.getExclude().add((ConceptSetComponent) value); // ConceptSetComponent 566 return value; 567 default: return super.setProperty(hash, name, value); 568 } 569 570 } 571 572 @Override 573 public Base setProperty(String name, Base value) throws FHIRException { 574 if (name.equals("lockedDate")) { 575 this.lockedDate = castToDate(value); // DateType 576 } else if (name.equals("inactive")) { 577 this.inactive = castToBoolean(value); // BooleanType 578 } else if (name.equals("include")) { 579 this.getInclude().add((ConceptSetComponent) value); 580 } else if (name.equals("exclude")) { 581 this.getExclude().add((ConceptSetComponent) value); 582 } else 583 return super.setProperty(name, value); 584 return value; 585 } 586 587 @Override 588 public Base makeProperty(int hash, String name) throws FHIRException { 589 switch (hash) { 590 case 1391591896: return getLockedDateElement(); 591 case 24665195: return getInactiveElement(); 592 case 1942574248: return addInclude(); 593 case -1321148966: return addExclude(); 594 default: return super.makeProperty(hash, name); 595 } 596 597 } 598 599 @Override 600 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 601 switch (hash) { 602 case 1391591896: /*lockedDate*/ return new String[] {"date"}; 603 case 24665195: /*inactive*/ return new String[] {"boolean"}; 604 case 1942574248: /*include*/ return new String[] {}; 605 case -1321148966: /*exclude*/ return new String[] {"@ValueSet.compose.include"}; 606 default: return super.getTypesForProperty(hash, name); 607 } 608 609 } 610 611 @Override 612 public Base addChild(String name) throws FHIRException { 613 if (name.equals("lockedDate")) { 614 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.lockedDate"); 615 } 616 else if (name.equals("inactive")) { 617 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.inactive"); 618 } 619 else if (name.equals("include")) { 620 return addInclude(); 621 } 622 else if (name.equals("exclude")) { 623 return addExclude(); 624 } 625 else 626 return super.addChild(name); 627 } 628 629 public ValueSetComposeComponent copy() { 630 ValueSetComposeComponent dst = new ValueSetComposeComponent(); 631 copyValues(dst); 632 dst.lockedDate = lockedDate == null ? null : lockedDate.copy(); 633 dst.inactive = inactive == null ? null : inactive.copy(); 634 if (include != null) { 635 dst.include = new ArrayList<ConceptSetComponent>(); 636 for (ConceptSetComponent i : include) 637 dst.include.add(i.copy()); 638 }; 639 if (exclude != null) { 640 dst.exclude = new ArrayList<ConceptSetComponent>(); 641 for (ConceptSetComponent i : exclude) 642 dst.exclude.add(i.copy()); 643 }; 644 return dst; 645 } 646 647 @Override 648 public boolean equalsDeep(Base other_) { 649 if (!super.equalsDeep(other_)) 650 return false; 651 if (!(other_ instanceof ValueSetComposeComponent)) 652 return false; 653 ValueSetComposeComponent o = (ValueSetComposeComponent) other_; 654 return compareDeep(lockedDate, o.lockedDate, true) && compareDeep(inactive, o.inactive, true) && compareDeep(include, o.include, true) 655 && compareDeep(exclude, o.exclude, true); 656 } 657 658 @Override 659 public boolean equalsShallow(Base other_) { 660 if (!super.equalsShallow(other_)) 661 return false; 662 if (!(other_ instanceof ValueSetComposeComponent)) 663 return false; 664 ValueSetComposeComponent o = (ValueSetComposeComponent) other_; 665 return compareValues(lockedDate, o.lockedDate, true) && compareValues(inactive, o.inactive, true); 666 } 667 668 public boolean isEmpty() { 669 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(lockedDate, inactive, include 670 , exclude); 671 } 672 673 public String fhirType() { 674 return "ValueSet.compose"; 675 676 } 677 678 } 679 680 @Block() 681 public static class ConceptSetComponent extends BackboneElement implements IBaseBackboneElement { 682 /** 683 * An absolute URI which is the code system from which the selected codes come from. 684 */ 685 @Child(name = "system", type = {UriType.class}, order=1, min=0, max=1, modifier=false, summary=true) 686 @Description(shortDefinition="The system the codes come from", formalDefinition="An absolute URI which is the code system from which the selected codes come from." ) 687 protected UriType system; 688 689 /** 690 * The version of the code system that the codes are selected from. 691 */ 692 @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true) 693 @Description(shortDefinition="Specific version of the code system referred to", formalDefinition="The version of the code system that the codes are selected from." ) 694 protected StringType version; 695 696 /** 697 * Specifies a concept to be included or excluded. 698 */ 699 @Child(name = "concept", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 700 @Description(shortDefinition="A concept defined in the system", formalDefinition="Specifies a concept to be included or excluded." ) 701 protected List<ConceptReferenceComponent> concept; 702 703 /** 704 * Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true. 705 */ 706 @Child(name = "filter", type = {}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=true, summary=true) 707 @Description(shortDefinition="Select codes/concepts by their properties (including relationships)", formalDefinition="Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true." ) 708 protected List<ConceptSetFilterComponent> filter; 709 710 /** 711 * Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url. 712 */ 713 @Child(name = "valueSet", type = {UriType.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 714 @Description(shortDefinition="Select only contents included in this value set", formalDefinition="Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url." ) 715 protected List<UriType> valueSet; 716 717 private static final long serialVersionUID = -1322183438L; 718 719 /** 720 * Constructor 721 */ 722 public ConceptSetComponent() { 723 super(); 724 } 725 726 /** 727 * @return {@link #system} (An absolute URI which is the code system from which the selected codes come from.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 728 */ 729 public UriType getSystemElement() { 730 if (this.system == null) 731 if (Configuration.errorOnAutoCreate()) 732 throw new Error("Attempt to auto-create ConceptSetComponent.system"); 733 else if (Configuration.doAutoCreate()) 734 this.system = new UriType(); // bb 735 return this.system; 736 } 737 738 public boolean hasSystemElement() { 739 return this.system != null && !this.system.isEmpty(); 740 } 741 742 public boolean hasSystem() { 743 return this.system != null && !this.system.isEmpty(); 744 } 745 746 /** 747 * @param value {@link #system} (An absolute URI which is the code system from which the selected codes come from.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 748 */ 749 public ConceptSetComponent setSystemElement(UriType value) { 750 this.system = value; 751 return this; 752 } 753 754 /** 755 * @return An absolute URI which is the code system from which the selected codes come from. 756 */ 757 public String getSystem() { 758 return this.system == null ? null : this.system.getValue(); 759 } 760 761 /** 762 * @param value An absolute URI which is the code system from which the selected codes come from. 763 */ 764 public ConceptSetComponent setSystem(String value) { 765 if (Utilities.noString(value)) 766 this.system = null; 767 else { 768 if (this.system == null) 769 this.system = new UriType(); 770 this.system.setValue(value); 771 } 772 return this; 773 } 774 775 /** 776 * @return {@link #version} (The version of the code system that the codes are selected from.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 777 */ 778 public StringType getVersionElement() { 779 if (this.version == null) 780 if (Configuration.errorOnAutoCreate()) 781 throw new Error("Attempt to auto-create ConceptSetComponent.version"); 782 else if (Configuration.doAutoCreate()) 783 this.version = new StringType(); // bb 784 return this.version; 785 } 786 787 public boolean hasVersionElement() { 788 return this.version != null && !this.version.isEmpty(); 789 } 790 791 public boolean hasVersion() { 792 return this.version != null && !this.version.isEmpty(); 793 } 794 795 /** 796 * @param value {@link #version} (The version of the code system that the codes are selected from.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 797 */ 798 public ConceptSetComponent setVersionElement(StringType value) { 799 this.version = value; 800 return this; 801 } 802 803 /** 804 * @return The version of the code system that the codes are selected from. 805 */ 806 public String getVersion() { 807 return this.version == null ? null : this.version.getValue(); 808 } 809 810 /** 811 * @param value The version of the code system that the codes are selected from. 812 */ 813 public ConceptSetComponent setVersion(String value) { 814 if (Utilities.noString(value)) 815 this.version = null; 816 else { 817 if (this.version == null) 818 this.version = new StringType(); 819 this.version.setValue(value); 820 } 821 return this; 822 } 823 824 /** 825 * @return {@link #concept} (Specifies a concept to be included or excluded.) 826 */ 827 public List<ConceptReferenceComponent> getConcept() { 828 if (this.concept == null) 829 this.concept = new ArrayList<ConceptReferenceComponent>(); 830 return this.concept; 831 } 832 833 /** 834 * @return Returns a reference to <code>this</code> for easy method chaining 835 */ 836 public ConceptSetComponent setConcept(List<ConceptReferenceComponent> theConcept) { 837 this.concept = theConcept; 838 return this; 839 } 840 841 public boolean hasConcept() { 842 if (this.concept == null) 843 return false; 844 for (ConceptReferenceComponent item : this.concept) 845 if (!item.isEmpty()) 846 return true; 847 return false; 848 } 849 850 public ConceptReferenceComponent addConcept() { //3 851 ConceptReferenceComponent t = new ConceptReferenceComponent(); 852 if (this.concept == null) 853 this.concept = new ArrayList<ConceptReferenceComponent>(); 854 this.concept.add(t); 855 return t; 856 } 857 858 public ConceptSetComponent addConcept(ConceptReferenceComponent t) { //3 859 if (t == null) 860 return this; 861 if (this.concept == null) 862 this.concept = new ArrayList<ConceptReferenceComponent>(); 863 this.concept.add(t); 864 return this; 865 } 866 867 /** 868 * @return The first repetition of repeating field {@link #concept}, creating it if it does not already exist 869 */ 870 public ConceptReferenceComponent getConceptFirstRep() { 871 if (getConcept().isEmpty()) { 872 addConcept(); 873 } 874 return getConcept().get(0); 875 } 876 877 /** 878 * @return {@link #filter} (Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.) 879 */ 880 public List<ConceptSetFilterComponent> getFilter() { 881 if (this.filter == null) 882 this.filter = new ArrayList<ConceptSetFilterComponent>(); 883 return this.filter; 884 } 885 886 /** 887 * @return Returns a reference to <code>this</code> for easy method chaining 888 */ 889 public ConceptSetComponent setFilter(List<ConceptSetFilterComponent> theFilter) { 890 this.filter = theFilter; 891 return this; 892 } 893 894 public boolean hasFilter() { 895 if (this.filter == null) 896 return false; 897 for (ConceptSetFilterComponent item : this.filter) 898 if (!item.isEmpty()) 899 return true; 900 return false; 901 } 902 903 public ConceptSetFilterComponent addFilter() { //3 904 ConceptSetFilterComponent t = new ConceptSetFilterComponent(); 905 if (this.filter == null) 906 this.filter = new ArrayList<ConceptSetFilterComponent>(); 907 this.filter.add(t); 908 return t; 909 } 910 911 public ConceptSetComponent addFilter(ConceptSetFilterComponent t) { //3 912 if (t == null) 913 return this; 914 if (this.filter == null) 915 this.filter = new ArrayList<ConceptSetFilterComponent>(); 916 this.filter.add(t); 917 return this; 918 } 919 920 /** 921 * @return The first repetition of repeating field {@link #filter}, creating it if it does not already exist 922 */ 923 public ConceptSetFilterComponent getFilterFirstRep() { 924 if (getFilter().isEmpty()) { 925 addFilter(); 926 } 927 return getFilter().get(0); 928 } 929 930 /** 931 * @return {@link #valueSet} (Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.) 932 */ 933 public List<UriType> getValueSet() { 934 if (this.valueSet == null) 935 this.valueSet = new ArrayList<UriType>(); 936 return this.valueSet; 937 } 938 939 /** 940 * @return Returns a reference to <code>this</code> for easy method chaining 941 */ 942 public ConceptSetComponent setValueSet(List<UriType> theValueSet) { 943 this.valueSet = theValueSet; 944 return this; 945 } 946 947 public boolean hasValueSet() { 948 if (this.valueSet == null) 949 return false; 950 for (UriType item : this.valueSet) 951 if (!item.isEmpty()) 952 return true; 953 return false; 954 } 955 956 /** 957 * @return {@link #valueSet} (Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.) 958 */ 959 public UriType addValueSetElement() {//2 960 UriType t = new UriType(); 961 if (this.valueSet == null) 962 this.valueSet = new ArrayList<UriType>(); 963 this.valueSet.add(t); 964 return t; 965 } 966 967 /** 968 * @param value {@link #valueSet} (Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.) 969 */ 970 public ConceptSetComponent addValueSet(String value) { //1 971 UriType t = new UriType(); 972 t.setValue(value); 973 if (this.valueSet == null) 974 this.valueSet = new ArrayList<UriType>(); 975 this.valueSet.add(t); 976 return this; 977 } 978 979 /** 980 * @param value {@link #valueSet} (Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.) 981 */ 982 public boolean hasValueSet(String value) { 983 if (this.valueSet == null) 984 return false; 985 for (UriType v : this.valueSet) 986 if (v.getValue().equals(value)) // uri 987 return true; 988 return false; 989 } 990 991 protected void listChildren(List<Property> children) { 992 super.listChildren(children); 993 children.add(new Property("system", "uri", "An absolute URI which is the code system from which the selected codes come from.", 0, 1, system)); 994 children.add(new Property("version", "string", "The version of the code system that the codes are selected from.", 0, 1, version)); 995 children.add(new Property("concept", "", "Specifies a concept to be included or excluded.", 0, java.lang.Integer.MAX_VALUE, concept)); 996 children.add(new Property("filter", "", "Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.", 0, java.lang.Integer.MAX_VALUE, filter)); 997 children.add(new Property("valueSet", "uri", "Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.", 0, java.lang.Integer.MAX_VALUE, valueSet)); 998 } 999 1000 @Override 1001 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1002 switch (_hash) { 1003 case -887328209: /*system*/ return new Property("system", "uri", "An absolute URI which is the code system from which the selected codes come from.", 0, 1, system); 1004 case 351608024: /*version*/ return new Property("version", "string", "The version of the code system that the codes are selected from.", 0, 1, version); 1005 case 951024232: /*concept*/ return new Property("concept", "", "Specifies a concept to be included or excluded.", 0, java.lang.Integer.MAX_VALUE, concept); 1006 case -1274492040: /*filter*/ return new Property("filter", "", "Select concepts by specify a matching criteria based on the properties (including relationships) defined by the system. If multiple filters are specified, they SHALL all be true.", 0, java.lang.Integer.MAX_VALUE, filter); 1007 case -1410174671: /*valueSet*/ return new Property("valueSet", "uri", "Selects concepts found in this value set. This is an absolute URI that is a reference to ValueSet.url.", 0, java.lang.Integer.MAX_VALUE, valueSet); 1008 default: return super.getNamedProperty(_hash, _name, _checkValid); 1009 } 1010 1011 } 1012 1013 @Override 1014 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1015 switch (hash) { 1016 case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // UriType 1017 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 1018 case 951024232: /*concept*/ return this.concept == null ? new Base[0] : this.concept.toArray(new Base[this.concept.size()]); // ConceptReferenceComponent 1019 case -1274492040: /*filter*/ return this.filter == null ? new Base[0] : this.filter.toArray(new Base[this.filter.size()]); // ConceptSetFilterComponent 1020 case -1410174671: /*valueSet*/ return this.valueSet == null ? new Base[0] : this.valueSet.toArray(new Base[this.valueSet.size()]); // UriType 1021 default: return super.getProperty(hash, name, checkValid); 1022 } 1023 1024 } 1025 1026 @Override 1027 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1028 switch (hash) { 1029 case -887328209: // system 1030 this.system = castToUri(value); // UriType 1031 return value; 1032 case 351608024: // version 1033 this.version = castToString(value); // StringType 1034 return value; 1035 case 951024232: // concept 1036 this.getConcept().add((ConceptReferenceComponent) value); // ConceptReferenceComponent 1037 return value; 1038 case -1274492040: // filter 1039 this.getFilter().add((ConceptSetFilterComponent) value); // ConceptSetFilterComponent 1040 return value; 1041 case -1410174671: // valueSet 1042 this.getValueSet().add(castToUri(value)); // UriType 1043 return value; 1044 default: return super.setProperty(hash, name, value); 1045 } 1046 1047 } 1048 1049 @Override 1050 public Base setProperty(String name, Base value) throws FHIRException { 1051 if (name.equals("system")) { 1052 this.system = castToUri(value); // UriType 1053 } else if (name.equals("version")) { 1054 this.version = castToString(value); // StringType 1055 } else if (name.equals("concept")) { 1056 this.getConcept().add((ConceptReferenceComponent) value); 1057 } else if (name.equals("filter")) { 1058 this.getFilter().add((ConceptSetFilterComponent) value); 1059 } else if (name.equals("valueSet")) { 1060 this.getValueSet().add(castToUri(value)); 1061 } else 1062 return super.setProperty(name, value); 1063 return value; 1064 } 1065 1066 @Override 1067 public Base makeProperty(int hash, String name) throws FHIRException { 1068 switch (hash) { 1069 case -887328209: return getSystemElement(); 1070 case 351608024: return getVersionElement(); 1071 case 951024232: return addConcept(); 1072 case -1274492040: return addFilter(); 1073 case -1410174671: return addValueSetElement(); 1074 default: return super.makeProperty(hash, name); 1075 } 1076 1077 } 1078 1079 @Override 1080 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1081 switch (hash) { 1082 case -887328209: /*system*/ return new String[] {"uri"}; 1083 case 351608024: /*version*/ return new String[] {"string"}; 1084 case 951024232: /*concept*/ return new String[] {}; 1085 case -1274492040: /*filter*/ return new String[] {}; 1086 case -1410174671: /*valueSet*/ return new String[] {"uri"}; 1087 default: return super.getTypesForProperty(hash, name); 1088 } 1089 1090 } 1091 1092 @Override 1093 public Base addChild(String name) throws FHIRException { 1094 if (name.equals("system")) { 1095 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.system"); 1096 } 1097 else if (name.equals("version")) { 1098 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.version"); 1099 } 1100 else if (name.equals("concept")) { 1101 return addConcept(); 1102 } 1103 else if (name.equals("filter")) { 1104 return addFilter(); 1105 } 1106 else if (name.equals("valueSet")) { 1107 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.valueSet"); 1108 } 1109 else 1110 return super.addChild(name); 1111 } 1112 1113 public ConceptSetComponent copy() { 1114 ConceptSetComponent dst = new ConceptSetComponent(); 1115 copyValues(dst); 1116 dst.system = system == null ? null : system.copy(); 1117 dst.version = version == null ? null : version.copy(); 1118 if (concept != null) { 1119 dst.concept = new ArrayList<ConceptReferenceComponent>(); 1120 for (ConceptReferenceComponent i : concept) 1121 dst.concept.add(i.copy()); 1122 }; 1123 if (filter != null) { 1124 dst.filter = new ArrayList<ConceptSetFilterComponent>(); 1125 for (ConceptSetFilterComponent i : filter) 1126 dst.filter.add(i.copy()); 1127 }; 1128 if (valueSet != null) { 1129 dst.valueSet = new ArrayList<UriType>(); 1130 for (UriType i : valueSet) 1131 dst.valueSet.add(i.copy()); 1132 }; 1133 return dst; 1134 } 1135 1136 @Override 1137 public boolean equalsDeep(Base other_) { 1138 if (!super.equalsDeep(other_)) 1139 return false; 1140 if (!(other_ instanceof ConceptSetComponent)) 1141 return false; 1142 ConceptSetComponent o = (ConceptSetComponent) other_; 1143 return compareDeep(system, o.system, true) && compareDeep(version, o.version, true) && compareDeep(concept, o.concept, true) 1144 && compareDeep(filter, o.filter, true) && compareDeep(valueSet, o.valueSet, true); 1145 } 1146 1147 @Override 1148 public boolean equalsShallow(Base other_) { 1149 if (!super.equalsShallow(other_)) 1150 return false; 1151 if (!(other_ instanceof ConceptSetComponent)) 1152 return false; 1153 ConceptSetComponent o = (ConceptSetComponent) other_; 1154 return compareValues(system, o.system, true) && compareValues(version, o.version, true) && compareValues(valueSet, o.valueSet, true) 1155 ; 1156 } 1157 1158 public boolean isEmpty() { 1159 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(system, version, concept 1160 , filter, valueSet); 1161 } 1162 1163 public String fhirType() { 1164 return "ValueSet.compose.include"; 1165 1166 } 1167 1168 } 1169 1170 @Block() 1171 public static class ConceptReferenceComponent extends BackboneElement implements IBaseBackboneElement { 1172 /** 1173 * Specifies a code for the concept to be included or excluded. 1174 */ 1175 @Child(name = "code", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=false) 1176 @Description(shortDefinition="Code or expression from system", formalDefinition="Specifies a code for the concept to be included or excluded." ) 1177 protected CodeType code; 1178 1179 /** 1180 * The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system. 1181 */ 1182 @Child(name = "display", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=false) 1183 @Description(shortDefinition="Text to display for this code for this value set in this valueset", formalDefinition="The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system." ) 1184 protected StringType display; 1185 1186 /** 1187 * Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc. 1188 */ 1189 @Child(name = "designation", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1190 @Description(shortDefinition="Additional representations for this concept", formalDefinition="Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc." ) 1191 protected List<ConceptReferenceDesignationComponent> designation; 1192 1193 private static final long serialVersionUID = 260579971L; 1194 1195 /** 1196 * Constructor 1197 */ 1198 public ConceptReferenceComponent() { 1199 super(); 1200 } 1201 1202 /** 1203 * Constructor 1204 */ 1205 public ConceptReferenceComponent(CodeType code) { 1206 super(); 1207 this.code = code; 1208 } 1209 1210 /** 1211 * @return {@link #code} (Specifies a code for the concept to be included or excluded.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1212 */ 1213 public CodeType getCodeElement() { 1214 if (this.code == null) 1215 if (Configuration.errorOnAutoCreate()) 1216 throw new Error("Attempt to auto-create ConceptReferenceComponent.code"); 1217 else if (Configuration.doAutoCreate()) 1218 this.code = new CodeType(); // bb 1219 return this.code; 1220 } 1221 1222 public boolean hasCodeElement() { 1223 return this.code != null && !this.code.isEmpty(); 1224 } 1225 1226 public boolean hasCode() { 1227 return this.code != null && !this.code.isEmpty(); 1228 } 1229 1230 /** 1231 * @param value {@link #code} (Specifies a code for the concept to be included or excluded.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1232 */ 1233 public ConceptReferenceComponent setCodeElement(CodeType value) { 1234 this.code = value; 1235 return this; 1236 } 1237 1238 /** 1239 * @return Specifies a code for the concept to be included or excluded. 1240 */ 1241 public String getCode() { 1242 return this.code == null ? null : this.code.getValue(); 1243 } 1244 1245 /** 1246 * @param value Specifies a code for the concept to be included or excluded. 1247 */ 1248 public ConceptReferenceComponent setCode(String value) { 1249 if (this.code == null) 1250 this.code = new CodeType(); 1251 this.code.setValue(value); 1252 return this; 1253 } 1254 1255 /** 1256 * @return {@link #display} (The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1257 */ 1258 public StringType getDisplayElement() { 1259 if (this.display == null) 1260 if (Configuration.errorOnAutoCreate()) 1261 throw new Error("Attempt to auto-create ConceptReferenceComponent.display"); 1262 else if (Configuration.doAutoCreate()) 1263 this.display = new StringType(); // bb 1264 return this.display; 1265 } 1266 1267 public boolean hasDisplayElement() { 1268 return this.display != null && !this.display.isEmpty(); 1269 } 1270 1271 public boolean hasDisplay() { 1272 return this.display != null && !this.display.isEmpty(); 1273 } 1274 1275 /** 1276 * @param value {@link #display} (The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 1277 */ 1278 public ConceptReferenceComponent setDisplayElement(StringType value) { 1279 this.display = value; 1280 return this; 1281 } 1282 1283 /** 1284 * @return The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system. 1285 */ 1286 public String getDisplay() { 1287 return this.display == null ? null : this.display.getValue(); 1288 } 1289 1290 /** 1291 * @param value The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system. 1292 */ 1293 public ConceptReferenceComponent setDisplay(String value) { 1294 if (Utilities.noString(value)) 1295 this.display = null; 1296 else { 1297 if (this.display == null) 1298 this.display = new StringType(); 1299 this.display.setValue(value); 1300 } 1301 return this; 1302 } 1303 1304 /** 1305 * @return {@link #designation} (Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc.) 1306 */ 1307 public List<ConceptReferenceDesignationComponent> getDesignation() { 1308 if (this.designation == null) 1309 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 1310 return this.designation; 1311 } 1312 1313 /** 1314 * @return Returns a reference to <code>this</code> for easy method chaining 1315 */ 1316 public ConceptReferenceComponent setDesignation(List<ConceptReferenceDesignationComponent> theDesignation) { 1317 this.designation = theDesignation; 1318 return this; 1319 } 1320 1321 public boolean hasDesignation() { 1322 if (this.designation == null) 1323 return false; 1324 for (ConceptReferenceDesignationComponent item : this.designation) 1325 if (!item.isEmpty()) 1326 return true; 1327 return false; 1328 } 1329 1330 public ConceptReferenceDesignationComponent addDesignation() { //3 1331 ConceptReferenceDesignationComponent t = new ConceptReferenceDesignationComponent(); 1332 if (this.designation == null) 1333 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 1334 this.designation.add(t); 1335 return t; 1336 } 1337 1338 public ConceptReferenceComponent addDesignation(ConceptReferenceDesignationComponent t) { //3 1339 if (t == null) 1340 return this; 1341 if (this.designation == null) 1342 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 1343 this.designation.add(t); 1344 return this; 1345 } 1346 1347 /** 1348 * @return The first repetition of repeating field {@link #designation}, creating it if it does not already exist 1349 */ 1350 public ConceptReferenceDesignationComponent getDesignationFirstRep() { 1351 if (getDesignation().isEmpty()) { 1352 addDesignation(); 1353 } 1354 return getDesignation().get(0); 1355 } 1356 1357 protected void listChildren(List<Property> children) { 1358 super.listChildren(children); 1359 children.add(new Property("code", "code", "Specifies a code for the concept to be included or excluded.", 0, 1, code)); 1360 children.add(new Property("display", "string", "The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.", 0, 1, display)); 1361 children.add(new Property("designation", "", "Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc.", 0, java.lang.Integer.MAX_VALUE, designation)); 1362 } 1363 1364 @Override 1365 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1366 switch (_hash) { 1367 case 3059181: /*code*/ return new Property("code", "code", "Specifies a code for the concept to be included or excluded.", 0, 1, code); 1368 case 1671764162: /*display*/ return new Property("display", "string", "The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system.", 0, 1, display); 1369 case -900931593: /*designation*/ return new Property("designation", "", "Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc.", 0, java.lang.Integer.MAX_VALUE, designation); 1370 default: return super.getNamedProperty(_hash, _name, _checkValid); 1371 } 1372 1373 } 1374 1375 @Override 1376 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1377 switch (hash) { 1378 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 1379 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 1380 case -900931593: /*designation*/ return this.designation == null ? new Base[0] : this.designation.toArray(new Base[this.designation.size()]); // ConceptReferenceDesignationComponent 1381 default: return super.getProperty(hash, name, checkValid); 1382 } 1383 1384 } 1385 1386 @Override 1387 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1388 switch (hash) { 1389 case 3059181: // code 1390 this.code = castToCode(value); // CodeType 1391 return value; 1392 case 1671764162: // display 1393 this.display = castToString(value); // StringType 1394 return value; 1395 case -900931593: // designation 1396 this.getDesignation().add((ConceptReferenceDesignationComponent) value); // ConceptReferenceDesignationComponent 1397 return value; 1398 default: return super.setProperty(hash, name, value); 1399 } 1400 1401 } 1402 1403 @Override 1404 public Base setProperty(String name, Base value) throws FHIRException { 1405 if (name.equals("code")) { 1406 this.code = castToCode(value); // CodeType 1407 } else if (name.equals("display")) { 1408 this.display = castToString(value); // StringType 1409 } else if (name.equals("designation")) { 1410 this.getDesignation().add((ConceptReferenceDesignationComponent) value); 1411 } else 1412 return super.setProperty(name, value); 1413 return value; 1414 } 1415 1416 @Override 1417 public Base makeProperty(int hash, String name) throws FHIRException { 1418 switch (hash) { 1419 case 3059181: return getCodeElement(); 1420 case 1671764162: return getDisplayElement(); 1421 case -900931593: return addDesignation(); 1422 default: return super.makeProperty(hash, name); 1423 } 1424 1425 } 1426 1427 @Override 1428 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1429 switch (hash) { 1430 case 3059181: /*code*/ return new String[] {"code"}; 1431 case 1671764162: /*display*/ return new String[] {"string"}; 1432 case -900931593: /*designation*/ return new String[] {}; 1433 default: return super.getTypesForProperty(hash, name); 1434 } 1435 1436 } 1437 1438 @Override 1439 public Base addChild(String name) throws FHIRException { 1440 if (name.equals("code")) { 1441 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.code"); 1442 } 1443 else if (name.equals("display")) { 1444 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.display"); 1445 } 1446 else if (name.equals("designation")) { 1447 return addDesignation(); 1448 } 1449 else 1450 return super.addChild(name); 1451 } 1452 1453 public ConceptReferenceComponent copy() { 1454 ConceptReferenceComponent dst = new ConceptReferenceComponent(); 1455 copyValues(dst); 1456 dst.code = code == null ? null : code.copy(); 1457 dst.display = display == null ? null : display.copy(); 1458 if (designation != null) { 1459 dst.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 1460 for (ConceptReferenceDesignationComponent i : designation) 1461 dst.designation.add(i.copy()); 1462 }; 1463 return dst; 1464 } 1465 1466 @Override 1467 public boolean equalsDeep(Base other_) { 1468 if (!super.equalsDeep(other_)) 1469 return false; 1470 if (!(other_ instanceof ConceptReferenceComponent)) 1471 return false; 1472 ConceptReferenceComponent o = (ConceptReferenceComponent) other_; 1473 return compareDeep(code, o.code, true) && compareDeep(display, o.display, true) && compareDeep(designation, o.designation, true) 1474 ; 1475 } 1476 1477 @Override 1478 public boolean equalsShallow(Base other_) { 1479 if (!super.equalsShallow(other_)) 1480 return false; 1481 if (!(other_ instanceof ConceptReferenceComponent)) 1482 return false; 1483 ConceptReferenceComponent o = (ConceptReferenceComponent) other_; 1484 return compareValues(code, o.code, true) && compareValues(display, o.display, true); 1485 } 1486 1487 public boolean isEmpty() { 1488 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(code, display, designation 1489 ); 1490 } 1491 1492 public String fhirType() { 1493 return "ValueSet.compose.include.concept"; 1494 1495 } 1496 1497 } 1498 1499 @Block() 1500 public static class ConceptReferenceDesignationComponent extends BackboneElement implements IBaseBackboneElement { 1501 /** 1502 * The language this designation is defined for. 1503 */ 1504 @Child(name = "language", type = {CodeType.class}, order=1, min=0, max=1, modifier=false, summary=false) 1505 @Description(shortDefinition="Human language of the designation", formalDefinition="The language this designation is defined for." ) 1506 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/languages") 1507 protected CodeType language; 1508 1509 /** 1510 * A code that details how this designation would be used. 1511 */ 1512 @Child(name = "use", type = {Coding.class}, order=2, min=0, max=1, modifier=false, summary=false) 1513 @Description(shortDefinition="Details how this designation would be used", formalDefinition="A code that details how this designation would be used." ) 1514 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/designation-use") 1515 protected Coding use; 1516 1517 /** 1518 * The text value for this designation. 1519 */ 1520 @Child(name = "value", type = {StringType.class}, order=3, min=1, max=1, modifier=false, summary=false) 1521 @Description(shortDefinition="The text value for this designation", formalDefinition="The text value for this designation." ) 1522 protected StringType value; 1523 1524 private static final long serialVersionUID = 1515662414L; 1525 1526 /** 1527 * Constructor 1528 */ 1529 public ConceptReferenceDesignationComponent() { 1530 super(); 1531 } 1532 1533 /** 1534 * Constructor 1535 */ 1536 public ConceptReferenceDesignationComponent(StringType value) { 1537 super(); 1538 this.value = value; 1539 } 1540 1541 /** 1542 * @return {@link #language} (The language this designation is defined for.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value 1543 */ 1544 public CodeType getLanguageElement() { 1545 if (this.language == null) 1546 if (Configuration.errorOnAutoCreate()) 1547 throw new Error("Attempt to auto-create ConceptReferenceDesignationComponent.language"); 1548 else if (Configuration.doAutoCreate()) 1549 this.language = new CodeType(); // bb 1550 return this.language; 1551 } 1552 1553 public boolean hasLanguageElement() { 1554 return this.language != null && !this.language.isEmpty(); 1555 } 1556 1557 public boolean hasLanguage() { 1558 return this.language != null && !this.language.isEmpty(); 1559 } 1560 1561 /** 1562 * @param value {@link #language} (The language this designation is defined for.). This is the underlying object with id, value and extensions. The accessor "getLanguage" gives direct access to the value 1563 */ 1564 public ConceptReferenceDesignationComponent setLanguageElement(CodeType value) { 1565 this.language = value; 1566 return this; 1567 } 1568 1569 /** 1570 * @return The language this designation is defined for. 1571 */ 1572 public String getLanguage() { 1573 return this.language == null ? null : this.language.getValue(); 1574 } 1575 1576 /** 1577 * @param value The language this designation is defined for. 1578 */ 1579 public ConceptReferenceDesignationComponent setLanguage(String value) { 1580 if (Utilities.noString(value)) 1581 this.language = null; 1582 else { 1583 if (this.language == null) 1584 this.language = new CodeType(); 1585 this.language.setValue(value); 1586 } 1587 return this; 1588 } 1589 1590 /** 1591 * @return {@link #use} (A code that details how this designation would be used.) 1592 */ 1593 public Coding getUse() { 1594 if (this.use == null) 1595 if (Configuration.errorOnAutoCreate()) 1596 throw new Error("Attempt to auto-create ConceptReferenceDesignationComponent.use"); 1597 else if (Configuration.doAutoCreate()) 1598 this.use = new Coding(); // cc 1599 return this.use; 1600 } 1601 1602 public boolean hasUse() { 1603 return this.use != null && !this.use.isEmpty(); 1604 } 1605 1606 /** 1607 * @param value {@link #use} (A code that details how this designation would be used.) 1608 */ 1609 public ConceptReferenceDesignationComponent setUse(Coding value) { 1610 this.use = value; 1611 return this; 1612 } 1613 1614 /** 1615 * @return {@link #value} (The text value for this designation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1616 */ 1617 public StringType getValueElement() { 1618 if (this.value == null) 1619 if (Configuration.errorOnAutoCreate()) 1620 throw new Error("Attempt to auto-create ConceptReferenceDesignationComponent.value"); 1621 else if (Configuration.doAutoCreate()) 1622 this.value = new StringType(); // bb 1623 return this.value; 1624 } 1625 1626 public boolean hasValueElement() { 1627 return this.value != null && !this.value.isEmpty(); 1628 } 1629 1630 public boolean hasValue() { 1631 return this.value != null && !this.value.isEmpty(); 1632 } 1633 1634 /** 1635 * @param value {@link #value} (The text value for this designation.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1636 */ 1637 public ConceptReferenceDesignationComponent setValueElement(StringType value) { 1638 this.value = value; 1639 return this; 1640 } 1641 1642 /** 1643 * @return The text value for this designation. 1644 */ 1645 public String getValue() { 1646 return this.value == null ? null : this.value.getValue(); 1647 } 1648 1649 /** 1650 * @param value The text value for this designation. 1651 */ 1652 public ConceptReferenceDesignationComponent setValue(String value) { 1653 if (this.value == null) 1654 this.value = new StringType(); 1655 this.value.setValue(value); 1656 return this; 1657 } 1658 1659 protected void listChildren(List<Property> children) { 1660 super.listChildren(children); 1661 children.add(new Property("language", "code", "The language this designation is defined for.", 0, 1, language)); 1662 children.add(new Property("use", "Coding", "A code that details how this designation would be used.", 0, 1, use)); 1663 children.add(new Property("value", "string", "The text value for this designation.", 0, 1, value)); 1664 } 1665 1666 @Override 1667 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1668 switch (_hash) { 1669 case -1613589672: /*language*/ return new Property("language", "code", "The language this designation is defined for.", 0, 1, language); 1670 case 116103: /*use*/ return new Property("use", "Coding", "A code that details how this designation would be used.", 0, 1, use); 1671 case 111972721: /*value*/ return new Property("value", "string", "The text value for this designation.", 0, 1, value); 1672 default: return super.getNamedProperty(_hash, _name, _checkValid); 1673 } 1674 1675 } 1676 1677 @Override 1678 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1679 switch (hash) { 1680 case -1613589672: /*language*/ return this.language == null ? new Base[0] : new Base[] {this.language}; // CodeType 1681 case 116103: /*use*/ return this.use == null ? new Base[0] : new Base[] {this.use}; // Coding 1682 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // StringType 1683 default: return super.getProperty(hash, name, checkValid); 1684 } 1685 1686 } 1687 1688 @Override 1689 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1690 switch (hash) { 1691 case -1613589672: // language 1692 this.language = castToCode(value); // CodeType 1693 return value; 1694 case 116103: // use 1695 this.use = castToCoding(value); // Coding 1696 return value; 1697 case 111972721: // value 1698 this.value = castToString(value); // StringType 1699 return value; 1700 default: return super.setProperty(hash, name, value); 1701 } 1702 1703 } 1704 1705 @Override 1706 public Base setProperty(String name, Base value) throws FHIRException { 1707 if (name.equals("language")) { 1708 this.language = castToCode(value); // CodeType 1709 } else if (name.equals("use")) { 1710 this.use = castToCoding(value); // Coding 1711 } else if (name.equals("value")) { 1712 this.value = castToString(value); // StringType 1713 } else 1714 return super.setProperty(name, value); 1715 return value; 1716 } 1717 1718 @Override 1719 public Base makeProperty(int hash, String name) throws FHIRException { 1720 switch (hash) { 1721 case -1613589672: return getLanguageElement(); 1722 case 116103: return getUse(); 1723 case 111972721: return getValueElement(); 1724 default: return super.makeProperty(hash, name); 1725 } 1726 1727 } 1728 1729 @Override 1730 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1731 switch (hash) { 1732 case -1613589672: /*language*/ return new String[] {"code"}; 1733 case 116103: /*use*/ return new String[] {"Coding"}; 1734 case 111972721: /*value*/ return new String[] {"string"}; 1735 default: return super.getTypesForProperty(hash, name); 1736 } 1737 1738 } 1739 1740 @Override 1741 public Base addChild(String name) throws FHIRException { 1742 if (name.equals("language")) { 1743 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.language"); 1744 } 1745 else if (name.equals("use")) { 1746 this.use = new Coding(); 1747 return this.use; 1748 } 1749 else if (name.equals("value")) { 1750 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.value"); 1751 } 1752 else 1753 return super.addChild(name); 1754 } 1755 1756 public ConceptReferenceDesignationComponent copy() { 1757 ConceptReferenceDesignationComponent dst = new ConceptReferenceDesignationComponent(); 1758 copyValues(dst); 1759 dst.language = language == null ? null : language.copy(); 1760 dst.use = use == null ? null : use.copy(); 1761 dst.value = value == null ? null : value.copy(); 1762 return dst; 1763 } 1764 1765 @Override 1766 public boolean equalsDeep(Base other_) { 1767 if (!super.equalsDeep(other_)) 1768 return false; 1769 if (!(other_ instanceof ConceptReferenceDesignationComponent)) 1770 return false; 1771 ConceptReferenceDesignationComponent o = (ConceptReferenceDesignationComponent) other_; 1772 return compareDeep(language, o.language, true) && compareDeep(use, o.use, true) && compareDeep(value, o.value, true) 1773 ; 1774 } 1775 1776 @Override 1777 public boolean equalsShallow(Base other_) { 1778 if (!super.equalsShallow(other_)) 1779 return false; 1780 if (!(other_ instanceof ConceptReferenceDesignationComponent)) 1781 return false; 1782 ConceptReferenceDesignationComponent o = (ConceptReferenceDesignationComponent) other_; 1783 return compareValues(language, o.language, true) && compareValues(value, o.value, true); 1784 } 1785 1786 public boolean isEmpty() { 1787 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(language, use, value); 1788 } 1789 1790 public String fhirType() { 1791 return "ValueSet.compose.include.concept.designation"; 1792 1793 } 1794 1795 } 1796 1797 @Block() 1798 public static class ConceptSetFilterComponent extends BackboneElement implements IBaseBackboneElement { 1799 /** 1800 * A code that identifies a property defined in the code system. 1801 */ 1802 @Child(name = "property", type = {CodeType.class}, order=1, min=1, max=1, modifier=false, summary=true) 1803 @Description(shortDefinition="A property defined by the code system", formalDefinition="A code that identifies a property defined in the code system." ) 1804 protected CodeType property; 1805 1806 /** 1807 * The kind of operation to perform as a part of the filter criteria. 1808 */ 1809 @Child(name = "op", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 1810 @Description(shortDefinition="= | is-a | descendent-of | is-not-a | regex | in | not-in | generalizes | exists", formalDefinition="The kind of operation to perform as a part of the filter criteria." ) 1811 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/filter-operator") 1812 protected Enumeration<FilterOperator> op; 1813 1814 /** 1815 * The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'. 1816 */ 1817 @Child(name = "value", type = {CodeType.class}, order=3, min=1, max=1, modifier=false, summary=true) 1818 @Description(shortDefinition="Code from the system, or regex criteria, or boolean value for exists", formalDefinition="The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'." ) 1819 protected CodeType value; 1820 1821 private static final long serialVersionUID = 1985515000L; 1822 1823 /** 1824 * Constructor 1825 */ 1826 public ConceptSetFilterComponent() { 1827 super(); 1828 } 1829 1830 /** 1831 * Constructor 1832 */ 1833 public ConceptSetFilterComponent(CodeType property, Enumeration<FilterOperator> op, CodeType value) { 1834 super(); 1835 this.property = property; 1836 this.op = op; 1837 this.value = value; 1838 } 1839 1840 /** 1841 * @return {@link #property} (A code that identifies a property defined in the code system.). This is the underlying object with id, value and extensions. The accessor "getProperty" gives direct access to the value 1842 */ 1843 public CodeType getPropertyElement() { 1844 if (this.property == null) 1845 if (Configuration.errorOnAutoCreate()) 1846 throw new Error("Attempt to auto-create ConceptSetFilterComponent.property"); 1847 else if (Configuration.doAutoCreate()) 1848 this.property = new CodeType(); // bb 1849 return this.property; 1850 } 1851 1852 public boolean hasPropertyElement() { 1853 return this.property != null && !this.property.isEmpty(); 1854 } 1855 1856 public boolean hasProperty() { 1857 return this.property != null && !this.property.isEmpty(); 1858 } 1859 1860 /** 1861 * @param value {@link #property} (A code that identifies a property defined in the code system.). This is the underlying object with id, value and extensions. The accessor "getProperty" gives direct access to the value 1862 */ 1863 public ConceptSetFilterComponent setPropertyElement(CodeType value) { 1864 this.property = value; 1865 return this; 1866 } 1867 1868 /** 1869 * @return A code that identifies a property defined in the code system. 1870 */ 1871 public String getProperty() { 1872 return this.property == null ? null : this.property.getValue(); 1873 } 1874 1875 /** 1876 * @param value A code that identifies a property defined in the code system. 1877 */ 1878 public ConceptSetFilterComponent setProperty(String value) { 1879 if (this.property == null) 1880 this.property = new CodeType(); 1881 this.property.setValue(value); 1882 return this; 1883 } 1884 1885 /** 1886 * @return {@link #op} (The kind of operation to perform as a part of the filter criteria.). This is the underlying object with id, value and extensions. The accessor "getOp" gives direct access to the value 1887 */ 1888 public Enumeration<FilterOperator> getOpElement() { 1889 if (this.op == null) 1890 if (Configuration.errorOnAutoCreate()) 1891 throw new Error("Attempt to auto-create ConceptSetFilterComponent.op"); 1892 else if (Configuration.doAutoCreate()) 1893 this.op = new Enumeration<FilterOperator>(new FilterOperatorEnumFactory()); // bb 1894 return this.op; 1895 } 1896 1897 public boolean hasOpElement() { 1898 return this.op != null && !this.op.isEmpty(); 1899 } 1900 1901 public boolean hasOp() { 1902 return this.op != null && !this.op.isEmpty(); 1903 } 1904 1905 /** 1906 * @param value {@link #op} (The kind of operation to perform as a part of the filter criteria.). This is the underlying object with id, value and extensions. The accessor "getOp" gives direct access to the value 1907 */ 1908 public ConceptSetFilterComponent setOpElement(Enumeration<FilterOperator> value) { 1909 this.op = value; 1910 return this; 1911 } 1912 1913 /** 1914 * @return The kind of operation to perform as a part of the filter criteria. 1915 */ 1916 public FilterOperator getOp() { 1917 return this.op == null ? null : this.op.getValue(); 1918 } 1919 1920 /** 1921 * @param value The kind of operation to perform as a part of the filter criteria. 1922 */ 1923 public ConceptSetFilterComponent setOp(FilterOperator value) { 1924 if (this.op == null) 1925 this.op = new Enumeration<FilterOperator>(new FilterOperatorEnumFactory()); 1926 this.op.setValue(value); 1927 return this; 1928 } 1929 1930 /** 1931 * @return {@link #value} (The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1932 */ 1933 public CodeType getValueElement() { 1934 if (this.value == null) 1935 if (Configuration.errorOnAutoCreate()) 1936 throw new Error("Attempt to auto-create ConceptSetFilterComponent.value"); 1937 else if (Configuration.doAutoCreate()) 1938 this.value = new CodeType(); // bb 1939 return this.value; 1940 } 1941 1942 public boolean hasValueElement() { 1943 return this.value != null && !this.value.isEmpty(); 1944 } 1945 1946 public boolean hasValue() { 1947 return this.value != null && !this.value.isEmpty(); 1948 } 1949 1950 /** 1951 * @param value {@link #value} (The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.). This is the underlying object with id, value and extensions. The accessor "getValue" gives direct access to the value 1952 */ 1953 public ConceptSetFilterComponent setValueElement(CodeType value) { 1954 this.value = value; 1955 return this; 1956 } 1957 1958 /** 1959 * @return The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'. 1960 */ 1961 public String getValue() { 1962 return this.value == null ? null : this.value.getValue(); 1963 } 1964 1965 /** 1966 * @param value The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'. 1967 */ 1968 public ConceptSetFilterComponent setValue(String value) { 1969 if (this.value == null) 1970 this.value = new CodeType(); 1971 this.value.setValue(value); 1972 return this; 1973 } 1974 1975 protected void listChildren(List<Property> children) { 1976 super.listChildren(children); 1977 children.add(new Property("property", "code", "A code that identifies a property defined in the code system.", 0, 1, property)); 1978 children.add(new Property("op", "code", "The kind of operation to perform as a part of the filter criteria.", 0, 1, op)); 1979 children.add(new Property("value", "code", "The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.", 0, 1, value)); 1980 } 1981 1982 @Override 1983 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1984 switch (_hash) { 1985 case -993141291: /*property*/ return new Property("property", "code", "A code that identifies a property defined in the code system.", 0, 1, property); 1986 case 3553: /*op*/ return new Property("op", "code", "The kind of operation to perform as a part of the filter criteria.", 0, 1, op); 1987 case 111972721: /*value*/ return new Property("value", "code", "The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'.", 0, 1, value); 1988 default: return super.getNamedProperty(_hash, _name, _checkValid); 1989 } 1990 1991 } 1992 1993 @Override 1994 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1995 switch (hash) { 1996 case -993141291: /*property*/ return this.property == null ? new Base[0] : new Base[] {this.property}; // CodeType 1997 case 3553: /*op*/ return this.op == null ? new Base[0] : new Base[] {this.op}; // Enumeration<FilterOperator> 1998 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // CodeType 1999 default: return super.getProperty(hash, name, checkValid); 2000 } 2001 2002 } 2003 2004 @Override 2005 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2006 switch (hash) { 2007 case -993141291: // property 2008 this.property = castToCode(value); // CodeType 2009 return value; 2010 case 3553: // op 2011 value = new FilterOperatorEnumFactory().fromType(castToCode(value)); 2012 this.op = (Enumeration) value; // Enumeration<FilterOperator> 2013 return value; 2014 case 111972721: // value 2015 this.value = castToCode(value); // CodeType 2016 return value; 2017 default: return super.setProperty(hash, name, value); 2018 } 2019 2020 } 2021 2022 @Override 2023 public Base setProperty(String name, Base value) throws FHIRException { 2024 if (name.equals("property")) { 2025 this.property = castToCode(value); // CodeType 2026 } else if (name.equals("op")) { 2027 value = new FilterOperatorEnumFactory().fromType(castToCode(value)); 2028 this.op = (Enumeration) value; // Enumeration<FilterOperator> 2029 } else if (name.equals("value")) { 2030 this.value = castToCode(value); // CodeType 2031 } else 2032 return super.setProperty(name, value); 2033 return value; 2034 } 2035 2036 @Override 2037 public Base makeProperty(int hash, String name) throws FHIRException { 2038 switch (hash) { 2039 case -993141291: return getPropertyElement(); 2040 case 3553: return getOpElement(); 2041 case 111972721: return getValueElement(); 2042 default: return super.makeProperty(hash, name); 2043 } 2044 2045 } 2046 2047 @Override 2048 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2049 switch (hash) { 2050 case -993141291: /*property*/ return new String[] {"code"}; 2051 case 3553: /*op*/ return new String[] {"code"}; 2052 case 111972721: /*value*/ return new String[] {"code"}; 2053 default: return super.getTypesForProperty(hash, name); 2054 } 2055 2056 } 2057 2058 @Override 2059 public Base addChild(String name) throws FHIRException { 2060 if (name.equals("property")) { 2061 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.property"); 2062 } 2063 else if (name.equals("op")) { 2064 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.op"); 2065 } 2066 else if (name.equals("value")) { 2067 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.value"); 2068 } 2069 else 2070 return super.addChild(name); 2071 } 2072 2073 public ConceptSetFilterComponent copy() { 2074 ConceptSetFilterComponent dst = new ConceptSetFilterComponent(); 2075 copyValues(dst); 2076 dst.property = property == null ? null : property.copy(); 2077 dst.op = op == null ? null : op.copy(); 2078 dst.value = value == null ? null : value.copy(); 2079 return dst; 2080 } 2081 2082 @Override 2083 public boolean equalsDeep(Base other_) { 2084 if (!super.equalsDeep(other_)) 2085 return false; 2086 if (!(other_ instanceof ConceptSetFilterComponent)) 2087 return false; 2088 ConceptSetFilterComponent o = (ConceptSetFilterComponent) other_; 2089 return compareDeep(property, o.property, true) && compareDeep(op, o.op, true) && compareDeep(value, o.value, true) 2090 ; 2091 } 2092 2093 @Override 2094 public boolean equalsShallow(Base other_) { 2095 if (!super.equalsShallow(other_)) 2096 return false; 2097 if (!(other_ instanceof ConceptSetFilterComponent)) 2098 return false; 2099 ConceptSetFilterComponent o = (ConceptSetFilterComponent) other_; 2100 return compareValues(property, o.property, true) && compareValues(op, o.op, true) && compareValues(value, o.value, true) 2101 ; 2102 } 2103 2104 public boolean isEmpty() { 2105 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(property, op, value); 2106 } 2107 2108 public String fhirType() { 2109 return "ValueSet.compose.include.filter"; 2110 2111 } 2112 2113 } 2114 2115 @Block() 2116 public static class ValueSetExpansionComponent extends BackboneElement implements IBaseBackboneElement { 2117 /** 2118 * An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so. 2119 */ 2120 @Child(name = "identifier", type = {UriType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2121 @Description(shortDefinition="Uniquely identifies this expansion", formalDefinition="An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so." ) 2122 protected UriType identifier; 2123 2124 /** 2125 * The time at which the expansion was produced by the expanding system. 2126 */ 2127 @Child(name = "timestamp", type = {DateTimeType.class}, order=2, min=1, max=1, modifier=false, summary=false) 2128 @Description(shortDefinition="Time ValueSet expansion happened", formalDefinition="The time at which the expansion was produced by the expanding system." ) 2129 protected DateTimeType timestamp; 2130 2131 /** 2132 * The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter. 2133 */ 2134 @Child(name = "total", type = {IntegerType.class}, order=3, min=0, max=1, modifier=false, summary=false) 2135 @Description(shortDefinition="Total number of codes in the expansion", formalDefinition="The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter." ) 2136 protected IntegerType total; 2137 2138 /** 2139 * If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present. 2140 */ 2141 @Child(name = "offset", type = {IntegerType.class}, order=4, min=0, max=1, modifier=false, summary=false) 2142 @Description(shortDefinition="Offset at which this resource starts", formalDefinition="If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present." ) 2143 protected IntegerType offset; 2144 2145 /** 2146 * A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion. 2147 */ 2148 @Child(name = "parameter", type = {}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2149 @Description(shortDefinition="Parameter that controlled the expansion process", formalDefinition="A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion." ) 2150 protected List<ValueSetExpansionParameterComponent> parameter; 2151 2152 /** 2153 * The codes that are contained in the value set expansion. 2154 */ 2155 @Child(name = "contains", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 2156 @Description(shortDefinition="Codes in the value set", formalDefinition="The codes that are contained in the value set expansion." ) 2157 protected List<ValueSetExpansionContainsComponent> contains; 2158 2159 private static final long serialVersionUID = -43471993L; 2160 2161 /** 2162 * Constructor 2163 */ 2164 public ValueSetExpansionComponent() { 2165 super(); 2166 } 2167 2168 /** 2169 * Constructor 2170 */ 2171 public ValueSetExpansionComponent(UriType identifier, DateTimeType timestamp) { 2172 super(); 2173 this.identifier = identifier; 2174 this.timestamp = timestamp; 2175 } 2176 2177 /** 2178 * @return {@link #identifier} (An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so.). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value 2179 */ 2180 public UriType getIdentifierElement() { 2181 if (this.identifier == null) 2182 if (Configuration.errorOnAutoCreate()) 2183 throw new Error("Attempt to auto-create ValueSetExpansionComponent.identifier"); 2184 else if (Configuration.doAutoCreate()) 2185 this.identifier = new UriType(); // bb 2186 return this.identifier; 2187 } 2188 2189 public boolean hasIdentifierElement() { 2190 return this.identifier != null && !this.identifier.isEmpty(); 2191 } 2192 2193 public boolean hasIdentifier() { 2194 return this.identifier != null && !this.identifier.isEmpty(); 2195 } 2196 2197 /** 2198 * @param value {@link #identifier} (An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so.). This is the underlying object with id, value and extensions. The accessor "getIdentifier" gives direct access to the value 2199 */ 2200 public ValueSetExpansionComponent setIdentifierElement(UriType value) { 2201 this.identifier = value; 2202 return this; 2203 } 2204 2205 /** 2206 * @return An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so. 2207 */ 2208 public String getIdentifier() { 2209 return this.identifier == null ? null : this.identifier.getValue(); 2210 } 2211 2212 /** 2213 * @param value An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so. 2214 */ 2215 public ValueSetExpansionComponent setIdentifier(String value) { 2216 if (this.identifier == null) 2217 this.identifier = new UriType(); 2218 this.identifier.setValue(value); 2219 return this; 2220 } 2221 2222 /** 2223 * @return {@link #timestamp} (The time at which the expansion was produced by the expanding system.). This is the underlying object with id, value and extensions. The accessor "getTimestamp" gives direct access to the value 2224 */ 2225 public DateTimeType getTimestampElement() { 2226 if (this.timestamp == null) 2227 if (Configuration.errorOnAutoCreate()) 2228 throw new Error("Attempt to auto-create ValueSetExpansionComponent.timestamp"); 2229 else if (Configuration.doAutoCreate()) 2230 this.timestamp = new DateTimeType(); // bb 2231 return this.timestamp; 2232 } 2233 2234 public boolean hasTimestampElement() { 2235 return this.timestamp != null && !this.timestamp.isEmpty(); 2236 } 2237 2238 public boolean hasTimestamp() { 2239 return this.timestamp != null && !this.timestamp.isEmpty(); 2240 } 2241 2242 /** 2243 * @param value {@link #timestamp} (The time at which the expansion was produced by the expanding system.). This is the underlying object with id, value and extensions. The accessor "getTimestamp" gives direct access to the value 2244 */ 2245 public ValueSetExpansionComponent setTimestampElement(DateTimeType value) { 2246 this.timestamp = value; 2247 return this; 2248 } 2249 2250 /** 2251 * @return The time at which the expansion was produced by the expanding system. 2252 */ 2253 public Date getTimestamp() { 2254 return this.timestamp == null ? null : this.timestamp.getValue(); 2255 } 2256 2257 /** 2258 * @param value The time at which the expansion was produced by the expanding system. 2259 */ 2260 public ValueSetExpansionComponent setTimestamp(Date value) { 2261 if (this.timestamp == null) 2262 this.timestamp = new DateTimeType(); 2263 this.timestamp.setValue(value); 2264 return this; 2265 } 2266 2267 /** 2268 * @return {@link #total} (The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value 2269 */ 2270 public IntegerType getTotalElement() { 2271 if (this.total == null) 2272 if (Configuration.errorOnAutoCreate()) 2273 throw new Error("Attempt to auto-create ValueSetExpansionComponent.total"); 2274 else if (Configuration.doAutoCreate()) 2275 this.total = new IntegerType(); // bb 2276 return this.total; 2277 } 2278 2279 public boolean hasTotalElement() { 2280 return this.total != null && !this.total.isEmpty(); 2281 } 2282 2283 public boolean hasTotal() { 2284 return this.total != null && !this.total.isEmpty(); 2285 } 2286 2287 /** 2288 * @param value {@link #total} (The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.). This is the underlying object with id, value and extensions. The accessor "getTotal" gives direct access to the value 2289 */ 2290 public ValueSetExpansionComponent setTotalElement(IntegerType value) { 2291 this.total = value; 2292 return this; 2293 } 2294 2295 /** 2296 * @return The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter. 2297 */ 2298 public int getTotal() { 2299 return this.total == null || this.total.isEmpty() ? 0 : this.total.getValue(); 2300 } 2301 2302 /** 2303 * @param value The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter. 2304 */ 2305 public ValueSetExpansionComponent setTotal(int value) { 2306 if (this.total == null) 2307 this.total = new IntegerType(); 2308 this.total.setValue(value); 2309 return this; 2310 } 2311 2312 /** 2313 * @return {@link #offset} (If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present.). This is the underlying object with id, value and extensions. The accessor "getOffset" gives direct access to the value 2314 */ 2315 public IntegerType getOffsetElement() { 2316 if (this.offset == null) 2317 if (Configuration.errorOnAutoCreate()) 2318 throw new Error("Attempt to auto-create ValueSetExpansionComponent.offset"); 2319 else if (Configuration.doAutoCreate()) 2320 this.offset = new IntegerType(); // bb 2321 return this.offset; 2322 } 2323 2324 public boolean hasOffsetElement() { 2325 return this.offset != null && !this.offset.isEmpty(); 2326 } 2327 2328 public boolean hasOffset() { 2329 return this.offset != null && !this.offset.isEmpty(); 2330 } 2331 2332 /** 2333 * @param value {@link #offset} (If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present.). This is the underlying object with id, value and extensions. The accessor "getOffset" gives direct access to the value 2334 */ 2335 public ValueSetExpansionComponent setOffsetElement(IntegerType value) { 2336 this.offset = value; 2337 return this; 2338 } 2339 2340 /** 2341 * @return If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present. 2342 */ 2343 public int getOffset() { 2344 return this.offset == null || this.offset.isEmpty() ? 0 : this.offset.getValue(); 2345 } 2346 2347 /** 2348 * @param value If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present. 2349 */ 2350 public ValueSetExpansionComponent setOffset(int value) { 2351 if (this.offset == null) 2352 this.offset = new IntegerType(); 2353 this.offset.setValue(value); 2354 return this; 2355 } 2356 2357 /** 2358 * @return {@link #parameter} (A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion.) 2359 */ 2360 public List<ValueSetExpansionParameterComponent> getParameter() { 2361 if (this.parameter == null) 2362 this.parameter = new ArrayList<ValueSetExpansionParameterComponent>(); 2363 return this.parameter; 2364 } 2365 2366 /** 2367 * @return Returns a reference to <code>this</code> for easy method chaining 2368 */ 2369 public ValueSetExpansionComponent setParameter(List<ValueSetExpansionParameterComponent> theParameter) { 2370 this.parameter = theParameter; 2371 return this; 2372 } 2373 2374 public boolean hasParameter() { 2375 if (this.parameter == null) 2376 return false; 2377 for (ValueSetExpansionParameterComponent item : this.parameter) 2378 if (!item.isEmpty()) 2379 return true; 2380 return false; 2381 } 2382 2383 public ValueSetExpansionParameterComponent addParameter() { //3 2384 ValueSetExpansionParameterComponent t = new ValueSetExpansionParameterComponent(); 2385 if (this.parameter == null) 2386 this.parameter = new ArrayList<ValueSetExpansionParameterComponent>(); 2387 this.parameter.add(t); 2388 return t; 2389 } 2390 2391 public ValueSetExpansionComponent addParameter(ValueSetExpansionParameterComponent t) { //3 2392 if (t == null) 2393 return this; 2394 if (this.parameter == null) 2395 this.parameter = new ArrayList<ValueSetExpansionParameterComponent>(); 2396 this.parameter.add(t); 2397 return this; 2398 } 2399 2400 /** 2401 * @return The first repetition of repeating field {@link #parameter}, creating it if it does not already exist 2402 */ 2403 public ValueSetExpansionParameterComponent getParameterFirstRep() { 2404 if (getParameter().isEmpty()) { 2405 addParameter(); 2406 } 2407 return getParameter().get(0); 2408 } 2409 2410 /** 2411 * @return {@link #contains} (The codes that are contained in the value set expansion.) 2412 */ 2413 public List<ValueSetExpansionContainsComponent> getContains() { 2414 if (this.contains == null) 2415 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 2416 return this.contains; 2417 } 2418 2419 /** 2420 * @return Returns a reference to <code>this</code> for easy method chaining 2421 */ 2422 public ValueSetExpansionComponent setContains(List<ValueSetExpansionContainsComponent> theContains) { 2423 this.contains = theContains; 2424 return this; 2425 } 2426 2427 public boolean hasContains() { 2428 if (this.contains == null) 2429 return false; 2430 for (ValueSetExpansionContainsComponent item : this.contains) 2431 if (!item.isEmpty()) 2432 return true; 2433 return false; 2434 } 2435 2436 public ValueSetExpansionContainsComponent addContains() { //3 2437 ValueSetExpansionContainsComponent t = new ValueSetExpansionContainsComponent(); 2438 if (this.contains == null) 2439 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 2440 this.contains.add(t); 2441 return t; 2442 } 2443 2444 public ValueSetExpansionComponent addContains(ValueSetExpansionContainsComponent t) { //3 2445 if (t == null) 2446 return this; 2447 if (this.contains == null) 2448 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 2449 this.contains.add(t); 2450 return this; 2451 } 2452 2453 /** 2454 * @return The first repetition of repeating field {@link #contains}, creating it if it does not already exist 2455 */ 2456 public ValueSetExpansionContainsComponent getContainsFirstRep() { 2457 if (getContains().isEmpty()) { 2458 addContains(); 2459 } 2460 return getContains().get(0); 2461 } 2462 2463 protected void listChildren(List<Property> children) { 2464 super.listChildren(children); 2465 children.add(new Property("identifier", "uri", "An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so.", 0, 1, identifier)); 2466 children.add(new Property("timestamp", "dateTime", "The time at which the expansion was produced by the expanding system.", 0, 1, timestamp)); 2467 children.add(new Property("total", "integer", "The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.", 0, 1, total)); 2468 children.add(new Property("offset", "integer", "If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present.", 0, 1, offset)); 2469 children.add(new Property("parameter", "", "A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion.", 0, java.lang.Integer.MAX_VALUE, parameter)); 2470 children.add(new Property("contains", "", "The codes that are contained in the value set expansion.", 0, java.lang.Integer.MAX_VALUE, contains)); 2471 } 2472 2473 @Override 2474 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2475 switch (_hash) { 2476 case -1618432855: /*identifier*/ return new Property("identifier", "uri", "An identifier that uniquely identifies this expansion of the valueset. Systems may re-use the same identifier as long as the expansion and the definition remain the same, but are not required to do so.", 0, 1, identifier); 2477 case 55126294: /*timestamp*/ return new Property("timestamp", "dateTime", "The time at which the expansion was produced by the expanding system.", 0, 1, timestamp); 2478 case 110549828: /*total*/ return new Property("total", "integer", "The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter.", 0, 1, total); 2479 case -1019779949: /*offset*/ return new Property("offset", "integer", "If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL not be present.", 0, 1, offset); 2480 case 1954460585: /*parameter*/ return new Property("parameter", "", "A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion.", 0, java.lang.Integer.MAX_VALUE, parameter); 2481 case -567445985: /*contains*/ return new Property("contains", "", "The codes that are contained in the value set expansion.", 0, java.lang.Integer.MAX_VALUE, contains); 2482 default: return super.getNamedProperty(_hash, _name, _checkValid); 2483 } 2484 2485 } 2486 2487 @Override 2488 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2489 switch (hash) { 2490 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : new Base[] {this.identifier}; // UriType 2491 case 55126294: /*timestamp*/ return this.timestamp == null ? new Base[0] : new Base[] {this.timestamp}; // DateTimeType 2492 case 110549828: /*total*/ return this.total == null ? new Base[0] : new Base[] {this.total}; // IntegerType 2493 case -1019779949: /*offset*/ return this.offset == null ? new Base[0] : new Base[] {this.offset}; // IntegerType 2494 case 1954460585: /*parameter*/ return this.parameter == null ? new Base[0] : this.parameter.toArray(new Base[this.parameter.size()]); // ValueSetExpansionParameterComponent 2495 case -567445985: /*contains*/ return this.contains == null ? new Base[0] : this.contains.toArray(new Base[this.contains.size()]); // ValueSetExpansionContainsComponent 2496 default: return super.getProperty(hash, name, checkValid); 2497 } 2498 2499 } 2500 2501 @Override 2502 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2503 switch (hash) { 2504 case -1618432855: // identifier 2505 this.identifier = castToUri(value); // UriType 2506 return value; 2507 case 55126294: // timestamp 2508 this.timestamp = castToDateTime(value); // DateTimeType 2509 return value; 2510 case 110549828: // total 2511 this.total = castToInteger(value); // IntegerType 2512 return value; 2513 case -1019779949: // offset 2514 this.offset = castToInteger(value); // IntegerType 2515 return value; 2516 case 1954460585: // parameter 2517 this.getParameter().add((ValueSetExpansionParameterComponent) value); // ValueSetExpansionParameterComponent 2518 return value; 2519 case -567445985: // contains 2520 this.getContains().add((ValueSetExpansionContainsComponent) value); // ValueSetExpansionContainsComponent 2521 return value; 2522 default: return super.setProperty(hash, name, value); 2523 } 2524 2525 } 2526 2527 @Override 2528 public Base setProperty(String name, Base value) throws FHIRException { 2529 if (name.equals("identifier")) { 2530 this.identifier = castToUri(value); // UriType 2531 } else if (name.equals("timestamp")) { 2532 this.timestamp = castToDateTime(value); // DateTimeType 2533 } else if (name.equals("total")) { 2534 this.total = castToInteger(value); // IntegerType 2535 } else if (name.equals("offset")) { 2536 this.offset = castToInteger(value); // IntegerType 2537 } else if (name.equals("parameter")) { 2538 this.getParameter().add((ValueSetExpansionParameterComponent) value); 2539 } else if (name.equals("contains")) { 2540 this.getContains().add((ValueSetExpansionContainsComponent) value); 2541 } else 2542 return super.setProperty(name, value); 2543 return value; 2544 } 2545 2546 @Override 2547 public Base makeProperty(int hash, String name) throws FHIRException { 2548 switch (hash) { 2549 case -1618432855: return getIdentifierElement(); 2550 case 55126294: return getTimestampElement(); 2551 case 110549828: return getTotalElement(); 2552 case -1019779949: return getOffsetElement(); 2553 case 1954460585: return addParameter(); 2554 case -567445985: return addContains(); 2555 default: return super.makeProperty(hash, name); 2556 } 2557 2558 } 2559 2560 @Override 2561 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2562 switch (hash) { 2563 case -1618432855: /*identifier*/ return new String[] {"uri"}; 2564 case 55126294: /*timestamp*/ return new String[] {"dateTime"}; 2565 case 110549828: /*total*/ return new String[] {"integer"}; 2566 case -1019779949: /*offset*/ return new String[] {"integer"}; 2567 case 1954460585: /*parameter*/ return new String[] {}; 2568 case -567445985: /*contains*/ return new String[] {}; 2569 default: return super.getTypesForProperty(hash, name); 2570 } 2571 2572 } 2573 2574 @Override 2575 public Base addChild(String name) throws FHIRException { 2576 if (name.equals("identifier")) { 2577 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.identifier"); 2578 } 2579 else if (name.equals("timestamp")) { 2580 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.timestamp"); 2581 } 2582 else if (name.equals("total")) { 2583 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.total"); 2584 } 2585 else if (name.equals("offset")) { 2586 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.offset"); 2587 } 2588 else if (name.equals("parameter")) { 2589 return addParameter(); 2590 } 2591 else if (name.equals("contains")) { 2592 return addContains(); 2593 } 2594 else 2595 return super.addChild(name); 2596 } 2597 2598 public ValueSetExpansionComponent copy() { 2599 ValueSetExpansionComponent dst = new ValueSetExpansionComponent(); 2600 copyValues(dst); 2601 dst.identifier = identifier == null ? null : identifier.copy(); 2602 dst.timestamp = timestamp == null ? null : timestamp.copy(); 2603 dst.total = total == null ? null : total.copy(); 2604 dst.offset = offset == null ? null : offset.copy(); 2605 if (parameter != null) { 2606 dst.parameter = new ArrayList<ValueSetExpansionParameterComponent>(); 2607 for (ValueSetExpansionParameterComponent i : parameter) 2608 dst.parameter.add(i.copy()); 2609 }; 2610 if (contains != null) { 2611 dst.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 2612 for (ValueSetExpansionContainsComponent i : contains) 2613 dst.contains.add(i.copy()); 2614 }; 2615 return dst; 2616 } 2617 2618 @Override 2619 public boolean equalsDeep(Base other_) { 2620 if (!super.equalsDeep(other_)) 2621 return false; 2622 if (!(other_ instanceof ValueSetExpansionComponent)) 2623 return false; 2624 ValueSetExpansionComponent o = (ValueSetExpansionComponent) other_; 2625 return compareDeep(identifier, o.identifier, true) && compareDeep(timestamp, o.timestamp, true) 2626 && compareDeep(total, o.total, true) && compareDeep(offset, o.offset, true) && compareDeep(parameter, o.parameter, true) 2627 && compareDeep(contains, o.contains, true); 2628 } 2629 2630 @Override 2631 public boolean equalsShallow(Base other_) { 2632 if (!super.equalsShallow(other_)) 2633 return false; 2634 if (!(other_ instanceof ValueSetExpansionComponent)) 2635 return false; 2636 ValueSetExpansionComponent o = (ValueSetExpansionComponent) other_; 2637 return compareValues(identifier, o.identifier, true) && compareValues(timestamp, o.timestamp, true) 2638 && compareValues(total, o.total, true) && compareValues(offset, o.offset, true); 2639 } 2640 2641 public boolean isEmpty() { 2642 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, timestamp, total 2643 , offset, parameter, contains); 2644 } 2645 2646 public String fhirType() { 2647 return "ValueSet.expansion"; 2648 2649 } 2650 2651 } 2652 2653 @Block() 2654 public static class ValueSetExpansionParameterComponent extends BackboneElement implements IBaseBackboneElement { 2655 /** 2656 * The name of the parameter. 2657 */ 2658 @Child(name = "name", type = {StringType.class}, order=1, min=1, max=1, modifier=false, summary=false) 2659 @Description(shortDefinition="Name as assigned by the server", formalDefinition="The name of the parameter." ) 2660 protected StringType name; 2661 2662 /** 2663 * The value of the parameter. 2664 */ 2665 @Child(name = "value", type = {StringType.class, BooleanType.class, IntegerType.class, DecimalType.class, UriType.class, CodeType.class}, order=2, min=0, max=1, modifier=false, summary=false) 2666 @Description(shortDefinition="Value of the named parameter", formalDefinition="The value of the parameter." ) 2667 protected Type value; 2668 2669 private static final long serialVersionUID = 1172641169L; 2670 2671 /** 2672 * Constructor 2673 */ 2674 public ValueSetExpansionParameterComponent() { 2675 super(); 2676 } 2677 2678 /** 2679 * Constructor 2680 */ 2681 public ValueSetExpansionParameterComponent(StringType name) { 2682 super(); 2683 this.name = name; 2684 } 2685 2686 /** 2687 * @return {@link #name} (The name of the parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2688 */ 2689 public StringType getNameElement() { 2690 if (this.name == null) 2691 if (Configuration.errorOnAutoCreate()) 2692 throw new Error("Attempt to auto-create ValueSetExpansionParameterComponent.name"); 2693 else if (Configuration.doAutoCreate()) 2694 this.name = new StringType(); // bb 2695 return this.name; 2696 } 2697 2698 public boolean hasNameElement() { 2699 return this.name != null && !this.name.isEmpty(); 2700 } 2701 2702 public boolean hasName() { 2703 return this.name != null && !this.name.isEmpty(); 2704 } 2705 2706 /** 2707 * @param value {@link #name} (The name of the parameter.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 2708 */ 2709 public ValueSetExpansionParameterComponent setNameElement(StringType value) { 2710 this.name = value; 2711 return this; 2712 } 2713 2714 /** 2715 * @return The name of the parameter. 2716 */ 2717 public String getName() { 2718 return this.name == null ? null : this.name.getValue(); 2719 } 2720 2721 /** 2722 * @param value The name of the parameter. 2723 */ 2724 public ValueSetExpansionParameterComponent setName(String value) { 2725 if (this.name == null) 2726 this.name = new StringType(); 2727 this.name.setValue(value); 2728 return this; 2729 } 2730 2731 /** 2732 * @return {@link #value} (The value of the parameter.) 2733 */ 2734 public Type getValue() { 2735 return this.value; 2736 } 2737 2738 /** 2739 * @return {@link #value} (The value of the parameter.) 2740 */ 2741 public StringType getValueStringType() throws FHIRException { 2742 if (this.value == null) 2743 return null; 2744 if (!(this.value instanceof StringType)) 2745 throw new FHIRException("Type mismatch: the type StringType was expected, but "+this.value.getClass().getName()+" was encountered"); 2746 return (StringType) this.value; 2747 } 2748 2749 public boolean hasValueStringType() { 2750 return this != null && this.value instanceof StringType; 2751 } 2752 2753 /** 2754 * @return {@link #value} (The value of the parameter.) 2755 */ 2756 public BooleanType getValueBooleanType() throws FHIRException { 2757 if (this.value == null) 2758 return null; 2759 if (!(this.value instanceof BooleanType)) 2760 throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.value.getClass().getName()+" was encountered"); 2761 return (BooleanType) this.value; 2762 } 2763 2764 public boolean hasValueBooleanType() { 2765 return this != null && this.value instanceof BooleanType; 2766 } 2767 2768 /** 2769 * @return {@link #value} (The value of the parameter.) 2770 */ 2771 public IntegerType getValueIntegerType() throws FHIRException { 2772 if (this.value == null) 2773 return null; 2774 if (!(this.value instanceof IntegerType)) 2775 throw new FHIRException("Type mismatch: the type IntegerType was expected, but "+this.value.getClass().getName()+" was encountered"); 2776 return (IntegerType) this.value; 2777 } 2778 2779 public boolean hasValueIntegerType() { 2780 return this != null && this.value instanceof IntegerType; 2781 } 2782 2783 /** 2784 * @return {@link #value} (The value of the parameter.) 2785 */ 2786 public DecimalType getValueDecimalType() throws FHIRException { 2787 if (this.value == null) 2788 return null; 2789 if (!(this.value instanceof DecimalType)) 2790 throw new FHIRException("Type mismatch: the type DecimalType was expected, but "+this.value.getClass().getName()+" was encountered"); 2791 return (DecimalType) this.value; 2792 } 2793 2794 public boolean hasValueDecimalType() { 2795 return this != null && this.value instanceof DecimalType; 2796 } 2797 2798 /** 2799 * @return {@link #value} (The value of the parameter.) 2800 */ 2801 public UriType getValueUriType() throws FHIRException { 2802 if (this.value == null) 2803 return null; 2804 if (!(this.value instanceof UriType)) 2805 throw new FHIRException("Type mismatch: the type UriType was expected, but "+this.value.getClass().getName()+" was encountered"); 2806 return (UriType) this.value; 2807 } 2808 2809 public boolean hasValueUriType() { 2810 return this != null && this.value instanceof UriType; 2811 } 2812 2813 /** 2814 * @return {@link #value} (The value of the parameter.) 2815 */ 2816 public CodeType getValueCodeType() throws FHIRException { 2817 if (this.value == null) 2818 return null; 2819 if (!(this.value instanceof CodeType)) 2820 throw new FHIRException("Type mismatch: the type CodeType was expected, but "+this.value.getClass().getName()+" was encountered"); 2821 return (CodeType) this.value; 2822 } 2823 2824 public boolean hasValueCodeType() { 2825 return this != null && this.value instanceof CodeType; 2826 } 2827 2828 public boolean hasValue() { 2829 return this.value != null && !this.value.isEmpty(); 2830 } 2831 2832 /** 2833 * @param value {@link #value} (The value of the parameter.) 2834 */ 2835 public ValueSetExpansionParameterComponent setValue(Type value) throws FHIRFormatError { 2836 if (value != null && !(value instanceof StringType || value instanceof BooleanType || value instanceof IntegerType || value instanceof DecimalType || value instanceof UriType || value instanceof CodeType)) 2837 throw new FHIRFormatError("Not the right type for ValueSet.expansion.parameter.value[x]: "+value.fhirType()); 2838 this.value = value; 2839 return this; 2840 } 2841 2842 protected void listChildren(List<Property> children) { 2843 super.listChildren(children); 2844 children.add(new Property("name", "string", "The name of the parameter.", 0, 1, name)); 2845 children.add(new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value)); 2846 } 2847 2848 @Override 2849 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2850 switch (_hash) { 2851 case 3373707: /*name*/ return new Property("name", "string", "The name of the parameter.", 0, 1, name); 2852 case -1410166417: /*value[x]*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2853 case 111972721: /*value*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2854 case -1424603934: /*valueString*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2855 case 733421943: /*valueBoolean*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2856 case -1668204915: /*valueInteger*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2857 case -2083993440: /*valueDecimal*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2858 case -1410172357: /*valueUri*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2859 case -766209282: /*valueCode*/ return new Property("value[x]", "string|boolean|integer|decimal|uri|code", "The value of the parameter.", 0, 1, value); 2860 default: return super.getNamedProperty(_hash, _name, _checkValid); 2861 } 2862 2863 } 2864 2865 @Override 2866 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2867 switch (hash) { 2868 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2869 case 111972721: /*value*/ return this.value == null ? new Base[0] : new Base[] {this.value}; // Type 2870 default: return super.getProperty(hash, name, checkValid); 2871 } 2872 2873 } 2874 2875 @Override 2876 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2877 switch (hash) { 2878 case 3373707: // name 2879 this.name = castToString(value); // StringType 2880 return value; 2881 case 111972721: // value 2882 this.value = castToType(value); // Type 2883 return value; 2884 default: return super.setProperty(hash, name, value); 2885 } 2886 2887 } 2888 2889 @Override 2890 public Base setProperty(String name, Base value) throws FHIRException { 2891 if (name.equals("name")) { 2892 this.name = castToString(value); // StringType 2893 } else if (name.equals("value[x]")) { 2894 this.value = castToType(value); // Type 2895 } else 2896 return super.setProperty(name, value); 2897 return value; 2898 } 2899 2900 @Override 2901 public Base makeProperty(int hash, String name) throws FHIRException { 2902 switch (hash) { 2903 case 3373707: return getNameElement(); 2904 case -1410166417: return getValue(); 2905 case 111972721: return getValue(); 2906 default: return super.makeProperty(hash, name); 2907 } 2908 2909 } 2910 2911 @Override 2912 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2913 switch (hash) { 2914 case 3373707: /*name*/ return new String[] {"string"}; 2915 case 111972721: /*value*/ return new String[] {"string", "boolean", "integer", "decimal", "uri", "code"}; 2916 default: return super.getTypesForProperty(hash, name); 2917 } 2918 2919 } 2920 2921 @Override 2922 public Base addChild(String name) throws FHIRException { 2923 if (name.equals("name")) { 2924 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.name"); 2925 } 2926 else if (name.equals("valueString")) { 2927 this.value = new StringType(); 2928 return this.value; 2929 } 2930 else if (name.equals("valueBoolean")) { 2931 this.value = new BooleanType(); 2932 return this.value; 2933 } 2934 else if (name.equals("valueInteger")) { 2935 this.value = new IntegerType(); 2936 return this.value; 2937 } 2938 else if (name.equals("valueDecimal")) { 2939 this.value = new DecimalType(); 2940 return this.value; 2941 } 2942 else if (name.equals("valueUri")) { 2943 this.value = new UriType(); 2944 return this.value; 2945 } 2946 else if (name.equals("valueCode")) { 2947 this.value = new CodeType(); 2948 return this.value; 2949 } 2950 else 2951 return super.addChild(name); 2952 } 2953 2954 public ValueSetExpansionParameterComponent copy() { 2955 ValueSetExpansionParameterComponent dst = new ValueSetExpansionParameterComponent(); 2956 copyValues(dst); 2957 dst.name = name == null ? null : name.copy(); 2958 dst.value = value == null ? null : value.copy(); 2959 return dst; 2960 } 2961 2962 @Override 2963 public boolean equalsDeep(Base other_) { 2964 if (!super.equalsDeep(other_)) 2965 return false; 2966 if (!(other_ instanceof ValueSetExpansionParameterComponent)) 2967 return false; 2968 ValueSetExpansionParameterComponent o = (ValueSetExpansionParameterComponent) other_; 2969 return compareDeep(name, o.name, true) && compareDeep(value, o.value, true); 2970 } 2971 2972 @Override 2973 public boolean equalsShallow(Base other_) { 2974 if (!super.equalsShallow(other_)) 2975 return false; 2976 if (!(other_ instanceof ValueSetExpansionParameterComponent)) 2977 return false; 2978 ValueSetExpansionParameterComponent o = (ValueSetExpansionParameterComponent) other_; 2979 return compareValues(name, o.name, true); 2980 } 2981 2982 public boolean isEmpty() { 2983 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(name, value); 2984 } 2985 2986 public String fhirType() { 2987 return "ValueSet.expansion.parameter"; 2988 2989 } 2990 2991 } 2992 2993 @Block() 2994 public static class ValueSetExpansionContainsComponent extends BackboneElement implements IBaseBackboneElement { 2995 /** 2996 * An absolute URI which is the code system in which the code for this item in the expansion is defined. 2997 */ 2998 @Child(name = "system", type = {UriType.class}, order=1, min=0, max=1, modifier=false, summary=false) 2999 @Description(shortDefinition="System value for the code", formalDefinition="An absolute URI which is the code system in which the code for this item in the expansion is defined." ) 3000 protected UriType system; 3001 3002 /** 3003 * If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value. 3004 */ 3005 @Child(name = "abstract", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false) 3006 @Description(shortDefinition="If user cannot select this entry", formalDefinition="If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value." ) 3007 protected BooleanType abstract_; 3008 3009 /** 3010 * If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. 3011 */ 3012 @Child(name = "inactive", type = {BooleanType.class}, order=3, min=0, max=1, modifier=false, summary=false) 3013 @Description(shortDefinition="If concept is inactive in the code system", formalDefinition="If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data." ) 3014 protected BooleanType inactive; 3015 3016 /** 3017 * The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence. 3018 */ 3019 @Child(name = "version", type = {StringType.class}, order=4, min=0, max=1, modifier=false, summary=false) 3020 @Description(shortDefinition="Version in which this code/display is defined", formalDefinition="The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence." ) 3021 protected StringType version; 3022 3023 /** 3024 * The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set. 3025 */ 3026 @Child(name = "code", type = {CodeType.class}, order=5, min=0, max=1, modifier=false, summary=false) 3027 @Description(shortDefinition="Code - if blank, this is not a selectable code", formalDefinition="The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set." ) 3028 protected CodeType code; 3029 3030 /** 3031 * The recommended display for this item in the expansion. 3032 */ 3033 @Child(name = "display", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 3034 @Description(shortDefinition="User display for the concept", formalDefinition="The recommended display for this item in the expansion." ) 3035 protected StringType display; 3036 3037 /** 3038 * Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation. 3039 */ 3040 @Child(name = "designation", type = {ConceptReferenceDesignationComponent.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3041 @Description(shortDefinition="Additional representations for this item", formalDefinition="Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation." ) 3042 protected List<ConceptReferenceDesignationComponent> designation; 3043 3044 /** 3045 * Other codes and entries contained under this entry in the hierarchy. 3046 */ 3047 @Child(name = "contains", type = {ValueSetExpansionContainsComponent.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 3048 @Description(shortDefinition="Codes contained under this entry", formalDefinition="Other codes and entries contained under this entry in the hierarchy." ) 3049 protected List<ValueSetExpansionContainsComponent> contains; 3050 3051 private static final long serialVersionUID = 719458860L; 3052 3053 /** 3054 * Constructor 3055 */ 3056 public ValueSetExpansionContainsComponent() { 3057 super(); 3058 } 3059 3060 /** 3061 * @return {@link #system} (An absolute URI which is the code system in which the code for this item in the expansion is defined.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 3062 */ 3063 public UriType getSystemElement() { 3064 if (this.system == null) 3065 if (Configuration.errorOnAutoCreate()) 3066 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.system"); 3067 else if (Configuration.doAutoCreate()) 3068 this.system = new UriType(); // bb 3069 return this.system; 3070 } 3071 3072 public boolean hasSystemElement() { 3073 return this.system != null && !this.system.isEmpty(); 3074 } 3075 3076 public boolean hasSystem() { 3077 return this.system != null && !this.system.isEmpty(); 3078 } 3079 3080 /** 3081 * @param value {@link #system} (An absolute URI which is the code system in which the code for this item in the expansion is defined.). This is the underlying object with id, value and extensions. The accessor "getSystem" gives direct access to the value 3082 */ 3083 public ValueSetExpansionContainsComponent setSystemElement(UriType value) { 3084 this.system = value; 3085 return this; 3086 } 3087 3088 /** 3089 * @return An absolute URI which is the code system in which the code for this item in the expansion is defined. 3090 */ 3091 public String getSystem() { 3092 return this.system == null ? null : this.system.getValue(); 3093 } 3094 3095 /** 3096 * @param value An absolute URI which is the code system in which the code for this item in the expansion is defined. 3097 */ 3098 public ValueSetExpansionContainsComponent setSystem(String value) { 3099 if (Utilities.noString(value)) 3100 this.system = null; 3101 else { 3102 if (this.system == null) 3103 this.system = new UriType(); 3104 this.system.setValue(value); 3105 } 3106 return this; 3107 } 3108 3109 /** 3110 * @return {@link #abstract_} (If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.). This is the underlying object with id, value and extensions. The accessor "getAbstract" gives direct access to the value 3111 */ 3112 public BooleanType getAbstractElement() { 3113 if (this.abstract_ == null) 3114 if (Configuration.errorOnAutoCreate()) 3115 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.abstract_"); 3116 else if (Configuration.doAutoCreate()) 3117 this.abstract_ = new BooleanType(); // bb 3118 return this.abstract_; 3119 } 3120 3121 public boolean hasAbstractElement() { 3122 return this.abstract_ != null && !this.abstract_.isEmpty(); 3123 } 3124 3125 public boolean hasAbstract() { 3126 return this.abstract_ != null && !this.abstract_.isEmpty(); 3127 } 3128 3129 /** 3130 * @param value {@link #abstract_} (If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.). This is the underlying object with id, value and extensions. The accessor "getAbstract" gives direct access to the value 3131 */ 3132 public ValueSetExpansionContainsComponent setAbstractElement(BooleanType value) { 3133 this.abstract_ = value; 3134 return this; 3135 } 3136 3137 /** 3138 * @return If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value. 3139 */ 3140 public boolean getAbstract() { 3141 return this.abstract_ == null || this.abstract_.isEmpty() ? false : this.abstract_.getValue(); 3142 } 3143 3144 /** 3145 * @param value If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value. 3146 */ 3147 public ValueSetExpansionContainsComponent setAbstract(boolean value) { 3148 if (this.abstract_ == null) 3149 this.abstract_ = new BooleanType(); 3150 this.abstract_.setValue(value); 3151 return this; 3152 } 3153 3154 /** 3155 * @return {@link #inactive} (If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data.). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 3156 */ 3157 public BooleanType getInactiveElement() { 3158 if (this.inactive == null) 3159 if (Configuration.errorOnAutoCreate()) 3160 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.inactive"); 3161 else if (Configuration.doAutoCreate()) 3162 this.inactive = new BooleanType(); // bb 3163 return this.inactive; 3164 } 3165 3166 public boolean hasInactiveElement() { 3167 return this.inactive != null && !this.inactive.isEmpty(); 3168 } 3169 3170 public boolean hasInactive() { 3171 return this.inactive != null && !this.inactive.isEmpty(); 3172 } 3173 3174 /** 3175 * @param value {@link #inactive} (If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data.). This is the underlying object with id, value and extensions. The accessor "getInactive" gives direct access to the value 3176 */ 3177 public ValueSetExpansionContainsComponent setInactiveElement(BooleanType value) { 3178 this.inactive = value; 3179 return this; 3180 } 3181 3182 /** 3183 * @return If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. 3184 */ 3185 public boolean getInactive() { 3186 return this.inactive == null || this.inactive.isEmpty() ? false : this.inactive.getValue(); 3187 } 3188 3189 /** 3190 * @param value If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. 3191 */ 3192 public ValueSetExpansionContainsComponent setInactive(boolean value) { 3193 if (this.inactive == null) 3194 this.inactive = new BooleanType(); 3195 this.inactive.setValue(value); 3196 return this; 3197 } 3198 3199 /** 3200 * @return {@link #version} (The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3201 */ 3202 public StringType getVersionElement() { 3203 if (this.version == null) 3204 if (Configuration.errorOnAutoCreate()) 3205 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.version"); 3206 else if (Configuration.doAutoCreate()) 3207 this.version = new StringType(); // bb 3208 return this.version; 3209 } 3210 3211 public boolean hasVersionElement() { 3212 return this.version != null && !this.version.isEmpty(); 3213 } 3214 3215 public boolean hasVersion() { 3216 return this.version != null && !this.version.isEmpty(); 3217 } 3218 3219 /** 3220 * @param value {@link #version} (The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3221 */ 3222 public ValueSetExpansionContainsComponent setVersionElement(StringType value) { 3223 this.version = value; 3224 return this; 3225 } 3226 3227 /** 3228 * @return The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence. 3229 */ 3230 public String getVersion() { 3231 return this.version == null ? null : this.version.getValue(); 3232 } 3233 3234 /** 3235 * @param value The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence. 3236 */ 3237 public ValueSetExpansionContainsComponent setVersion(String value) { 3238 if (Utilities.noString(value)) 3239 this.version = null; 3240 else { 3241 if (this.version == null) 3242 this.version = new StringType(); 3243 this.version.setValue(value); 3244 } 3245 return this; 3246 } 3247 3248 /** 3249 * @return {@link #code} (The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 3250 */ 3251 public CodeType getCodeElement() { 3252 if (this.code == null) 3253 if (Configuration.errorOnAutoCreate()) 3254 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.code"); 3255 else if (Configuration.doAutoCreate()) 3256 this.code = new CodeType(); // bb 3257 return this.code; 3258 } 3259 3260 public boolean hasCodeElement() { 3261 return this.code != null && !this.code.isEmpty(); 3262 } 3263 3264 public boolean hasCode() { 3265 return this.code != null && !this.code.isEmpty(); 3266 } 3267 3268 /** 3269 * @param value {@link #code} (The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 3270 */ 3271 public ValueSetExpansionContainsComponent setCodeElement(CodeType value) { 3272 this.code = value; 3273 return this; 3274 } 3275 3276 /** 3277 * @return The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set. 3278 */ 3279 public String getCode() { 3280 return this.code == null ? null : this.code.getValue(); 3281 } 3282 3283 /** 3284 * @param value The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set. 3285 */ 3286 public ValueSetExpansionContainsComponent setCode(String value) { 3287 if (Utilities.noString(value)) 3288 this.code = null; 3289 else { 3290 if (this.code == null) 3291 this.code = new CodeType(); 3292 this.code.setValue(value); 3293 } 3294 return this; 3295 } 3296 3297 /** 3298 * @return {@link #display} (The recommended display for this item in the expansion.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 3299 */ 3300 public StringType getDisplayElement() { 3301 if (this.display == null) 3302 if (Configuration.errorOnAutoCreate()) 3303 throw new Error("Attempt to auto-create ValueSetExpansionContainsComponent.display"); 3304 else if (Configuration.doAutoCreate()) 3305 this.display = new StringType(); // bb 3306 return this.display; 3307 } 3308 3309 public boolean hasDisplayElement() { 3310 return this.display != null && !this.display.isEmpty(); 3311 } 3312 3313 public boolean hasDisplay() { 3314 return this.display != null && !this.display.isEmpty(); 3315 } 3316 3317 /** 3318 * @param value {@link #display} (The recommended display for this item in the expansion.). This is the underlying object with id, value and extensions. The accessor "getDisplay" gives direct access to the value 3319 */ 3320 public ValueSetExpansionContainsComponent setDisplayElement(StringType value) { 3321 this.display = value; 3322 return this; 3323 } 3324 3325 /** 3326 * @return The recommended display for this item in the expansion. 3327 */ 3328 public String getDisplay() { 3329 return this.display == null ? null : this.display.getValue(); 3330 } 3331 3332 /** 3333 * @param value The recommended display for this item in the expansion. 3334 */ 3335 public ValueSetExpansionContainsComponent setDisplay(String value) { 3336 if (Utilities.noString(value)) 3337 this.display = null; 3338 else { 3339 if (this.display == null) 3340 this.display = new StringType(); 3341 this.display.setValue(value); 3342 } 3343 return this; 3344 } 3345 3346 /** 3347 * @return {@link #designation} (Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation.) 3348 */ 3349 public List<ConceptReferenceDesignationComponent> getDesignation() { 3350 if (this.designation == null) 3351 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 3352 return this.designation; 3353 } 3354 3355 /** 3356 * @return Returns a reference to <code>this</code> for easy method chaining 3357 */ 3358 public ValueSetExpansionContainsComponent setDesignation(List<ConceptReferenceDesignationComponent> theDesignation) { 3359 this.designation = theDesignation; 3360 return this; 3361 } 3362 3363 public boolean hasDesignation() { 3364 if (this.designation == null) 3365 return false; 3366 for (ConceptReferenceDesignationComponent item : this.designation) 3367 if (!item.isEmpty()) 3368 return true; 3369 return false; 3370 } 3371 3372 public ConceptReferenceDesignationComponent addDesignation() { //3 3373 ConceptReferenceDesignationComponent t = new ConceptReferenceDesignationComponent(); 3374 if (this.designation == null) 3375 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 3376 this.designation.add(t); 3377 return t; 3378 } 3379 3380 public ValueSetExpansionContainsComponent addDesignation(ConceptReferenceDesignationComponent t) { //3 3381 if (t == null) 3382 return this; 3383 if (this.designation == null) 3384 this.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 3385 this.designation.add(t); 3386 return this; 3387 } 3388 3389 /** 3390 * @return The first repetition of repeating field {@link #designation}, creating it if it does not already exist 3391 */ 3392 public ConceptReferenceDesignationComponent getDesignationFirstRep() { 3393 if (getDesignation().isEmpty()) { 3394 addDesignation(); 3395 } 3396 return getDesignation().get(0); 3397 } 3398 3399 /** 3400 * @return {@link #contains} (Other codes and entries contained under this entry in the hierarchy.) 3401 */ 3402 public List<ValueSetExpansionContainsComponent> getContains() { 3403 if (this.contains == null) 3404 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 3405 return this.contains; 3406 } 3407 3408 /** 3409 * @return Returns a reference to <code>this</code> for easy method chaining 3410 */ 3411 public ValueSetExpansionContainsComponent setContains(List<ValueSetExpansionContainsComponent> theContains) { 3412 this.contains = theContains; 3413 return this; 3414 } 3415 3416 public boolean hasContains() { 3417 if (this.contains == null) 3418 return false; 3419 for (ValueSetExpansionContainsComponent item : this.contains) 3420 if (!item.isEmpty()) 3421 return true; 3422 return false; 3423 } 3424 3425 public ValueSetExpansionContainsComponent addContains() { //3 3426 ValueSetExpansionContainsComponent t = new ValueSetExpansionContainsComponent(); 3427 if (this.contains == null) 3428 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 3429 this.contains.add(t); 3430 return t; 3431 } 3432 3433 public ValueSetExpansionContainsComponent addContains(ValueSetExpansionContainsComponent t) { //3 3434 if (t == null) 3435 return this; 3436 if (this.contains == null) 3437 this.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 3438 this.contains.add(t); 3439 return this; 3440 } 3441 3442 /** 3443 * @return The first repetition of repeating field {@link #contains}, creating it if it does not already exist 3444 */ 3445 public ValueSetExpansionContainsComponent getContainsFirstRep() { 3446 if (getContains().isEmpty()) { 3447 addContains(); 3448 } 3449 return getContains().get(0); 3450 } 3451 3452 protected void listChildren(List<Property> children) { 3453 super.listChildren(children); 3454 children.add(new Property("system", "uri", "An absolute URI which is the code system in which the code for this item in the expansion is defined.", 0, 1, system)); 3455 children.add(new Property("abstract", "boolean", "If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.", 0, 1, abstract_)); 3456 children.add(new Property("inactive", "boolean", "If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data.", 0, 1, inactive)); 3457 children.add(new Property("version", "string", "The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence.", 0, 1, version)); 3458 children.add(new Property("code", "code", "The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.", 0, 1, code)); 3459 children.add(new Property("display", "string", "The recommended display for this item in the expansion.", 0, 1, display)); 3460 children.add(new Property("designation", "@ValueSet.compose.include.concept.designation", "Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation.", 0, java.lang.Integer.MAX_VALUE, designation)); 3461 children.add(new Property("contains", "@ValueSet.expansion.contains", "Other codes and entries contained under this entry in the hierarchy.", 0, java.lang.Integer.MAX_VALUE, contains)); 3462 } 3463 3464 @Override 3465 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 3466 switch (_hash) { 3467 case -887328209: /*system*/ return new Property("system", "uri", "An absolute URI which is the code system in which the code for this item in the expansion is defined.", 0, 1, system); 3468 case 1732898850: /*abstract*/ return new Property("abstract", "boolean", "If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value.", 0, 1, abstract_); 3469 case 24665195: /*inactive*/ return new Property("inactive", "boolean", "If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data.", 0, 1, inactive); 3470 case 351608024: /*version*/ return new Property("version", "string", "The version of this code system that defined this code and/or display. This should only be used with code systems that do not enforce concept permanence.", 0, 1, version); 3471 case 3059181: /*code*/ return new Property("code", "code", "The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set.", 0, 1, code); 3472 case 1671764162: /*display*/ return new Property("display", "string", "The recommended display for this item in the expansion.", 0, 1, display); 3473 case -900931593: /*designation*/ return new Property("designation", "@ValueSet.compose.include.concept.designation", "Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation.", 0, java.lang.Integer.MAX_VALUE, designation); 3474 case -567445985: /*contains*/ return new Property("contains", "@ValueSet.expansion.contains", "Other codes and entries contained under this entry in the hierarchy.", 0, java.lang.Integer.MAX_VALUE, contains); 3475 default: return super.getNamedProperty(_hash, _name, _checkValid); 3476 } 3477 3478 } 3479 3480 @Override 3481 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3482 switch (hash) { 3483 case -887328209: /*system*/ return this.system == null ? new Base[0] : new Base[] {this.system}; // UriType 3484 case 1732898850: /*abstract*/ return this.abstract_ == null ? new Base[0] : new Base[] {this.abstract_}; // BooleanType 3485 case 24665195: /*inactive*/ return this.inactive == null ? new Base[0] : new Base[] {this.inactive}; // BooleanType 3486 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 3487 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 3488 case 1671764162: /*display*/ return this.display == null ? new Base[0] : new Base[] {this.display}; // StringType 3489 case -900931593: /*designation*/ return this.designation == null ? new Base[0] : this.designation.toArray(new Base[this.designation.size()]); // ConceptReferenceDesignationComponent 3490 case -567445985: /*contains*/ return this.contains == null ? new Base[0] : this.contains.toArray(new Base[this.contains.size()]); // ValueSetExpansionContainsComponent 3491 default: return super.getProperty(hash, name, checkValid); 3492 } 3493 3494 } 3495 3496 @Override 3497 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3498 switch (hash) { 3499 case -887328209: // system 3500 this.system = castToUri(value); // UriType 3501 return value; 3502 case 1732898850: // abstract 3503 this.abstract_ = castToBoolean(value); // BooleanType 3504 return value; 3505 case 24665195: // inactive 3506 this.inactive = castToBoolean(value); // BooleanType 3507 return value; 3508 case 351608024: // version 3509 this.version = castToString(value); // StringType 3510 return value; 3511 case 3059181: // code 3512 this.code = castToCode(value); // CodeType 3513 return value; 3514 case 1671764162: // display 3515 this.display = castToString(value); // StringType 3516 return value; 3517 case -900931593: // designation 3518 this.getDesignation().add((ConceptReferenceDesignationComponent) value); // ConceptReferenceDesignationComponent 3519 return value; 3520 case -567445985: // contains 3521 this.getContains().add((ValueSetExpansionContainsComponent) value); // ValueSetExpansionContainsComponent 3522 return value; 3523 default: return super.setProperty(hash, name, value); 3524 } 3525 3526 } 3527 3528 @Override 3529 public Base setProperty(String name, Base value) throws FHIRException { 3530 if (name.equals("system")) { 3531 this.system = castToUri(value); // UriType 3532 } else if (name.equals("abstract")) { 3533 this.abstract_ = castToBoolean(value); // BooleanType 3534 } else if (name.equals("inactive")) { 3535 this.inactive = castToBoolean(value); // BooleanType 3536 } else if (name.equals("version")) { 3537 this.version = castToString(value); // StringType 3538 } else if (name.equals("code")) { 3539 this.code = castToCode(value); // CodeType 3540 } else if (name.equals("display")) { 3541 this.display = castToString(value); // StringType 3542 } else if (name.equals("designation")) { 3543 this.getDesignation().add((ConceptReferenceDesignationComponent) value); 3544 } else if (name.equals("contains")) { 3545 this.getContains().add((ValueSetExpansionContainsComponent) value); 3546 } else 3547 return super.setProperty(name, value); 3548 return value; 3549 } 3550 3551 @Override 3552 public Base makeProperty(int hash, String name) throws FHIRException { 3553 switch (hash) { 3554 case -887328209: return getSystemElement(); 3555 case 1732898850: return getAbstractElement(); 3556 case 24665195: return getInactiveElement(); 3557 case 351608024: return getVersionElement(); 3558 case 3059181: return getCodeElement(); 3559 case 1671764162: return getDisplayElement(); 3560 case -900931593: return addDesignation(); 3561 case -567445985: return addContains(); 3562 default: return super.makeProperty(hash, name); 3563 } 3564 3565 } 3566 3567 @Override 3568 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3569 switch (hash) { 3570 case -887328209: /*system*/ return new String[] {"uri"}; 3571 case 1732898850: /*abstract*/ return new String[] {"boolean"}; 3572 case 24665195: /*inactive*/ return new String[] {"boolean"}; 3573 case 351608024: /*version*/ return new String[] {"string"}; 3574 case 3059181: /*code*/ return new String[] {"code"}; 3575 case 1671764162: /*display*/ return new String[] {"string"}; 3576 case -900931593: /*designation*/ return new String[] {"@ValueSet.compose.include.concept.designation"}; 3577 case -567445985: /*contains*/ return new String[] {"@ValueSet.expansion.contains"}; 3578 default: return super.getTypesForProperty(hash, name); 3579 } 3580 3581 } 3582 3583 @Override 3584 public Base addChild(String name) throws FHIRException { 3585 if (name.equals("system")) { 3586 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.system"); 3587 } 3588 else if (name.equals("abstract")) { 3589 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.abstract"); 3590 } 3591 else if (name.equals("inactive")) { 3592 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.inactive"); 3593 } 3594 else if (name.equals("version")) { 3595 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.version"); 3596 } 3597 else if (name.equals("code")) { 3598 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.code"); 3599 } 3600 else if (name.equals("display")) { 3601 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.display"); 3602 } 3603 else if (name.equals("designation")) { 3604 return addDesignation(); 3605 } 3606 else if (name.equals("contains")) { 3607 return addContains(); 3608 } 3609 else 3610 return super.addChild(name); 3611 } 3612 3613 public ValueSetExpansionContainsComponent copy() { 3614 ValueSetExpansionContainsComponent dst = new ValueSetExpansionContainsComponent(); 3615 copyValues(dst); 3616 dst.system = system == null ? null : system.copy(); 3617 dst.abstract_ = abstract_ == null ? null : abstract_.copy(); 3618 dst.inactive = inactive == null ? null : inactive.copy(); 3619 dst.version = version == null ? null : version.copy(); 3620 dst.code = code == null ? null : code.copy(); 3621 dst.display = display == null ? null : display.copy(); 3622 if (designation != null) { 3623 dst.designation = new ArrayList<ConceptReferenceDesignationComponent>(); 3624 for (ConceptReferenceDesignationComponent i : designation) 3625 dst.designation.add(i.copy()); 3626 }; 3627 if (contains != null) { 3628 dst.contains = new ArrayList<ValueSetExpansionContainsComponent>(); 3629 for (ValueSetExpansionContainsComponent i : contains) 3630 dst.contains.add(i.copy()); 3631 }; 3632 return dst; 3633 } 3634 3635 @Override 3636 public boolean equalsDeep(Base other_) { 3637 if (!super.equalsDeep(other_)) 3638 return false; 3639 if (!(other_ instanceof ValueSetExpansionContainsComponent)) 3640 return false; 3641 ValueSetExpansionContainsComponent o = (ValueSetExpansionContainsComponent) other_; 3642 return compareDeep(system, o.system, true) && compareDeep(abstract_, o.abstract_, true) && compareDeep(inactive, o.inactive, true) 3643 && compareDeep(version, o.version, true) && compareDeep(code, o.code, true) && compareDeep(display, o.display, true) 3644 && compareDeep(designation, o.designation, true) && compareDeep(contains, o.contains, true); 3645 } 3646 3647 @Override 3648 public boolean equalsShallow(Base other_) { 3649 if (!super.equalsShallow(other_)) 3650 return false; 3651 if (!(other_ instanceof ValueSetExpansionContainsComponent)) 3652 return false; 3653 ValueSetExpansionContainsComponent o = (ValueSetExpansionContainsComponent) other_; 3654 return compareValues(system, o.system, true) && compareValues(abstract_, o.abstract_, true) && compareValues(inactive, o.inactive, true) 3655 && compareValues(version, o.version, true) && compareValues(code, o.code, true) && compareValues(display, o.display, true) 3656 ; 3657 } 3658 3659 public boolean isEmpty() { 3660 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(system, abstract_, inactive 3661 , version, code, display, designation, contains); 3662 } 3663 3664 public String fhirType() { 3665 return "ValueSet.expansion.contains"; 3666 3667 } 3668 3669 } 3670 3671 /** 3672 * A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance. 3673 */ 3674 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 3675 @Description(shortDefinition="Additional identifier for the value set", formalDefinition="A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance." ) 3676 protected List<Identifier> identifier; 3677 3678 /** 3679 * If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change. 3680 */ 3681 @Child(name = "immutable", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true) 3682 @Description(shortDefinition="Indicates whether or not any change to the content logical definition may occur", formalDefinition="If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change." ) 3683 protected BooleanType immutable; 3684 3685 /** 3686 * Explaination of why this value set is needed and why it has been designed as it has. 3687 */ 3688 @Child(name = "purpose", type = {MarkdownType.class}, order=2, min=0, max=1, modifier=false, summary=false) 3689 @Description(shortDefinition="Why this value set is defined", formalDefinition="Explaination of why this value set is needed and why it has been designed as it has." ) 3690 protected MarkdownType purpose; 3691 3692 /** 3693 * A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set. 3694 */ 3695 @Child(name = "copyright", type = {MarkdownType.class}, order=3, min=0, max=1, modifier=false, summary=false) 3696 @Description(shortDefinition="Use and/or publishing restrictions", formalDefinition="A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set." ) 3697 protected MarkdownType copyright; 3698 3699 /** 3700 * Whether this is intended to be used with an extensible binding or not. 3701 */ 3702 @Child(name = "extensible", type = {BooleanType.class}, order=4, min=0, max=1, modifier=false, summary=true) 3703 @Description(shortDefinition="Whether this is intended to be used with an extensible binding", formalDefinition="Whether this is intended to be used with an extensible binding or not." ) 3704 protected BooleanType extensible; 3705 3706 /** 3707 * A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the "Content Logical Definition" (CLD). 3708 */ 3709 @Child(name = "compose", type = {}, order=5, min=0, max=1, modifier=false, summary=false) 3710 @Description(shortDefinition="Definition of the content of the value set (CLD)", formalDefinition="A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the \"Content Logical Definition\" (CLD)." ) 3711 protected ValueSetComposeComponent compose; 3712 3713 /** 3714 * A value set can also be "expanded", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed. 3715 */ 3716 @Child(name = "expansion", type = {}, order=6, min=0, max=1, modifier=false, summary=false) 3717 @Description(shortDefinition="Used when the value set is \"expanded\"", formalDefinition="A value set can also be \"expanded\", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed." ) 3718 protected ValueSetExpansionComponent expansion; 3719 3720 private static final long serialVersionUID = -173192200L; 3721 3722 /** 3723 * Constructor 3724 */ 3725 public ValueSet() { 3726 super(); 3727 } 3728 3729 /** 3730 * Constructor 3731 */ 3732 public ValueSet(Enumeration<PublicationStatus> status) { 3733 super(); 3734 this.status = status; 3735 } 3736 3737 /** 3738 * @return {@link #url} (An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3739 */ 3740 public UriType getUrlElement() { 3741 if (this.url == null) 3742 if (Configuration.errorOnAutoCreate()) 3743 throw new Error("Attempt to auto-create ValueSet.url"); 3744 else if (Configuration.doAutoCreate()) 3745 this.url = new UriType(); // bb 3746 return this.url; 3747 } 3748 3749 public boolean hasUrlElement() { 3750 return this.url != null && !this.url.isEmpty(); 3751 } 3752 3753 public boolean hasUrl() { 3754 return this.url != null && !this.url.isEmpty(); 3755 } 3756 3757 /** 3758 * @param value {@link #url} (An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions).). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 3759 */ 3760 public ValueSet setUrlElement(UriType value) { 3761 this.url = value; 3762 return this; 3763 } 3764 3765 /** 3766 * @return An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions). 3767 */ 3768 public String getUrl() { 3769 return this.url == null ? null : this.url.getValue(); 3770 } 3771 3772 /** 3773 * @param value An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions). 3774 */ 3775 public ValueSet setUrl(String value) { 3776 if (Utilities.noString(value)) 3777 this.url = null; 3778 else { 3779 if (this.url == null) 3780 this.url = new UriType(); 3781 this.url.setValue(value); 3782 } 3783 return this; 3784 } 3785 3786 /** 3787 * @return {@link #identifier} (A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance.) 3788 */ 3789 public List<Identifier> getIdentifier() { 3790 if (this.identifier == null) 3791 this.identifier = new ArrayList<Identifier>(); 3792 return this.identifier; 3793 } 3794 3795 /** 3796 * @return Returns a reference to <code>this</code> for easy method chaining 3797 */ 3798 public ValueSet setIdentifier(List<Identifier> theIdentifier) { 3799 this.identifier = theIdentifier; 3800 return this; 3801 } 3802 3803 public boolean hasIdentifier() { 3804 if (this.identifier == null) 3805 return false; 3806 for (Identifier item : this.identifier) 3807 if (!item.isEmpty()) 3808 return true; 3809 return false; 3810 } 3811 3812 public Identifier addIdentifier() { //3 3813 Identifier t = new Identifier(); 3814 if (this.identifier == null) 3815 this.identifier = new ArrayList<Identifier>(); 3816 this.identifier.add(t); 3817 return t; 3818 } 3819 3820 public ValueSet addIdentifier(Identifier t) { //3 3821 if (t == null) 3822 return this; 3823 if (this.identifier == null) 3824 this.identifier = new ArrayList<Identifier>(); 3825 this.identifier.add(t); 3826 return this; 3827 } 3828 3829 /** 3830 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 3831 */ 3832 public Identifier getIdentifierFirstRep() { 3833 if (getIdentifier().isEmpty()) { 3834 addIdentifier(); 3835 } 3836 return getIdentifier().get(0); 3837 } 3838 3839 /** 3840 * @return {@link #version} (The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3841 */ 3842 public StringType getVersionElement() { 3843 if (this.version == null) 3844 if (Configuration.errorOnAutoCreate()) 3845 throw new Error("Attempt to auto-create ValueSet.version"); 3846 else if (Configuration.doAutoCreate()) 3847 this.version = new StringType(); // bb 3848 return this.version; 3849 } 3850 3851 public boolean hasVersionElement() { 3852 return this.version != null && !this.version.isEmpty(); 3853 } 3854 3855 public boolean hasVersion() { 3856 return this.version != null && !this.version.isEmpty(); 3857 } 3858 3859 /** 3860 * @param value {@link #version} (The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value 3861 */ 3862 public ValueSet setVersionElement(StringType value) { 3863 this.version = value; 3864 return this; 3865 } 3866 3867 /** 3868 * @return The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 3869 */ 3870 public String getVersion() { 3871 return this.version == null ? null : this.version.getValue(); 3872 } 3873 3874 /** 3875 * @param value The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. 3876 */ 3877 public ValueSet setVersion(String value) { 3878 if (Utilities.noString(value)) 3879 this.version = null; 3880 else { 3881 if (this.version == null) 3882 this.version = new StringType(); 3883 this.version.setValue(value); 3884 } 3885 return this; 3886 } 3887 3888 /** 3889 * @return {@link #name} (A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 3890 */ 3891 public StringType getNameElement() { 3892 if (this.name == null) 3893 if (Configuration.errorOnAutoCreate()) 3894 throw new Error("Attempt to auto-create ValueSet.name"); 3895 else if (Configuration.doAutoCreate()) 3896 this.name = new StringType(); // bb 3897 return this.name; 3898 } 3899 3900 public boolean hasNameElement() { 3901 return this.name != null && !this.name.isEmpty(); 3902 } 3903 3904 public boolean hasName() { 3905 return this.name != null && !this.name.isEmpty(); 3906 } 3907 3908 /** 3909 * @param value {@link #name} (A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value 3910 */ 3911 public ValueSet setNameElement(StringType value) { 3912 this.name = value; 3913 return this; 3914 } 3915 3916 /** 3917 * @return A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation. 3918 */ 3919 public String getName() { 3920 return this.name == null ? null : this.name.getValue(); 3921 } 3922 3923 /** 3924 * @param value A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation. 3925 */ 3926 public ValueSet setName(String value) { 3927 if (Utilities.noString(value)) 3928 this.name = null; 3929 else { 3930 if (this.name == null) 3931 this.name = new StringType(); 3932 this.name.setValue(value); 3933 } 3934 return this; 3935 } 3936 3937 /** 3938 * @return {@link #title} (A short, descriptive, user-friendly title for the value set.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3939 */ 3940 public StringType getTitleElement() { 3941 if (this.title == null) 3942 if (Configuration.errorOnAutoCreate()) 3943 throw new Error("Attempt to auto-create ValueSet.title"); 3944 else if (Configuration.doAutoCreate()) 3945 this.title = new StringType(); // bb 3946 return this.title; 3947 } 3948 3949 public boolean hasTitleElement() { 3950 return this.title != null && !this.title.isEmpty(); 3951 } 3952 3953 public boolean hasTitle() { 3954 return this.title != null && !this.title.isEmpty(); 3955 } 3956 3957 /** 3958 * @param value {@link #title} (A short, descriptive, user-friendly title for the value set.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value 3959 */ 3960 public ValueSet setTitleElement(StringType value) { 3961 this.title = value; 3962 return this; 3963 } 3964 3965 /** 3966 * @return A short, descriptive, user-friendly title for the value set. 3967 */ 3968 public String getTitle() { 3969 return this.title == null ? null : this.title.getValue(); 3970 } 3971 3972 /** 3973 * @param value A short, descriptive, user-friendly title for the value set. 3974 */ 3975 public ValueSet setTitle(String value) { 3976 if (Utilities.noString(value)) 3977 this.title = null; 3978 else { 3979 if (this.title == null) 3980 this.title = new StringType(); 3981 this.title.setValue(value); 3982 } 3983 return this; 3984 } 3985 3986 /** 3987 * @return {@link #status} (The status of this value set. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 3988 */ 3989 public Enumeration<PublicationStatus> getStatusElement() { 3990 if (this.status == null) 3991 if (Configuration.errorOnAutoCreate()) 3992 throw new Error("Attempt to auto-create ValueSet.status"); 3993 else if (Configuration.doAutoCreate()) 3994 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 3995 return this.status; 3996 } 3997 3998 public boolean hasStatusElement() { 3999 return this.status != null && !this.status.isEmpty(); 4000 } 4001 4002 public boolean hasStatus() { 4003 return this.status != null && !this.status.isEmpty(); 4004 } 4005 4006 /** 4007 * @param value {@link #status} (The status of this value set. Enables tracking the life-cycle of the content.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 4008 */ 4009 public ValueSet setStatusElement(Enumeration<PublicationStatus> value) { 4010 this.status = value; 4011 return this; 4012 } 4013 4014 /** 4015 * @return The status of this value set. Enables tracking the life-cycle of the content. 4016 */ 4017 public PublicationStatus getStatus() { 4018 return this.status == null ? null : this.status.getValue(); 4019 } 4020 4021 /** 4022 * @param value The status of this value set. Enables tracking the life-cycle of the content. 4023 */ 4024 public ValueSet setStatus(PublicationStatus value) { 4025 if (this.status == null) 4026 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 4027 this.status.setValue(value); 4028 return this; 4029 } 4030 4031 /** 4032 * @return {@link #experimental} (A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 4033 */ 4034 public BooleanType getExperimentalElement() { 4035 if (this.experimental == null) 4036 if (Configuration.errorOnAutoCreate()) 4037 throw new Error("Attempt to auto-create ValueSet.experimental"); 4038 else if (Configuration.doAutoCreate()) 4039 this.experimental = new BooleanType(); // bb 4040 return this.experimental; 4041 } 4042 4043 public boolean hasExperimentalElement() { 4044 return this.experimental != null && !this.experimental.isEmpty(); 4045 } 4046 4047 public boolean hasExperimental() { 4048 return this.experimental != null && !this.experimental.isEmpty(); 4049 } 4050 4051 /** 4052 * @param value {@link #experimental} (A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.). This is the underlying object with id, value and extensions. The accessor "getExperimental" gives direct access to the value 4053 */ 4054 public ValueSet setExperimentalElement(BooleanType value) { 4055 this.experimental = value; 4056 return this; 4057 } 4058 4059 /** 4060 * @return A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 4061 */ 4062 public boolean getExperimental() { 4063 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 4064 } 4065 4066 /** 4067 * @param value A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage. 4068 */ 4069 public ValueSet setExperimental(boolean value) { 4070 if (this.experimental == null) 4071 this.experimental = new BooleanType(); 4072 this.experimental.setValue(value); 4073 return this; 4074 } 4075 4076 /** 4077 * @return {@link #date} (The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition').). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 4078 */ 4079 public DateTimeType getDateElement() { 4080 if (this.date == null) 4081 if (Configuration.errorOnAutoCreate()) 4082 throw new Error("Attempt to auto-create ValueSet.date"); 4083 else if (Configuration.doAutoCreate()) 4084 this.date = new DateTimeType(); // bb 4085 return this.date; 4086 } 4087 4088 public boolean hasDateElement() { 4089 return this.date != null && !this.date.isEmpty(); 4090 } 4091 4092 public boolean hasDate() { 4093 return this.date != null && !this.date.isEmpty(); 4094 } 4095 4096 /** 4097 * @param value {@link #date} (The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition').). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 4098 */ 4099 public ValueSet setDateElement(DateTimeType value) { 4100 this.date = value; 4101 return this; 4102 } 4103 4104 /** 4105 * @return The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition'). 4106 */ 4107 public Date getDate() { 4108 return this.date == null ? null : this.date.getValue(); 4109 } 4110 4111 /** 4112 * @param value The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition'). 4113 */ 4114 public ValueSet setDate(Date value) { 4115 if (value == null) 4116 this.date = null; 4117 else { 4118 if (this.date == null) 4119 this.date = new DateTimeType(); 4120 this.date.setValue(value); 4121 } 4122 return this; 4123 } 4124 4125 /** 4126 * @return {@link #publisher} (The name of the individual or organization that published the value set.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 4127 */ 4128 public StringType getPublisherElement() { 4129 if (this.publisher == null) 4130 if (Configuration.errorOnAutoCreate()) 4131 throw new Error("Attempt to auto-create ValueSet.publisher"); 4132 else if (Configuration.doAutoCreate()) 4133 this.publisher = new StringType(); // bb 4134 return this.publisher; 4135 } 4136 4137 public boolean hasPublisherElement() { 4138 return this.publisher != null && !this.publisher.isEmpty(); 4139 } 4140 4141 public boolean hasPublisher() { 4142 return this.publisher != null && !this.publisher.isEmpty(); 4143 } 4144 4145 /** 4146 * @param value {@link #publisher} (The name of the individual or organization that published the value set.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 4147 */ 4148 public ValueSet setPublisherElement(StringType value) { 4149 this.publisher = value; 4150 return this; 4151 } 4152 4153 /** 4154 * @return The name of the individual or organization that published the value set. 4155 */ 4156 public String getPublisher() { 4157 return this.publisher == null ? null : this.publisher.getValue(); 4158 } 4159 4160 /** 4161 * @param value The name of the individual or organization that published the value set. 4162 */ 4163 public ValueSet setPublisher(String value) { 4164 if (Utilities.noString(value)) 4165 this.publisher = null; 4166 else { 4167 if (this.publisher == null) 4168 this.publisher = new StringType(); 4169 this.publisher.setValue(value); 4170 } 4171 return this; 4172 } 4173 4174 /** 4175 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 4176 */ 4177 public List<ContactDetail> getContact() { 4178 if (this.contact == null) 4179 this.contact = new ArrayList<ContactDetail>(); 4180 return this.contact; 4181 } 4182 4183 /** 4184 * @return Returns a reference to <code>this</code> for easy method chaining 4185 */ 4186 public ValueSet setContact(List<ContactDetail> theContact) { 4187 this.contact = theContact; 4188 return this; 4189 } 4190 4191 public boolean hasContact() { 4192 if (this.contact == null) 4193 return false; 4194 for (ContactDetail item : this.contact) 4195 if (!item.isEmpty()) 4196 return true; 4197 return false; 4198 } 4199 4200 public ContactDetail addContact() { //3 4201 ContactDetail t = new ContactDetail(); 4202 if (this.contact == null) 4203 this.contact = new ArrayList<ContactDetail>(); 4204 this.contact.add(t); 4205 return t; 4206 } 4207 4208 public ValueSet addContact(ContactDetail t) { //3 4209 if (t == null) 4210 return this; 4211 if (this.contact == null) 4212 this.contact = new ArrayList<ContactDetail>(); 4213 this.contact.add(t); 4214 return this; 4215 } 4216 4217 /** 4218 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 4219 */ 4220 public ContactDetail getContactFirstRep() { 4221 if (getContact().isEmpty()) { 4222 addContact(); 4223 } 4224 return getContact().get(0); 4225 } 4226 4227 /** 4228 * @return {@link #description} (A free text natural language description of the value set from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 4229 */ 4230 public MarkdownType getDescriptionElement() { 4231 if (this.description == null) 4232 if (Configuration.errorOnAutoCreate()) 4233 throw new Error("Attempt to auto-create ValueSet.description"); 4234 else if (Configuration.doAutoCreate()) 4235 this.description = new MarkdownType(); // bb 4236 return this.description; 4237 } 4238 4239 public boolean hasDescriptionElement() { 4240 return this.description != null && !this.description.isEmpty(); 4241 } 4242 4243 public boolean hasDescription() { 4244 return this.description != null && !this.description.isEmpty(); 4245 } 4246 4247 /** 4248 * @param value {@link #description} (A free text natural language description of the value set from a consumer's perspective.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 4249 */ 4250 public ValueSet setDescriptionElement(MarkdownType value) { 4251 this.description = value; 4252 return this; 4253 } 4254 4255 /** 4256 * @return A free text natural language description of the value set from a consumer's perspective. 4257 */ 4258 public String getDescription() { 4259 return this.description == null ? null : this.description.getValue(); 4260 } 4261 4262 /** 4263 * @param value A free text natural language description of the value set from a consumer's perspective. 4264 */ 4265 public ValueSet setDescription(String value) { 4266 if (value == null) 4267 this.description = null; 4268 else { 4269 if (this.description == null) 4270 this.description = new MarkdownType(); 4271 this.description.setValue(value); 4272 } 4273 return this; 4274 } 4275 4276 /** 4277 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate value set instances.) 4278 */ 4279 public List<UsageContext> getUseContext() { 4280 if (this.useContext == null) 4281 this.useContext = new ArrayList<UsageContext>(); 4282 return this.useContext; 4283 } 4284 4285 /** 4286 * @return Returns a reference to <code>this</code> for easy method chaining 4287 */ 4288 public ValueSet setUseContext(List<UsageContext> theUseContext) { 4289 this.useContext = theUseContext; 4290 return this; 4291 } 4292 4293 public boolean hasUseContext() { 4294 if (this.useContext == null) 4295 return false; 4296 for (UsageContext item : this.useContext) 4297 if (!item.isEmpty()) 4298 return true; 4299 return false; 4300 } 4301 4302 public UsageContext addUseContext() { //3 4303 UsageContext t = new UsageContext(); 4304 if (this.useContext == null) 4305 this.useContext = new ArrayList<UsageContext>(); 4306 this.useContext.add(t); 4307 return t; 4308 } 4309 4310 public ValueSet addUseContext(UsageContext t) { //3 4311 if (t == null) 4312 return this; 4313 if (this.useContext == null) 4314 this.useContext = new ArrayList<UsageContext>(); 4315 this.useContext.add(t); 4316 return this; 4317 } 4318 4319 /** 4320 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 4321 */ 4322 public UsageContext getUseContextFirstRep() { 4323 if (getUseContext().isEmpty()) { 4324 addUseContext(); 4325 } 4326 return getUseContext().get(0); 4327 } 4328 4329 /** 4330 * @return {@link #jurisdiction} (A legal or geographic region in which the value set is intended to be used.) 4331 */ 4332 public List<CodeableConcept> getJurisdiction() { 4333 if (this.jurisdiction == null) 4334 this.jurisdiction = new ArrayList<CodeableConcept>(); 4335 return this.jurisdiction; 4336 } 4337 4338 /** 4339 * @return Returns a reference to <code>this</code> for easy method chaining 4340 */ 4341 public ValueSet setJurisdiction(List<CodeableConcept> theJurisdiction) { 4342 this.jurisdiction = theJurisdiction; 4343 return this; 4344 } 4345 4346 public boolean hasJurisdiction() { 4347 if (this.jurisdiction == null) 4348 return false; 4349 for (CodeableConcept item : this.jurisdiction) 4350 if (!item.isEmpty()) 4351 return true; 4352 return false; 4353 } 4354 4355 public CodeableConcept addJurisdiction() { //3 4356 CodeableConcept t = new CodeableConcept(); 4357 if (this.jurisdiction == null) 4358 this.jurisdiction = new ArrayList<CodeableConcept>(); 4359 this.jurisdiction.add(t); 4360 return t; 4361 } 4362 4363 public ValueSet addJurisdiction(CodeableConcept t) { //3 4364 if (t == null) 4365 return this; 4366 if (this.jurisdiction == null) 4367 this.jurisdiction = new ArrayList<CodeableConcept>(); 4368 this.jurisdiction.add(t); 4369 return this; 4370 } 4371 4372 /** 4373 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 4374 */ 4375 public CodeableConcept getJurisdictionFirstRep() { 4376 if (getJurisdiction().isEmpty()) { 4377 addJurisdiction(); 4378 } 4379 return getJurisdiction().get(0); 4380 } 4381 4382 /** 4383 * @return {@link #immutable} (If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.). This is the underlying object with id, value and extensions. The accessor "getImmutable" gives direct access to the value 4384 */ 4385 public BooleanType getImmutableElement() { 4386 if (this.immutable == null) 4387 if (Configuration.errorOnAutoCreate()) 4388 throw new Error("Attempt to auto-create ValueSet.immutable"); 4389 else if (Configuration.doAutoCreate()) 4390 this.immutable = new BooleanType(); // bb 4391 return this.immutable; 4392 } 4393 4394 public boolean hasImmutableElement() { 4395 return this.immutable != null && !this.immutable.isEmpty(); 4396 } 4397 4398 public boolean hasImmutable() { 4399 return this.immutable != null && !this.immutable.isEmpty(); 4400 } 4401 4402 /** 4403 * @param value {@link #immutable} (If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.). This is the underlying object with id, value and extensions. The accessor "getImmutable" gives direct access to the value 4404 */ 4405 public ValueSet setImmutableElement(BooleanType value) { 4406 this.immutable = value; 4407 return this; 4408 } 4409 4410 /** 4411 * @return If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change. 4412 */ 4413 public boolean getImmutable() { 4414 return this.immutable == null || this.immutable.isEmpty() ? false : this.immutable.getValue(); 4415 } 4416 4417 /** 4418 * @param value If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change. 4419 */ 4420 public ValueSet setImmutable(boolean value) { 4421 if (this.immutable == null) 4422 this.immutable = new BooleanType(); 4423 this.immutable.setValue(value); 4424 return this; 4425 } 4426 4427 /** 4428 * @return {@link #purpose} (Explaination of why this value set is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 4429 */ 4430 public MarkdownType getPurposeElement() { 4431 if (this.purpose == null) 4432 if (Configuration.errorOnAutoCreate()) 4433 throw new Error("Attempt to auto-create ValueSet.purpose"); 4434 else if (Configuration.doAutoCreate()) 4435 this.purpose = new MarkdownType(); // bb 4436 return this.purpose; 4437 } 4438 4439 public boolean hasPurposeElement() { 4440 return this.purpose != null && !this.purpose.isEmpty(); 4441 } 4442 4443 public boolean hasPurpose() { 4444 return this.purpose != null && !this.purpose.isEmpty(); 4445 } 4446 4447 /** 4448 * @param value {@link #purpose} (Explaination of why this value set is needed and why it has been designed as it has.). This is the underlying object with id, value and extensions. The accessor "getPurpose" gives direct access to the value 4449 */ 4450 public ValueSet setPurposeElement(MarkdownType value) { 4451 this.purpose = value; 4452 return this; 4453 } 4454 4455 /** 4456 * @return Explaination of why this value set is needed and why it has been designed as it has. 4457 */ 4458 public String getPurpose() { 4459 return this.purpose == null ? null : this.purpose.getValue(); 4460 } 4461 4462 /** 4463 * @param value Explaination of why this value set is needed and why it has been designed as it has. 4464 */ 4465 public ValueSet setPurpose(String value) { 4466 if (value == null) 4467 this.purpose = null; 4468 else { 4469 if (this.purpose == null) 4470 this.purpose = new MarkdownType(); 4471 this.purpose.setValue(value); 4472 } 4473 return this; 4474 } 4475 4476 /** 4477 * @return {@link #copyright} (A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 4478 */ 4479 public MarkdownType getCopyrightElement() { 4480 if (this.copyright == null) 4481 if (Configuration.errorOnAutoCreate()) 4482 throw new Error("Attempt to auto-create ValueSet.copyright"); 4483 else if (Configuration.doAutoCreate()) 4484 this.copyright = new MarkdownType(); // bb 4485 return this.copyright; 4486 } 4487 4488 public boolean hasCopyrightElement() { 4489 return this.copyright != null && !this.copyright.isEmpty(); 4490 } 4491 4492 public boolean hasCopyright() { 4493 return this.copyright != null && !this.copyright.isEmpty(); 4494 } 4495 4496 /** 4497 * @param value {@link #copyright} (A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.). This is the underlying object with id, value and extensions. The accessor "getCopyright" gives direct access to the value 4498 */ 4499 public ValueSet setCopyrightElement(MarkdownType value) { 4500 this.copyright = value; 4501 return this; 4502 } 4503 4504 /** 4505 * @return A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set. 4506 */ 4507 public String getCopyright() { 4508 return this.copyright == null ? null : this.copyright.getValue(); 4509 } 4510 4511 /** 4512 * @param value A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set. 4513 */ 4514 public ValueSet setCopyright(String value) { 4515 if (value == null) 4516 this.copyright = null; 4517 else { 4518 if (this.copyright == null) 4519 this.copyright = new MarkdownType(); 4520 this.copyright.setValue(value); 4521 } 4522 return this; 4523 } 4524 4525 /** 4526 * @return {@link #extensible} (Whether this is intended to be used with an extensible binding or not.). This is the underlying object with id, value and extensions. The accessor "getExtensible" gives direct access to the value 4527 */ 4528 public BooleanType getExtensibleElement() { 4529 if (this.extensible == null) 4530 if (Configuration.errorOnAutoCreate()) 4531 throw new Error("Attempt to auto-create ValueSet.extensible"); 4532 else if (Configuration.doAutoCreate()) 4533 this.extensible = new BooleanType(); // bb 4534 return this.extensible; 4535 } 4536 4537 public boolean hasExtensibleElement() { 4538 return this.extensible != null && !this.extensible.isEmpty(); 4539 } 4540 4541 public boolean hasExtensible() { 4542 return this.extensible != null && !this.extensible.isEmpty(); 4543 } 4544 4545 /** 4546 * @param value {@link #extensible} (Whether this is intended to be used with an extensible binding or not.). This is the underlying object with id, value and extensions. The accessor "getExtensible" gives direct access to the value 4547 */ 4548 public ValueSet setExtensibleElement(BooleanType value) { 4549 this.extensible = value; 4550 return this; 4551 } 4552 4553 /** 4554 * @return Whether this is intended to be used with an extensible binding or not. 4555 */ 4556 public boolean getExtensible() { 4557 return this.extensible == null || this.extensible.isEmpty() ? false : this.extensible.getValue(); 4558 } 4559 4560 /** 4561 * @param value Whether this is intended to be used with an extensible binding or not. 4562 */ 4563 public ValueSet setExtensible(boolean value) { 4564 if (this.extensible == null) 4565 this.extensible = new BooleanType(); 4566 this.extensible.setValue(value); 4567 return this; 4568 } 4569 4570 /** 4571 * @return {@link #compose} (A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the "Content Logical Definition" (CLD).) 4572 */ 4573 public ValueSetComposeComponent getCompose() { 4574 if (this.compose == null) 4575 if (Configuration.errorOnAutoCreate()) 4576 throw new Error("Attempt to auto-create ValueSet.compose"); 4577 else if (Configuration.doAutoCreate()) 4578 this.compose = new ValueSetComposeComponent(); // cc 4579 return this.compose; 4580 } 4581 4582 public boolean hasCompose() { 4583 return this.compose != null && !this.compose.isEmpty(); 4584 } 4585 4586 /** 4587 * @param value {@link #compose} (A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the "Content Logical Definition" (CLD).) 4588 */ 4589 public ValueSet setCompose(ValueSetComposeComponent value) { 4590 this.compose = value; 4591 return this; 4592 } 4593 4594 /** 4595 * @return {@link #expansion} (A value set can also be "expanded", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.) 4596 */ 4597 public ValueSetExpansionComponent getExpansion() { 4598 if (this.expansion == null) 4599 if (Configuration.errorOnAutoCreate()) 4600 throw new Error("Attempt to auto-create ValueSet.expansion"); 4601 else if (Configuration.doAutoCreate()) 4602 this.expansion = new ValueSetExpansionComponent(); // cc 4603 return this.expansion; 4604 } 4605 4606 public boolean hasExpansion() { 4607 return this.expansion != null && !this.expansion.isEmpty(); 4608 } 4609 4610 /** 4611 * @param value {@link #expansion} (A value set can also be "expanded", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.) 4612 */ 4613 public ValueSet setExpansion(ValueSetExpansionComponent value) { 4614 this.expansion = value; 4615 return this; 4616 } 4617 4618 protected void listChildren(List<Property> children) { 4619 super.listChildren(children); 4620 children.add(new Property("url", "uri", "An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions).", 0, 1, url)); 4621 children.add(new Property("identifier", "Identifier", "A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier)); 4622 children.add(new Property("version", "string", "The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version)); 4623 children.add(new Property("name", "string", "A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 4624 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the value set.", 0, 1, title)); 4625 children.add(new Property("status", "code", "The status of this value set. Enables tracking the life-cycle of the content.", 0, 1, status)); 4626 children.add(new Property("experimental", "boolean", "A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, 1, experimental)); 4627 children.add(new Property("date", "dateTime", "The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition').", 0, 1, date)); 4628 children.add(new Property("publisher", "string", "The name of the individual or organization that published the value set.", 0, 1, publisher)); 4629 children.add(new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact)); 4630 children.add(new Property("description", "markdown", "A free text natural language description of the value set from a consumer's perspective.", 0, 1, description)); 4631 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate value set instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 4632 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the value set is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 4633 children.add(new Property("immutable", "boolean", "If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.", 0, 1, immutable)); 4634 children.add(new Property("purpose", "markdown", "Explaination of why this value set is needed and why it has been designed as it has.", 0, 1, purpose)); 4635 children.add(new Property("copyright", "markdown", "A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.", 0, 1, copyright)); 4636 children.add(new Property("extensible", "boolean", "Whether this is intended to be used with an extensible binding or not.", 0, 1, extensible)); 4637 children.add(new Property("compose", "", "A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the \"Content Logical Definition\" (CLD).", 0, 1, compose)); 4638 children.add(new Property("expansion", "", "A value set can also be \"expanded\", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.", 0, 1, expansion)); 4639 } 4640 4641 @Override 4642 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 4643 switch (_hash) { 4644 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this value set when it is referenced in a specification, model, design or an instance. This SHALL be a URL, SHOULD be globally unique, and SHOULD be an address at which this value set is (or will be) published. The URL SHOULD include the major version of the value set. For more information see [Technical and Business Versions](resource.html#versions).", 0, 1, url); 4645 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance.", 0, java.lang.Integer.MAX_VALUE, identifier); 4646 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence.", 0, 1, version); 4647 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 4648 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the value set.", 0, 1, title); 4649 case -892481550: /*status*/ return new Property("status", "code", "The status of this value set. Enables tracking the life-cycle of the content.", 0, 1, status); 4650 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage.", 0, 1, experimental); 4651 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the value set was published. The date must change if and when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the value set changes. (e.g. the 'content logical definition').", 0, 1, date); 4652 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the individual or organization that published the value set.", 0, 1, publisher); 4653 case 951526432: /*contact*/ return new Property("contact", "ContactDetail", "Contact details to assist a user in finding and communicating with the publisher.", 0, java.lang.Integer.MAX_VALUE, contact); 4654 case -1724546052: /*description*/ return new Property("description", "markdown", "A free text natural language description of the value set from a consumer's perspective.", 0, 1, description); 4655 case -669707736: /*useContext*/ return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching for appropriate value set instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 4656 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the value set is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 4657 case 1596987778: /*immutable*/ return new Property("immutable", "boolean", "If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change.", 0, 1, immutable); 4658 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explaination of why this value set is needed and why it has been designed as it has.", 0, 1, purpose); 4659 case 1522889671: /*copyright*/ return new Property("copyright", "markdown", "A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set.", 0, 1, copyright); 4660 case -1809433861: /*extensible*/ return new Property("extensible", "boolean", "Whether this is intended to be used with an extensible binding or not.", 0, 1, extensible); 4661 case 950497682: /*compose*/ return new Property("compose", "", "A set of criteria that define the content logical definition of the value set by including or excluding codes from outside this value set. This I also known as the \"Content Logical Definition\" (CLD).", 0, 1, compose); 4662 case 17878207: /*expansion*/ return new Property("expansion", "", "A value set can also be \"expanded\", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed.", 0, 1, expansion); 4663 default: return super.getNamedProperty(_hash, _name, _checkValid); 4664 } 4665 4666 } 4667 4668 @Override 4669 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 4670 switch (hash) { 4671 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 4672 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 4673 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 4674 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 4675 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 4676 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 4677 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 4678 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 4679 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 4680 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 4681 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 4682 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 4683 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 4684 case 1596987778: /*immutable*/ return this.immutable == null ? new Base[0] : new Base[] {this.immutable}; // BooleanType 4685 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 4686 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 4687 case -1809433861: /*extensible*/ return this.extensible == null ? new Base[0] : new Base[] {this.extensible}; // BooleanType 4688 case 950497682: /*compose*/ return this.compose == null ? new Base[0] : new Base[] {this.compose}; // ValueSetComposeComponent 4689 case 17878207: /*expansion*/ return this.expansion == null ? new Base[0] : new Base[] {this.expansion}; // ValueSetExpansionComponent 4690 default: return super.getProperty(hash, name, checkValid); 4691 } 4692 4693 } 4694 4695 @Override 4696 public Base setProperty(int hash, String name, Base value) throws FHIRException { 4697 switch (hash) { 4698 case 116079: // url 4699 this.url = castToUri(value); // UriType 4700 return value; 4701 case -1618432855: // identifier 4702 this.getIdentifier().add(castToIdentifier(value)); // Identifier 4703 return value; 4704 case 351608024: // version 4705 this.version = castToString(value); // StringType 4706 return value; 4707 case 3373707: // name 4708 this.name = castToString(value); // StringType 4709 return value; 4710 case 110371416: // title 4711 this.title = castToString(value); // StringType 4712 return value; 4713 case -892481550: // status 4714 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4715 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4716 return value; 4717 case -404562712: // experimental 4718 this.experimental = castToBoolean(value); // BooleanType 4719 return value; 4720 case 3076014: // date 4721 this.date = castToDateTime(value); // DateTimeType 4722 return value; 4723 case 1447404028: // publisher 4724 this.publisher = castToString(value); // StringType 4725 return value; 4726 case 951526432: // contact 4727 this.getContact().add(castToContactDetail(value)); // ContactDetail 4728 return value; 4729 case -1724546052: // description 4730 this.description = castToMarkdown(value); // MarkdownType 4731 return value; 4732 case -669707736: // useContext 4733 this.getUseContext().add(castToUsageContext(value)); // UsageContext 4734 return value; 4735 case -507075711: // jurisdiction 4736 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 4737 return value; 4738 case 1596987778: // immutable 4739 this.immutable = castToBoolean(value); // BooleanType 4740 return value; 4741 case -220463842: // purpose 4742 this.purpose = castToMarkdown(value); // MarkdownType 4743 return value; 4744 case 1522889671: // copyright 4745 this.copyright = castToMarkdown(value); // MarkdownType 4746 return value; 4747 case -1809433861: // extensible 4748 this.extensible = castToBoolean(value); // BooleanType 4749 return value; 4750 case 950497682: // compose 4751 this.compose = (ValueSetComposeComponent) value; // ValueSetComposeComponent 4752 return value; 4753 case 17878207: // expansion 4754 this.expansion = (ValueSetExpansionComponent) value; // ValueSetExpansionComponent 4755 return value; 4756 default: return super.setProperty(hash, name, value); 4757 } 4758 4759 } 4760 4761 @Override 4762 public Base setProperty(String name, Base value) throws FHIRException { 4763 if (name.equals("url")) { 4764 this.url = castToUri(value); // UriType 4765 } else if (name.equals("identifier")) { 4766 this.getIdentifier().add(castToIdentifier(value)); 4767 } else if (name.equals("version")) { 4768 this.version = castToString(value); // StringType 4769 } else if (name.equals("name")) { 4770 this.name = castToString(value); // StringType 4771 } else if (name.equals("title")) { 4772 this.title = castToString(value); // StringType 4773 } else if (name.equals("status")) { 4774 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 4775 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 4776 } else if (name.equals("experimental")) { 4777 this.experimental = castToBoolean(value); // BooleanType 4778 } else if (name.equals("date")) { 4779 this.date = castToDateTime(value); // DateTimeType 4780 } else if (name.equals("publisher")) { 4781 this.publisher = castToString(value); // StringType 4782 } else if (name.equals("contact")) { 4783 this.getContact().add(castToContactDetail(value)); 4784 } else if (name.equals("description")) { 4785 this.description = castToMarkdown(value); // MarkdownType 4786 } else if (name.equals("useContext")) { 4787 this.getUseContext().add(castToUsageContext(value)); 4788 } else if (name.equals("jurisdiction")) { 4789 this.getJurisdiction().add(castToCodeableConcept(value)); 4790 } else if (name.equals("immutable")) { 4791 this.immutable = castToBoolean(value); // BooleanType 4792 } else if (name.equals("purpose")) { 4793 this.purpose = castToMarkdown(value); // MarkdownType 4794 } else if (name.equals("copyright")) { 4795 this.copyright = castToMarkdown(value); // MarkdownType 4796 } else if (name.equals("extensible")) { 4797 this.extensible = castToBoolean(value); // BooleanType 4798 } else if (name.equals("compose")) { 4799 this.compose = (ValueSetComposeComponent) value; // ValueSetComposeComponent 4800 } else if (name.equals("expansion")) { 4801 this.expansion = (ValueSetExpansionComponent) value; // ValueSetExpansionComponent 4802 } else 4803 return super.setProperty(name, value); 4804 return value; 4805 } 4806 4807 @Override 4808 public Base makeProperty(int hash, String name) throws FHIRException { 4809 switch (hash) { 4810 case 116079: return getUrlElement(); 4811 case -1618432855: return addIdentifier(); 4812 case 351608024: return getVersionElement(); 4813 case 3373707: return getNameElement(); 4814 case 110371416: return getTitleElement(); 4815 case -892481550: return getStatusElement(); 4816 case -404562712: return getExperimentalElement(); 4817 case 3076014: return getDateElement(); 4818 case 1447404028: return getPublisherElement(); 4819 case 951526432: return addContact(); 4820 case -1724546052: return getDescriptionElement(); 4821 case -669707736: return addUseContext(); 4822 case -507075711: return addJurisdiction(); 4823 case 1596987778: return getImmutableElement(); 4824 case -220463842: return getPurposeElement(); 4825 case 1522889671: return getCopyrightElement(); 4826 case -1809433861: return getExtensibleElement(); 4827 case 950497682: return getCompose(); 4828 case 17878207: return getExpansion(); 4829 default: return super.makeProperty(hash, name); 4830 } 4831 4832 } 4833 4834 @Override 4835 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 4836 switch (hash) { 4837 case 116079: /*url*/ return new String[] {"uri"}; 4838 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 4839 case 351608024: /*version*/ return new String[] {"string"}; 4840 case 3373707: /*name*/ return new String[] {"string"}; 4841 case 110371416: /*title*/ return new String[] {"string"}; 4842 case -892481550: /*status*/ return new String[] {"code"}; 4843 case -404562712: /*experimental*/ return new String[] {"boolean"}; 4844 case 3076014: /*date*/ return new String[] {"dateTime"}; 4845 case 1447404028: /*publisher*/ return new String[] {"string"}; 4846 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 4847 case -1724546052: /*description*/ return new String[] {"markdown"}; 4848 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 4849 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 4850 case 1596987778: /*immutable*/ return new String[] {"boolean"}; 4851 case -220463842: /*purpose*/ return new String[] {"markdown"}; 4852 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 4853 case -1809433861: /*extensible*/ return new String[] {"boolean"}; 4854 case 950497682: /*compose*/ return new String[] {}; 4855 case 17878207: /*expansion*/ return new String[] {}; 4856 default: return super.getTypesForProperty(hash, name); 4857 } 4858 4859 } 4860 4861 @Override 4862 public Base addChild(String name) throws FHIRException { 4863 if (name.equals("url")) { 4864 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.url"); 4865 } 4866 else if (name.equals("identifier")) { 4867 return addIdentifier(); 4868 } 4869 else if (name.equals("version")) { 4870 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.version"); 4871 } 4872 else if (name.equals("name")) { 4873 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.name"); 4874 } 4875 else if (name.equals("title")) { 4876 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.title"); 4877 } 4878 else if (name.equals("status")) { 4879 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.status"); 4880 } 4881 else if (name.equals("experimental")) { 4882 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.experimental"); 4883 } 4884 else if (name.equals("date")) { 4885 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.date"); 4886 } 4887 else if (name.equals("publisher")) { 4888 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.publisher"); 4889 } 4890 else if (name.equals("contact")) { 4891 return addContact(); 4892 } 4893 else if (name.equals("description")) { 4894 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.description"); 4895 } 4896 else if (name.equals("useContext")) { 4897 return addUseContext(); 4898 } 4899 else if (name.equals("jurisdiction")) { 4900 return addJurisdiction(); 4901 } 4902 else if (name.equals("immutable")) { 4903 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.immutable"); 4904 } 4905 else if (name.equals("purpose")) { 4906 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.purpose"); 4907 } 4908 else if (name.equals("copyright")) { 4909 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.copyright"); 4910 } 4911 else if (name.equals("extensible")) { 4912 throw new FHIRException("Cannot call addChild on a primitive type ValueSet.extensible"); 4913 } 4914 else if (name.equals("compose")) { 4915 this.compose = new ValueSetComposeComponent(); 4916 return this.compose; 4917 } 4918 else if (name.equals("expansion")) { 4919 this.expansion = new ValueSetExpansionComponent(); 4920 return this.expansion; 4921 } 4922 else 4923 return super.addChild(name); 4924 } 4925 4926 public String fhirType() { 4927 return "ValueSet"; 4928 4929 } 4930 4931 public ValueSet copy() { 4932 ValueSet dst = new ValueSet(); 4933 copyValues(dst); 4934 dst.url = url == null ? null : url.copy(); 4935 if (identifier != null) { 4936 dst.identifier = new ArrayList<Identifier>(); 4937 for (Identifier i : identifier) 4938 dst.identifier.add(i.copy()); 4939 }; 4940 dst.version = version == null ? null : version.copy(); 4941 dst.name = name == null ? null : name.copy(); 4942 dst.title = title == null ? null : title.copy(); 4943 dst.status = status == null ? null : status.copy(); 4944 dst.experimental = experimental == null ? null : experimental.copy(); 4945 dst.date = date == null ? null : date.copy(); 4946 dst.publisher = publisher == null ? null : publisher.copy(); 4947 if (contact != null) { 4948 dst.contact = new ArrayList<ContactDetail>(); 4949 for (ContactDetail i : contact) 4950 dst.contact.add(i.copy()); 4951 }; 4952 dst.description = description == null ? null : description.copy(); 4953 if (useContext != null) { 4954 dst.useContext = new ArrayList<UsageContext>(); 4955 for (UsageContext i : useContext) 4956 dst.useContext.add(i.copy()); 4957 }; 4958 if (jurisdiction != null) { 4959 dst.jurisdiction = new ArrayList<CodeableConcept>(); 4960 for (CodeableConcept i : jurisdiction) 4961 dst.jurisdiction.add(i.copy()); 4962 }; 4963 dst.immutable = immutable == null ? null : immutable.copy(); 4964 dst.purpose = purpose == null ? null : purpose.copy(); 4965 dst.copyright = copyright == null ? null : copyright.copy(); 4966 dst.extensible = extensible == null ? null : extensible.copy(); 4967 dst.compose = compose == null ? null : compose.copy(); 4968 dst.expansion = expansion == null ? null : expansion.copy(); 4969 return dst; 4970 } 4971 4972 protected ValueSet typedCopy() { 4973 return copy(); 4974 } 4975 4976 @Override 4977 public boolean equalsDeep(Base other_) { 4978 if (!super.equalsDeep(other_)) 4979 return false; 4980 if (!(other_ instanceof ValueSet)) 4981 return false; 4982 ValueSet o = (ValueSet) other_; 4983 return compareDeep(identifier, o.identifier, true) && compareDeep(immutable, o.immutable, true) 4984 && compareDeep(purpose, o.purpose, true) && compareDeep(copyright, o.copyright, true) && compareDeep(extensible, o.extensible, true) 4985 && compareDeep(compose, o.compose, true) && compareDeep(expansion, o.expansion, true); 4986 } 4987 4988 @Override 4989 public boolean equalsShallow(Base other_) { 4990 if (!super.equalsShallow(other_)) 4991 return false; 4992 if (!(other_ instanceof ValueSet)) 4993 return false; 4994 ValueSet o = (ValueSet) other_; 4995 return compareValues(immutable, o.immutable, true) && compareValues(purpose, o.purpose, true) && compareValues(copyright, o.copyright, true) 4996 && compareValues(extensible, o.extensible, true); 4997 } 4998 4999 public boolean isEmpty() { 5000 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, immutable, purpose 5001 , copyright, extensible, compose, expansion); 5002 } 5003 5004 @Override 5005 public ResourceType getResourceType() { 5006 return ResourceType.ValueSet; 5007 } 5008 5009 /** 5010 * Search parameter: <b>date</b> 5011 * <p> 5012 * Description: <b>The value set publication date</b><br> 5013 * Type: <b>date</b><br> 5014 * Path: <b>ValueSet.date</b><br> 5015 * </p> 5016 */ 5017 @SearchParamDefinition(name="date", path="ValueSet.date", description="The value set publication date", type="date" ) 5018 public static final String SP_DATE = "date"; 5019 /** 5020 * <b>Fluent Client</b> search parameter constant for <b>date</b> 5021 * <p> 5022 * Description: <b>The value set publication date</b><br> 5023 * Type: <b>date</b><br> 5024 * Path: <b>ValueSet.date</b><br> 5025 * </p> 5026 */ 5027 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 5028 5029 /** 5030 * Search parameter: <b>reference</b> 5031 * <p> 5032 * Description: <b>A code system included or excluded in the value set or an imported value set</b><br> 5033 * Type: <b>uri</b><br> 5034 * Path: <b>ValueSet.compose.include.system</b><br> 5035 * </p> 5036 */ 5037 @SearchParamDefinition(name="reference", path="ValueSet.compose.include.system", description="A code system included or excluded in the value set or an imported value set", type="uri" ) 5038 public static final String SP_REFERENCE = "reference"; 5039 /** 5040 * <b>Fluent Client</b> search parameter constant for <b>reference</b> 5041 * <p> 5042 * Description: <b>A code system included or excluded in the value set or an imported value set</b><br> 5043 * Type: <b>uri</b><br> 5044 * Path: <b>ValueSet.compose.include.system</b><br> 5045 * </p> 5046 */ 5047 public static final ca.uhn.fhir.rest.gclient.UriClientParam REFERENCE = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_REFERENCE); 5048 5049 /** 5050 * Search parameter: <b>identifier</b> 5051 * <p> 5052 * Description: <b>External identifier for the value set</b><br> 5053 * Type: <b>token</b><br> 5054 * Path: <b>ValueSet.identifier</b><br> 5055 * </p> 5056 */ 5057 @SearchParamDefinition(name="identifier", path="ValueSet.identifier", description="External identifier for the value set", type="token" ) 5058 public static final String SP_IDENTIFIER = "identifier"; 5059 /** 5060 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 5061 * <p> 5062 * Description: <b>External identifier for the value set</b><br> 5063 * Type: <b>token</b><br> 5064 * Path: <b>ValueSet.identifier</b><br> 5065 * </p> 5066 */ 5067 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 5068 5069 /** 5070 * Search parameter: <b>jurisdiction</b> 5071 * <p> 5072 * Description: <b>Intended jurisdiction for the value set</b><br> 5073 * Type: <b>token</b><br> 5074 * Path: <b>ValueSet.jurisdiction</b><br> 5075 * </p> 5076 */ 5077 @SearchParamDefinition(name="jurisdiction", path="ValueSet.jurisdiction", description="Intended jurisdiction for the value set", type="token" ) 5078 public static final String SP_JURISDICTION = "jurisdiction"; 5079 /** 5080 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 5081 * <p> 5082 * Description: <b>Intended jurisdiction for the value set</b><br> 5083 * Type: <b>token</b><br> 5084 * Path: <b>ValueSet.jurisdiction</b><br> 5085 * </p> 5086 */ 5087 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 5088 5089 /** 5090 * Search parameter: <b>name</b> 5091 * <p> 5092 * Description: <b>Computationally friendly name of the value set</b><br> 5093 * Type: <b>string</b><br> 5094 * Path: <b>ValueSet.name</b><br> 5095 * </p> 5096 */ 5097 @SearchParamDefinition(name="name", path="ValueSet.name", description="Computationally friendly name of the value set", type="string" ) 5098 public static final String SP_NAME = "name"; 5099 /** 5100 * <b>Fluent Client</b> search parameter constant for <b>name</b> 5101 * <p> 5102 * Description: <b>Computationally friendly name of the value set</b><br> 5103 * Type: <b>string</b><br> 5104 * Path: <b>ValueSet.name</b><br> 5105 * </p> 5106 */ 5107 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 5108 5109 /** 5110 * Search parameter: <b>description</b> 5111 * <p> 5112 * Description: <b>The description of the value set</b><br> 5113 * Type: <b>string</b><br> 5114 * Path: <b>ValueSet.description</b><br> 5115 * </p> 5116 */ 5117 @SearchParamDefinition(name="description", path="ValueSet.description", description="The description of the value set", type="string" ) 5118 public static final String SP_DESCRIPTION = "description"; 5119 /** 5120 * <b>Fluent Client</b> search parameter constant for <b>description</b> 5121 * <p> 5122 * Description: <b>The description of the value set</b><br> 5123 * Type: <b>string</b><br> 5124 * Path: <b>ValueSet.description</b><br> 5125 * </p> 5126 */ 5127 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 5128 5129 /** 5130 * Search parameter: <b>publisher</b> 5131 * <p> 5132 * Description: <b>Name of the publisher of the value set</b><br> 5133 * Type: <b>string</b><br> 5134 * Path: <b>ValueSet.publisher</b><br> 5135 * </p> 5136 */ 5137 @SearchParamDefinition(name="publisher", path="ValueSet.publisher", description="Name of the publisher of the value set", type="string" ) 5138 public static final String SP_PUBLISHER = "publisher"; 5139 /** 5140 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 5141 * <p> 5142 * Description: <b>Name of the publisher of the value set</b><br> 5143 * Type: <b>string</b><br> 5144 * Path: <b>ValueSet.publisher</b><br> 5145 * </p> 5146 */ 5147 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 5148 5149 /** 5150 * Search parameter: <b>title</b> 5151 * <p> 5152 * Description: <b>The human-friendly name of the value set</b><br> 5153 * Type: <b>string</b><br> 5154 * Path: <b>ValueSet.title</b><br> 5155 * </p> 5156 */ 5157 @SearchParamDefinition(name="title", path="ValueSet.title", description="The human-friendly name of the value set", type="string" ) 5158 public static final String SP_TITLE = "title"; 5159 /** 5160 * <b>Fluent Client</b> search parameter constant for <b>title</b> 5161 * <p> 5162 * Description: <b>The human-friendly name of the value set</b><br> 5163 * Type: <b>string</b><br> 5164 * Path: <b>ValueSet.title</b><br> 5165 * </p> 5166 */ 5167 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 5168 5169 /** 5170 * Search parameter: <b>version</b> 5171 * <p> 5172 * Description: <b>The business version of the value set</b><br> 5173 * Type: <b>token</b><br> 5174 * Path: <b>ValueSet.version</b><br> 5175 * </p> 5176 */ 5177 @SearchParamDefinition(name="version", path="ValueSet.version", description="The business version of the value set", type="token" ) 5178 public static final String SP_VERSION = "version"; 5179 /** 5180 * <b>Fluent Client</b> search parameter constant for <b>version</b> 5181 * <p> 5182 * Description: <b>The business version of the value set</b><br> 5183 * Type: <b>token</b><br> 5184 * Path: <b>ValueSet.version</b><br> 5185 * </p> 5186 */ 5187 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 5188 5189 /** 5190 * Search parameter: <b>url</b> 5191 * <p> 5192 * Description: <b>The uri that identifies the value set</b><br> 5193 * Type: <b>uri</b><br> 5194 * Path: <b>ValueSet.url</b><br> 5195 * </p> 5196 */ 5197 @SearchParamDefinition(name="url", path="ValueSet.url", description="The uri that identifies the value set", type="uri" ) 5198 public static final String SP_URL = "url"; 5199 /** 5200 * <b>Fluent Client</b> search parameter constant for <b>url</b> 5201 * <p> 5202 * Description: <b>The uri that identifies the value set</b><br> 5203 * Type: <b>uri</b><br> 5204 * Path: <b>ValueSet.url</b><br> 5205 * </p> 5206 */ 5207 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 5208 5209 /** 5210 * Search parameter: <b>status</b> 5211 * <p> 5212 * Description: <b>The current status of the value set</b><br> 5213 * Type: <b>token</b><br> 5214 * Path: <b>ValueSet.status</b><br> 5215 * </p> 5216 */ 5217 @SearchParamDefinition(name="status", path="ValueSet.status", description="The current status of the value set", type="token" ) 5218 public static final String SP_STATUS = "status"; 5219 /** 5220 * <b>Fluent Client</b> search parameter constant for <b>status</b> 5221 * <p> 5222 * Description: <b>The current status of the value set</b><br> 5223 * Type: <b>token</b><br> 5224 * Path: <b>ValueSet.status</b><br> 5225 * </p> 5226 */ 5227 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 5228 5229 /** 5230 * Search parameter: <b>expansion</b> 5231 * <p> 5232 * Description: <b>Uniquely identifies this expansion</b><br> 5233 * Type: <b>uri</b><br> 5234 * Path: <b>ValueSet.expansion.identifier</b><br> 5235 * </p> 5236 */ 5237 @SearchParamDefinition(name="expansion", path="ValueSet.expansion.identifier", description="Uniquely identifies this expansion", type="uri" ) 5238 public static final String SP_EXPANSION = "expansion"; 5239 /** 5240 * <b>Fluent Client</b> search parameter constant for <b>expansion</b> 5241 * <p> 5242 * Description: <b>Uniquely identifies this expansion</b><br> 5243 * Type: <b>uri</b><br> 5244 * Path: <b>ValueSet.expansion.identifier</b><br> 5245 * </p> 5246 */ 5247 public static final ca.uhn.fhir.rest.gclient.UriClientParam EXPANSION = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_EXPANSION); 5248 5249 5250} 5251