001package org.hl7.fhir.r4.model; 002 003 004 005/* 006 Copyright (c) 2011+, HL7, Inc. 007 All rights reserved. 008 009 Redistribution and use in source and binary forms, with or without modification, 010 are permitted provided that the following conditions are met: 011 012 * Redistributions of source code must retain the above copyright notice, this 013 list of conditions and the following disclaimer. 014 * Redistributions in binary form must reproduce the above copyright notice, 015 this list of conditions and the following disclaimer in the documentation 016 and/or other materials provided with the distribution. 017 * Neither the name of HL7 nor the names of its contributors may be used to 018 endorse or promote products derived from this software without specific 019 prior written permission. 020 021 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 022 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 023 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 024 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 025 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 026 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 027 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 028 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 029 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 030 POSSIBILITY OF SUCH DAMAGE. 031 032*/ 033 034 035// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 036 037import java.util.*; 038 039import org.hl7.fhir.utilities.Utilities; 040import org.hl7.fhir.r4.model.Enumerations.*; 041import ca.uhn.fhir.model.api.annotation.ResourceDef; 042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 043import ca.uhn.fhir.model.api.annotation.Child; 044import ca.uhn.fhir.model.api.annotation.ChildOrder; 045import ca.uhn.fhir.model.api.annotation.Description; 046import ca.uhn.fhir.model.api.annotation.Block; 047import org.hl7.fhir.instance.model.api.*; 048import org.hl7.fhir.exceptions.FHIRException; 049/** 050 * A search parameter that defines a named search item that can be used to search/filter on a resource. 051 */ 052@ResourceDef(name="SearchParameter", profile="http://hl7.org/fhir/StructureDefinition/SearchParameter") 053@ChildOrder(names={"url", "version", "name", "derivedFrom", "status", "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "purpose", "code", "base", "type", "expression", "xpath", "xpathUsage", "target", "multipleOr", "multipleAnd", "comparator", "modifier", "chain", "component"}) 054public class SearchParameter extends MetadataResource { 055 056 public enum XPathUsageType { 057 /** 058 * The search parameter is derived directly from the selected nodes based on the type definitions. 059 */ 060 NORMAL, 061 /** 062 * The search parameter is derived by a phonetic transform from the selected nodes. 063 */ 064 PHONETIC, 065 /** 066 * The search parameter is based on a spatial transform of the selected nodes. 067 */ 068 NEARBY, 069 /** 070 * The search parameter is based on a spatial transform of the selected nodes, using physical distance from the middle. 071 */ 072 DISTANCE, 073 /** 074 * The interpretation of the xpath statement is unknown (and can't be automated). 075 */ 076 OTHER, 077 /** 078 * added to help the parsers with the generic types 079 */ 080 NULL; 081 public static XPathUsageType fromCode(String codeString) throws FHIRException { 082 if (codeString == null || "".equals(codeString)) 083 return null; 084 if ("normal".equals(codeString)) 085 return NORMAL; 086 if ("phonetic".equals(codeString)) 087 return PHONETIC; 088 if ("nearby".equals(codeString)) 089 return NEARBY; 090 if ("distance".equals(codeString)) 091 return DISTANCE; 092 if ("other".equals(codeString)) 093 return OTHER; 094 if (Configuration.isAcceptInvalidEnums()) 095 return null; 096 else 097 throw new FHIRException("Unknown XPathUsageType code '"+codeString+"'"); 098 } 099 public String toCode() { 100 switch (this) { 101 case NORMAL: return "normal"; 102 case PHONETIC: return "phonetic"; 103 case NEARBY: return "nearby"; 104 case DISTANCE: return "distance"; 105 case OTHER: return "other"; 106 case NULL: return null; 107 default: return "?"; 108 } 109 } 110 public String getSystem() { 111 switch (this) { 112 case NORMAL: return "http://hl7.org/fhir/search-xpath-usage"; 113 case PHONETIC: return "http://hl7.org/fhir/search-xpath-usage"; 114 case NEARBY: return "http://hl7.org/fhir/search-xpath-usage"; 115 case DISTANCE: return "http://hl7.org/fhir/search-xpath-usage"; 116 case OTHER: return "http://hl7.org/fhir/search-xpath-usage"; 117 case NULL: return null; 118 default: return "?"; 119 } 120 } 121 public String getDefinition() { 122 switch (this) { 123 case NORMAL: return "The search parameter is derived directly from the selected nodes based on the type definitions."; 124 case PHONETIC: return "The search parameter is derived by a phonetic transform from the selected nodes."; 125 case NEARBY: return "The search parameter is based on a spatial transform of the selected nodes."; 126 case DISTANCE: return "The search parameter is based on a spatial transform of the selected nodes, using physical distance from the middle."; 127 case OTHER: return "The interpretation of the xpath statement is unknown (and can't be automated)."; 128 case NULL: return null; 129 default: return "?"; 130 } 131 } 132 public String getDisplay() { 133 switch (this) { 134 case NORMAL: return "Normal"; 135 case PHONETIC: return "Phonetic"; 136 case NEARBY: return "Nearby"; 137 case DISTANCE: return "Distance"; 138 case OTHER: return "Other"; 139 case NULL: return null; 140 default: return "?"; 141 } 142 } 143 } 144 145 public static class XPathUsageTypeEnumFactory implements EnumFactory<XPathUsageType> { 146 public XPathUsageType fromCode(String codeString) throws IllegalArgumentException { 147 if (codeString == null || "".equals(codeString)) 148 if (codeString == null || "".equals(codeString)) 149 return null; 150 if ("normal".equals(codeString)) 151 return XPathUsageType.NORMAL; 152 if ("phonetic".equals(codeString)) 153 return XPathUsageType.PHONETIC; 154 if ("nearby".equals(codeString)) 155 return XPathUsageType.NEARBY; 156 if ("distance".equals(codeString)) 157 return XPathUsageType.DISTANCE; 158 if ("other".equals(codeString)) 159 return XPathUsageType.OTHER; 160 throw new IllegalArgumentException("Unknown XPathUsageType code '"+codeString+"'"); 161 } 162 public Enumeration<XPathUsageType> fromType(Base code) throws FHIRException { 163 if (code == null) 164 return null; 165 if (code.isEmpty()) 166 return new Enumeration<XPathUsageType>(this); 167 String codeString = ((PrimitiveType) code).asStringValue(); 168 if (codeString == null || "".equals(codeString)) 169 return null; 170 if ("normal".equals(codeString)) 171 return new Enumeration<XPathUsageType>(this, XPathUsageType.NORMAL); 172 if ("phonetic".equals(codeString)) 173 return new Enumeration<XPathUsageType>(this, XPathUsageType.PHONETIC); 174 if ("nearby".equals(codeString)) 175 return new Enumeration<XPathUsageType>(this, XPathUsageType.NEARBY); 176 if ("distance".equals(codeString)) 177 return new Enumeration<XPathUsageType>(this, XPathUsageType.DISTANCE); 178 if ("other".equals(codeString)) 179 return new Enumeration<XPathUsageType>(this, XPathUsageType.OTHER); 180 throw new FHIRException("Unknown XPathUsageType code '"+codeString+"'"); 181 } 182 public String toCode(XPathUsageType code) { 183 if (code == XPathUsageType.NORMAL) 184 return "normal"; 185 if (code == XPathUsageType.PHONETIC) 186 return "phonetic"; 187 if (code == XPathUsageType.NEARBY) 188 return "nearby"; 189 if (code == XPathUsageType.DISTANCE) 190 return "distance"; 191 if (code == XPathUsageType.OTHER) 192 return "other"; 193 return "?"; 194 } 195 public String toSystem(XPathUsageType code) { 196 return code.getSystem(); 197 } 198 } 199 200 public enum SearchComparator { 201 /** 202 * the value for the parameter in the resource is equal to the provided value. 203 */ 204 EQ, 205 /** 206 * the value for the parameter in the resource is not equal to the provided value. 207 */ 208 NE, 209 /** 210 * the value for the parameter in the resource is greater than the provided value. 211 */ 212 GT, 213 /** 214 * the value for the parameter in the resource is less than the provided value. 215 */ 216 LT, 217 /** 218 * the value for the parameter in the resource is greater or equal to the provided value. 219 */ 220 GE, 221 /** 222 * the value for the parameter in the resource is less or equal to the provided value. 223 */ 224 LE, 225 /** 226 * the value for the parameter in the resource starts after the provided value. 227 */ 228 SA, 229 /** 230 * the value for the parameter in the resource ends before the provided value. 231 */ 232 EB, 233 /** 234 * the value for the parameter in the resource is approximately the same to the provided value. 235 */ 236 AP, 237 /** 238 * added to help the parsers with the generic types 239 */ 240 NULL; 241 public static SearchComparator fromCode(String codeString) throws FHIRException { 242 if (codeString == null || "".equals(codeString)) 243 return null; 244 if ("eq".equals(codeString)) 245 return EQ; 246 if ("ne".equals(codeString)) 247 return NE; 248 if ("gt".equals(codeString)) 249 return GT; 250 if ("lt".equals(codeString)) 251 return LT; 252 if ("ge".equals(codeString)) 253 return GE; 254 if ("le".equals(codeString)) 255 return LE; 256 if ("sa".equals(codeString)) 257 return SA; 258 if ("eb".equals(codeString)) 259 return EB; 260 if ("ap".equals(codeString)) 261 return AP; 262 if (Configuration.isAcceptInvalidEnums()) 263 return null; 264 else 265 throw new FHIRException("Unknown SearchComparator code '"+codeString+"'"); 266 } 267 public String toCode() { 268 switch (this) { 269 case EQ: return "eq"; 270 case NE: return "ne"; 271 case GT: return "gt"; 272 case LT: return "lt"; 273 case GE: return "ge"; 274 case LE: return "le"; 275 case SA: return "sa"; 276 case EB: return "eb"; 277 case AP: return "ap"; 278 case NULL: return null; 279 default: return "?"; 280 } 281 } 282 public String getSystem() { 283 switch (this) { 284 case EQ: return "http://hl7.org/fhir/search-comparator"; 285 case NE: return "http://hl7.org/fhir/search-comparator"; 286 case GT: return "http://hl7.org/fhir/search-comparator"; 287 case LT: return "http://hl7.org/fhir/search-comparator"; 288 case GE: return "http://hl7.org/fhir/search-comparator"; 289 case LE: return "http://hl7.org/fhir/search-comparator"; 290 case SA: return "http://hl7.org/fhir/search-comparator"; 291 case EB: return "http://hl7.org/fhir/search-comparator"; 292 case AP: return "http://hl7.org/fhir/search-comparator"; 293 case NULL: return null; 294 default: return "?"; 295 } 296 } 297 public String getDefinition() { 298 switch (this) { 299 case EQ: return "the value for the parameter in the resource is equal to the provided value."; 300 case NE: return "the value for the parameter in the resource is not equal to the provided value."; 301 case GT: return "the value for the parameter in the resource is greater than the provided value."; 302 case LT: return "the value for the parameter in the resource is less than the provided value."; 303 case GE: return "the value for the parameter in the resource is greater or equal to the provided value."; 304 case LE: return "the value for the parameter in the resource is less or equal to the provided value."; 305 case SA: return "the value for the parameter in the resource starts after the provided value."; 306 case EB: return "the value for the parameter in the resource ends before the provided value."; 307 case AP: return "the value for the parameter in the resource is approximately the same to the provided value."; 308 case NULL: return null; 309 default: return "?"; 310 } 311 } 312 public String getDisplay() { 313 switch (this) { 314 case EQ: return "Equals"; 315 case NE: return "Not Equals"; 316 case GT: return "Greater Than"; 317 case LT: return "Less Than"; 318 case GE: return "Greater or Equals"; 319 case LE: return "Less of Equal"; 320 case SA: return "Starts After"; 321 case EB: return "Ends Before"; 322 case AP: return "Approximately"; 323 case NULL: return null; 324 default: return "?"; 325 } 326 } 327 } 328 329 public static class SearchComparatorEnumFactory implements EnumFactory<SearchComparator> { 330 public SearchComparator fromCode(String codeString) throws IllegalArgumentException { 331 if (codeString == null || "".equals(codeString)) 332 if (codeString == null || "".equals(codeString)) 333 return null; 334 if ("eq".equals(codeString)) 335 return SearchComparator.EQ; 336 if ("ne".equals(codeString)) 337 return SearchComparator.NE; 338 if ("gt".equals(codeString)) 339 return SearchComparator.GT; 340 if ("lt".equals(codeString)) 341 return SearchComparator.LT; 342 if ("ge".equals(codeString)) 343 return SearchComparator.GE; 344 if ("le".equals(codeString)) 345 return SearchComparator.LE; 346 if ("sa".equals(codeString)) 347 return SearchComparator.SA; 348 if ("eb".equals(codeString)) 349 return SearchComparator.EB; 350 if ("ap".equals(codeString)) 351 return SearchComparator.AP; 352 throw new IllegalArgumentException("Unknown SearchComparator code '"+codeString+"'"); 353 } 354 public Enumeration<SearchComparator> fromType(Base code) throws FHIRException { 355 if (code == null) 356 return null; 357 if (code.isEmpty()) 358 return new Enumeration<SearchComparator>(this); 359 String codeString = ((PrimitiveType) code).asStringValue(); 360 if (codeString == null || "".equals(codeString)) 361 return null; 362 if ("eq".equals(codeString)) 363 return new Enumeration<SearchComparator>(this, SearchComparator.EQ); 364 if ("ne".equals(codeString)) 365 return new Enumeration<SearchComparator>(this, SearchComparator.NE); 366 if ("gt".equals(codeString)) 367 return new Enumeration<SearchComparator>(this, SearchComparator.GT); 368 if ("lt".equals(codeString)) 369 return new Enumeration<SearchComparator>(this, SearchComparator.LT); 370 if ("ge".equals(codeString)) 371 return new Enumeration<SearchComparator>(this, SearchComparator.GE); 372 if ("le".equals(codeString)) 373 return new Enumeration<SearchComparator>(this, SearchComparator.LE); 374 if ("sa".equals(codeString)) 375 return new Enumeration<SearchComparator>(this, SearchComparator.SA); 376 if ("eb".equals(codeString)) 377 return new Enumeration<SearchComparator>(this, SearchComparator.EB); 378 if ("ap".equals(codeString)) 379 return new Enumeration<SearchComparator>(this, SearchComparator.AP); 380 throw new FHIRException("Unknown SearchComparator code '"+codeString+"'"); 381 } 382 public String toCode(SearchComparator code) { 383 if (code == SearchComparator.EQ) 384 return "eq"; 385 if (code == SearchComparator.NE) 386 return "ne"; 387 if (code == SearchComparator.GT) 388 return "gt"; 389 if (code == SearchComparator.LT) 390 return "lt"; 391 if (code == SearchComparator.GE) 392 return "ge"; 393 if (code == SearchComparator.LE) 394 return "le"; 395 if (code == SearchComparator.SA) 396 return "sa"; 397 if (code == SearchComparator.EB) 398 return "eb"; 399 if (code == SearchComparator.AP) 400 return "ap"; 401 return "?"; 402 } 403 public String toSystem(SearchComparator code) { 404 return code.getSystem(); 405 } 406 } 407 408 public enum SearchModifierCode { 409 /** 410 * The search parameter returns resources that have a value or not. 411 */ 412 MISSING, 413 /** 414 * The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents). 415 */ 416 EXACT, 417 /** 418 * The search parameter returns resources that include the supplied parameter value anywhere within the field being searched. 419 */ 420 CONTAINS, 421 /** 422 * The search parameter returns resources that do not contain a match. 423 */ 424 NOT, 425 /** 426 * The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, or Identifier.type.text. 427 */ 428 TEXT, 429 /** 430 * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set. 431 */ 432 IN, 433 /** 434 * The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set. 435 */ 436 NOTIN, 437 /** 438 * The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships). 439 */ 440 BELOW, 441 /** 442 * The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships). 443 */ 444 ABOVE, 445 /** 446 * The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.). 447 */ 448 TYPE, 449 /** 450 * The search parameter applies to the identifier on the resource, not the reference. 451 */ 452 IDENTIFIER, 453 /** 454 * The search parameter has the format system|code|value, where the system and code refer to an Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present. 455 */ 456 OFTYPE, 457 /** 458 * added to help the parsers with the generic types 459 */ 460 NULL; 461 public static SearchModifierCode fromCode(String codeString) throws FHIRException { 462 if (codeString == null || "".equals(codeString)) 463 return null; 464 if ("missing".equals(codeString)) 465 return MISSING; 466 if ("exact".equals(codeString)) 467 return EXACT; 468 if ("contains".equals(codeString)) 469 return CONTAINS; 470 if ("not".equals(codeString)) 471 return NOT; 472 if ("text".equals(codeString)) 473 return TEXT; 474 if ("in".equals(codeString)) 475 return IN; 476 if ("not-in".equals(codeString)) 477 return NOTIN; 478 if ("below".equals(codeString)) 479 return BELOW; 480 if ("above".equals(codeString)) 481 return ABOVE; 482 if ("type".equals(codeString)) 483 return TYPE; 484 if ("identifier".equals(codeString)) 485 return IDENTIFIER; 486 if ("ofType".equals(codeString)) 487 return OFTYPE; 488 if (Configuration.isAcceptInvalidEnums()) 489 return null; 490 else 491 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 492 } 493 public String toCode() { 494 switch (this) { 495 case MISSING: return "missing"; 496 case EXACT: return "exact"; 497 case CONTAINS: return "contains"; 498 case NOT: return "not"; 499 case TEXT: return "text"; 500 case IN: return "in"; 501 case NOTIN: return "not-in"; 502 case BELOW: return "below"; 503 case ABOVE: return "above"; 504 case TYPE: return "type"; 505 case IDENTIFIER: return "identifier"; 506 case OFTYPE: return "ofType"; 507 case NULL: return null; 508 default: return "?"; 509 } 510 } 511 public String getSystem() { 512 switch (this) { 513 case MISSING: return "http://hl7.org/fhir/search-modifier-code"; 514 case EXACT: return "http://hl7.org/fhir/search-modifier-code"; 515 case CONTAINS: return "http://hl7.org/fhir/search-modifier-code"; 516 case NOT: return "http://hl7.org/fhir/search-modifier-code"; 517 case TEXT: return "http://hl7.org/fhir/search-modifier-code"; 518 case IN: return "http://hl7.org/fhir/search-modifier-code"; 519 case NOTIN: return "http://hl7.org/fhir/search-modifier-code"; 520 case BELOW: return "http://hl7.org/fhir/search-modifier-code"; 521 case ABOVE: return "http://hl7.org/fhir/search-modifier-code"; 522 case TYPE: return "http://hl7.org/fhir/search-modifier-code"; 523 case IDENTIFIER: return "http://hl7.org/fhir/search-modifier-code"; 524 case OFTYPE: return "http://hl7.org/fhir/search-modifier-code"; 525 case NULL: return null; 526 default: return "?"; 527 } 528 } 529 public String getDefinition() { 530 switch (this) { 531 case MISSING: return "The search parameter returns resources that have a value or not."; 532 case EXACT: return "The search parameter returns resources that have a value that exactly matches the supplied parameter (the whole string, including casing and accents)."; 533 case CONTAINS: return "The search parameter returns resources that include the supplied parameter value anywhere within the field being searched."; 534 case NOT: return "The search parameter returns resources that do not contain a match."; 535 case TEXT: return "The search parameter is processed as a string that searches text associated with the code/value - either CodeableConcept.text, Coding.display, or Identifier.type.text."; 536 case IN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is in the specified value set."; 537 case NOTIN: return "The search parameter is a URI (relative or absolute) that identifies a value set, and the search parameter tests whether the coding is not in the specified value set."; 538 case BELOW: return "The search parameter tests whether the value in a resource is subsumed by the specified value (is-a, or hierarchical relationships)."; 539 case ABOVE: return "The search parameter tests whether the value in a resource subsumes the specified value (is-a, or hierarchical relationships)."; 540 case TYPE: return "The search parameter only applies to the Resource Type specified as a modifier (e.g. the modifier is not actually :type, but :Patient etc.)."; 541 case IDENTIFIER: return "The search parameter applies to the identifier on the resource, not the reference."; 542 case OFTYPE: return "The search parameter has the format system|code|value, where the system and code refer to an Identifier.type.coding.system and .code, and match if any of the type codes match. All 3 parts must be present."; 543 case NULL: return null; 544 default: return "?"; 545 } 546 } 547 public String getDisplay() { 548 switch (this) { 549 case MISSING: return "Missing"; 550 case EXACT: return "Exact"; 551 case CONTAINS: return "Contains"; 552 case NOT: return "Not"; 553 case TEXT: return "Text"; 554 case IN: return "In"; 555 case NOTIN: return "Not In"; 556 case BELOW: return "Below"; 557 case ABOVE: return "Above"; 558 case TYPE: return "Type"; 559 case IDENTIFIER: return "Identifier"; 560 case OFTYPE: return "Of Type"; 561 case NULL: return null; 562 default: return "?"; 563 } 564 } 565 } 566 567 public static class SearchModifierCodeEnumFactory implements EnumFactory<SearchModifierCode> { 568 public SearchModifierCode fromCode(String codeString) throws IllegalArgumentException { 569 if (codeString == null || "".equals(codeString)) 570 if (codeString == null || "".equals(codeString)) 571 return null; 572 if ("missing".equals(codeString)) 573 return SearchModifierCode.MISSING; 574 if ("exact".equals(codeString)) 575 return SearchModifierCode.EXACT; 576 if ("contains".equals(codeString)) 577 return SearchModifierCode.CONTAINS; 578 if ("not".equals(codeString)) 579 return SearchModifierCode.NOT; 580 if ("text".equals(codeString)) 581 return SearchModifierCode.TEXT; 582 if ("in".equals(codeString)) 583 return SearchModifierCode.IN; 584 if ("not-in".equals(codeString)) 585 return SearchModifierCode.NOTIN; 586 if ("below".equals(codeString)) 587 return SearchModifierCode.BELOW; 588 if ("above".equals(codeString)) 589 return SearchModifierCode.ABOVE; 590 if ("type".equals(codeString)) 591 return SearchModifierCode.TYPE; 592 if ("identifier".equals(codeString)) 593 return SearchModifierCode.IDENTIFIER; 594 if ("ofType".equals(codeString)) 595 return SearchModifierCode.OFTYPE; 596 throw new IllegalArgumentException("Unknown SearchModifierCode code '"+codeString+"'"); 597 } 598 public Enumeration<SearchModifierCode> fromType(Base code) throws FHIRException { 599 if (code == null) 600 return null; 601 if (code.isEmpty()) 602 return new Enumeration<SearchModifierCode>(this); 603 String codeString = ((PrimitiveType) code).asStringValue(); 604 if (codeString == null || "".equals(codeString)) 605 return null; 606 if ("missing".equals(codeString)) 607 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.MISSING); 608 if ("exact".equals(codeString)) 609 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.EXACT); 610 if ("contains".equals(codeString)) 611 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.CONTAINS); 612 if ("not".equals(codeString)) 613 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOT); 614 if ("text".equals(codeString)) 615 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TEXT); 616 if ("in".equals(codeString)) 617 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IN); 618 if ("not-in".equals(codeString)) 619 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.NOTIN); 620 if ("below".equals(codeString)) 621 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.BELOW); 622 if ("above".equals(codeString)) 623 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.ABOVE); 624 if ("type".equals(codeString)) 625 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.TYPE); 626 if ("identifier".equals(codeString)) 627 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.IDENTIFIER); 628 if ("ofType".equals(codeString)) 629 return new Enumeration<SearchModifierCode>(this, SearchModifierCode.OFTYPE); 630 throw new FHIRException("Unknown SearchModifierCode code '"+codeString+"'"); 631 } 632 public String toCode(SearchModifierCode code) { 633 if (code == SearchModifierCode.MISSING) 634 return "missing"; 635 if (code == SearchModifierCode.EXACT) 636 return "exact"; 637 if (code == SearchModifierCode.CONTAINS) 638 return "contains"; 639 if (code == SearchModifierCode.NOT) 640 return "not"; 641 if (code == SearchModifierCode.TEXT) 642 return "text"; 643 if (code == SearchModifierCode.IN) 644 return "in"; 645 if (code == SearchModifierCode.NOTIN) 646 return "not-in"; 647 if (code == SearchModifierCode.BELOW) 648 return "below"; 649 if (code == SearchModifierCode.ABOVE) 650 return "above"; 651 if (code == SearchModifierCode.TYPE) 652 return "type"; 653 if (code == SearchModifierCode.IDENTIFIER) 654 return "identifier"; 655 if (code == SearchModifierCode.OFTYPE) 656 return "ofType"; 657 return "?"; 658 } 659 public String toSystem(SearchModifierCode code) { 660 return code.getSystem(); 661 } 662 } 663 664 @Block() 665 public static class SearchParameterComponentComponent extends BackboneElement implements IBaseBackboneElement { 666 /** 667 * The definition of the search parameter that describes this part. 668 */ 669 @Child(name = "definition", type = {CanonicalType.class}, order=1, min=1, max=1, modifier=false, summary=false) 670 @Description(shortDefinition="Defines how the part works", formalDefinition="The definition of the search parameter that describes this part." ) 671 protected CanonicalType definition; 672 673 /** 674 * A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 675 */ 676 @Child(name = "expression", type = {StringType.class}, order=2, min=1, max=1, modifier=false, summary=false) 677 @Description(shortDefinition="Subexpression relative to main expression", formalDefinition="A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression." ) 678 protected StringType expression; 679 680 private static final long serialVersionUID = -1469435618L; 681 682 /** 683 * Constructor 684 */ 685 public SearchParameterComponentComponent() { 686 super(); 687 } 688 689 /** 690 * Constructor 691 */ 692 public SearchParameterComponentComponent(CanonicalType definition, StringType expression) { 693 super(); 694 this.definition = definition; 695 this.expression = expression; 696 } 697 698 /** 699 * @return {@link #definition} (The definition of the search parameter that describes this part.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 700 */ 701 public CanonicalType getDefinitionElement() { 702 if (this.definition == null) 703 if (Configuration.errorOnAutoCreate()) 704 throw new Error("Attempt to auto-create SearchParameterComponentComponent.definition"); 705 else if (Configuration.doAutoCreate()) 706 this.definition = new CanonicalType(); // bb 707 return this.definition; 708 } 709 710 public boolean hasDefinitionElement() { 711 return this.definition != null && !this.definition.isEmpty(); 712 } 713 714 public boolean hasDefinition() { 715 return this.definition != null && !this.definition.isEmpty(); 716 } 717 718 /** 719 * @param value {@link #definition} (The definition of the search parameter that describes this part.). This is the underlying object with id, value and extensions. The accessor "getDefinition" gives direct access to the value 720 */ 721 public SearchParameterComponentComponent setDefinitionElement(CanonicalType value) { 722 this.definition = value; 723 return this; 724 } 725 726 /** 727 * @return The definition of the search parameter that describes this part. 728 */ 729 public String getDefinition() { 730 return this.definition == null ? null : this.definition.getValue(); 731 } 732 733 /** 734 * @param value The definition of the search parameter that describes this part. 735 */ 736 public SearchParameterComponentComponent setDefinition(String value) { 737 if (this.definition == null) 738 this.definition = new CanonicalType(); 739 this.definition.setValue(value); 740 return this; 741 } 742 743 /** 744 * @return {@link #expression} (A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 745 */ 746 public StringType getExpressionElement() { 747 if (this.expression == null) 748 if (Configuration.errorOnAutoCreate()) 749 throw new Error("Attempt to auto-create SearchParameterComponentComponent.expression"); 750 else if (Configuration.doAutoCreate()) 751 this.expression = new StringType(); // bb 752 return this.expression; 753 } 754 755 public boolean hasExpressionElement() { 756 return this.expression != null && !this.expression.isEmpty(); 757 } 758 759 public boolean hasExpression() { 760 return this.expression != null && !this.expression.isEmpty(); 761 } 762 763 /** 764 * @param value {@link #expression} (A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 765 */ 766 public SearchParameterComponentComponent setExpressionElement(StringType value) { 767 this.expression = value; 768 return this; 769 } 770 771 /** 772 * @return A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 773 */ 774 public String getExpression() { 775 return this.expression == null ? null : this.expression.getValue(); 776 } 777 778 /** 779 * @param value A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression. 780 */ 781 public SearchParameterComponentComponent setExpression(String value) { 782 if (this.expression == null) 783 this.expression = new StringType(); 784 this.expression.setValue(value); 785 return this; 786 } 787 788 protected void listChildren(List<Property> children) { 789 super.listChildren(children); 790 children.add(new Property("definition", "canonical(SearchParameter)", "The definition of the search parameter that describes this part.", 0, 1, definition)); 791 children.add(new Property("expression", "string", "A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.", 0, 1, expression)); 792 } 793 794 @Override 795 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 796 switch (_hash) { 797 case -1014418093: /*definition*/ return new Property("definition", "canonical(SearchParameter)", "The definition of the search parameter that describes this part.", 0, 1, definition); 798 case -1795452264: /*expression*/ return new Property("expression", "string", "A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression.", 0, 1, expression); 799 default: return super.getNamedProperty(_hash, _name, _checkValid); 800 } 801 802 } 803 804 @Override 805 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 806 switch (hash) { 807 case -1014418093: /*definition*/ return this.definition == null ? new Base[0] : new Base[] {this.definition}; // CanonicalType 808 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 809 default: return super.getProperty(hash, name, checkValid); 810 } 811 812 } 813 814 @Override 815 public Base setProperty(int hash, String name, Base value) throws FHIRException { 816 switch (hash) { 817 case -1014418093: // definition 818 this.definition = castToCanonical(value); // CanonicalType 819 return value; 820 case -1795452264: // expression 821 this.expression = castToString(value); // StringType 822 return value; 823 default: return super.setProperty(hash, name, value); 824 } 825 826 } 827 828 @Override 829 public Base setProperty(String name, Base value) throws FHIRException { 830 if (name.equals("definition")) { 831 this.definition = castToCanonical(value); // CanonicalType 832 } else if (name.equals("expression")) { 833 this.expression = castToString(value); // StringType 834 } else 835 return super.setProperty(name, value); 836 return value; 837 } 838 839 @Override 840 public Base makeProperty(int hash, String name) throws FHIRException { 841 switch (hash) { 842 case -1014418093: return getDefinitionElement(); 843 case -1795452264: return getExpressionElement(); 844 default: return super.makeProperty(hash, name); 845 } 846 847 } 848 849 @Override 850 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 851 switch (hash) { 852 case -1014418093: /*definition*/ return new String[] {"canonical"}; 853 case -1795452264: /*expression*/ return new String[] {"string"}; 854 default: return super.getTypesForProperty(hash, name); 855 } 856 857 } 858 859 @Override 860 public Base addChild(String name) throws FHIRException { 861 if (name.equals("definition")) { 862 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.definition"); 863 } 864 else if (name.equals("expression")) { 865 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 866 } 867 else 868 return super.addChild(name); 869 } 870 871 public SearchParameterComponentComponent copy() { 872 SearchParameterComponentComponent dst = new SearchParameterComponentComponent(); 873 copyValues(dst); 874 return dst; 875 } 876 877 public void copyValues(SearchParameterComponentComponent dst) { 878 super.copyValues(dst); 879 dst.definition = definition == null ? null : definition.copy(); 880 dst.expression = expression == null ? null : expression.copy(); 881 } 882 883 @Override 884 public boolean equalsDeep(Base other_) { 885 if (!super.equalsDeep(other_)) 886 return false; 887 if (!(other_ instanceof SearchParameterComponentComponent)) 888 return false; 889 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other_; 890 return compareDeep(definition, o.definition, true) && compareDeep(expression, o.expression, true) 891 ; 892 } 893 894 @Override 895 public boolean equalsShallow(Base other_) { 896 if (!super.equalsShallow(other_)) 897 return false; 898 if (!(other_ instanceof SearchParameterComponentComponent)) 899 return false; 900 SearchParameterComponentComponent o = (SearchParameterComponentComponent) other_; 901 return compareValues(expression, o.expression, true); 902 } 903 904 public boolean isEmpty() { 905 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(definition, expression); 906 } 907 908 public String fhirType() { 909 return "SearchParameter.component"; 910 911 } 912 913 } 914 915 /** 916 * Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 917 */ 918 @Child(name = "derivedFrom", type = {CanonicalType.class}, order=0, min=0, max=1, modifier=false, summary=false) 919 @Description(shortDefinition="Original definition for the search parameter", formalDefinition="Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter." ) 920 protected CanonicalType derivedFrom; 921 922 /** 923 * Explanation of why this search parameter is needed and why it has been designed as it has. 924 */ 925 @Child(name = "purpose", type = {MarkdownType.class}, order=1, min=0, max=1, modifier=false, summary=false) 926 @Description(shortDefinition="Why this search parameter is defined", formalDefinition="Explanation of why this search parameter is needed and why it has been designed as it has." ) 927 protected MarkdownType purpose; 928 929 /** 930 * The code used in the URL or the parameter name in a parameters resource for this search parameter. 931 */ 932 @Child(name = "code", type = {CodeType.class}, order=2, min=1, max=1, modifier=false, summary=true) 933 @Description(shortDefinition="Code used in URL", formalDefinition="The code used in the URL or the parameter name in a parameters resource for this search parameter." ) 934 protected CodeType code; 935 936 /** 937 * The base resource type(s) that this search parameter can be used against. 938 */ 939 @Child(name = "base", type = {CodeType.class}, order=3, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 940 @Description(shortDefinition="The resource type(s) this search parameter applies to", formalDefinition="The base resource type(s) that this search parameter can be used against." ) 941 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 942 protected List<CodeType> base; 943 944 /** 945 * The type of value that a search parameter may contain, and how the content is interpreted. 946 */ 947 @Child(name = "type", type = {CodeType.class}, order=4, min=1, max=1, modifier=false, summary=true) 948 @Description(shortDefinition="number | date | string | token | reference | composite | quantity | uri | special", formalDefinition="The type of value that a search parameter may contain, and how the content is interpreted." ) 949 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-param-type") 950 protected Enumeration<SearchParamType> type; 951 952 /** 953 * A FHIRPath expression that returns a set of elements for the search parameter. 954 */ 955 @Child(name = "expression", type = {StringType.class}, order=5, min=0, max=1, modifier=false, summary=false) 956 @Description(shortDefinition="FHIRPath expression that extracts the values", formalDefinition="A FHIRPath expression that returns a set of elements for the search parameter." ) 957 protected StringType expression; 958 959 /** 960 * An XPath expression that returns a set of elements for the search parameter. 961 */ 962 @Child(name = "xpath", type = {StringType.class}, order=6, min=0, max=1, modifier=false, summary=false) 963 @Description(shortDefinition="XPath that extracts the values", formalDefinition="An XPath expression that returns a set of elements for the search parameter." ) 964 protected StringType xpath; 965 966 /** 967 * How the search parameter relates to the set of elements returned by evaluating the xpath query. 968 */ 969 @Child(name = "xpathUsage", type = {CodeType.class}, order=7, min=0, max=1, modifier=false, summary=false) 970 @Description(shortDefinition="normal | phonetic | nearby | distance | other", formalDefinition="How the search parameter relates to the set of elements returned by evaluating the xpath query." ) 971 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-xpath-usage") 972 protected Enumeration<XPathUsageType> xpathUsage; 973 974 /** 975 * Types of resource (if a resource is referenced). 976 */ 977 @Child(name = "target", type = {CodeType.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 978 @Description(shortDefinition="Types of resource (if a resource reference)", formalDefinition="Types of resource (if a resource is referenced)." ) 979 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/resource-types") 980 protected List<CodeType> target; 981 982 /** 983 * Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 984 */ 985 @Child(name = "multipleOr", type = {BooleanType.class}, order=9, min=0, max=1, modifier=false, summary=false) 986 @Description(shortDefinition="Allow multiple values per parameter (or)", formalDefinition="Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match." ) 987 protected BooleanType multipleOr; 988 989 /** 990 * Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 991 */ 992 @Child(name = "multipleAnd", type = {BooleanType.class}, order=10, min=0, max=1, modifier=false, summary=false) 993 @Description(shortDefinition="Allow multiple parameters (and)", formalDefinition="Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match." ) 994 protected BooleanType multipleAnd; 995 996 /** 997 * Comparators supported for the search parameter. 998 */ 999 @Child(name = "comparator", type = {CodeType.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1000 @Description(shortDefinition="eq | ne | gt | lt | ge | le | sa | eb | ap", formalDefinition="Comparators supported for the search parameter." ) 1001 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-comparator") 1002 protected List<Enumeration<SearchComparator>> comparator; 1003 1004 /** 1005 * A modifier supported for the search parameter. 1006 */ 1007 @Child(name = "modifier", type = {CodeType.class}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1008 @Description(shortDefinition="missing | exact | contains | not | text | in | not-in | below | above | type | identifier | ofType", formalDefinition="A modifier supported for the search parameter." ) 1009 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/search-modifier-code") 1010 protected List<Enumeration<SearchModifierCode>> modifier; 1011 1012 /** 1013 * Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type. 1014 */ 1015 @Child(name = "chain", type = {StringType.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1016 @Description(shortDefinition="Chained names supported", formalDefinition="Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type." ) 1017 protected List<StringType> chain; 1018 1019 /** 1020 * Used to define the parts of a composite search parameter. 1021 */ 1022 @Child(name = "component", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 1023 @Description(shortDefinition="For Composite resources to define the parts", formalDefinition="Used to define the parts of a composite search parameter." ) 1024 protected List<SearchParameterComponentComponent> component; 1025 1026 private static final long serialVersionUID = -533803519L; 1027 1028 /** 1029 * Constructor 1030 */ 1031 public SearchParameter() { 1032 super(); 1033 } 1034 1035 /** 1036 * Constructor 1037 */ 1038 public SearchParameter(UriType url, StringType name, Enumeration<PublicationStatus> status, MarkdownType description, CodeType code, Enumeration<SearchParamType> type) { 1039 super(); 1040 this.url = url; 1041 this.name = name; 1042 this.status = status; 1043 this.description = description; 1044 this.code = code; 1045 this.type = type; 1046 } 1047 1048 /** 1049 * @return {@link #url} (An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1050 */ 1051 public UriType getUrlElement() { 1052 if (this.url == null) 1053 if (Configuration.errorOnAutoCreate()) 1054 throw new Error("Attempt to auto-create SearchParameter.url"); 1055 else if (Configuration.doAutoCreate()) 1056 this.url = new UriType(); // bb 1057 return this.url; 1058 } 1059 1060 public boolean hasUrlElement() { 1061 return this.url != null && !this.url.isEmpty(); 1062 } 1063 1064 public boolean hasUrl() { 1065 return this.url != null && !this.url.isEmpty(); 1066 } 1067 1068 /** 1069 * @param value {@link #url} (An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value 1070 */ 1071 public SearchParameter setUrlElement(UriType value) { 1072 this.url = value; 1073 return this; 1074 } 1075 1076 /** 1077 * @return An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers. 1078 */ 1079 public String getUrl() { 1080 return this.url == null ? null : this.url.getValue(); 1081 } 1082 1083 /** 1084 * @param value An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers. 1085 */ 1086 public SearchParameter setUrl(String value) { 1087 if (this.url == null) 1088 this.url = new UriType(); 1089 this.url.setValue(value); 1090 return this; 1091 } 1092 1093 /** 1094 * @return {@link #version} (The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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 1095 */ 1096 public StringType getVersionElement() { 1097 if (this.version == null) 1098 if (Configuration.errorOnAutoCreate()) 1099 throw new Error("Attempt to auto-create SearchParameter.version"); 1100 else if (Configuration.doAutoCreate()) 1101 this.version = new StringType(); // bb 1102 return this.version; 1103 } 1104 1105 public boolean hasVersionElement() { 1106 return this.version != null && !this.version.isEmpty(); 1107 } 1108 1109 public boolean hasVersion() { 1110 return this.version != null && !this.version.isEmpty(); 1111 } 1112 1113 /** 1114 * @param value {@link #version} (The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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 1115 */ 1116 public SearchParameter setVersionElement(StringType value) { 1117 this.version = value; 1118 return this; 1119 } 1120 1121 /** 1122 * @return The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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. 1123 */ 1124 public String getVersion() { 1125 return this.version == null ? null : this.version.getValue(); 1126 } 1127 1128 /** 1129 * @param value The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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. 1130 */ 1131 public SearchParameter setVersion(String value) { 1132 if (Utilities.noString(value)) 1133 this.version = null; 1134 else { 1135 if (this.version == null) 1136 this.version = new StringType(); 1137 this.version.setValue(value); 1138 } 1139 return this; 1140 } 1141 1142 /** 1143 * @return {@link #name} (A natural language name identifying the search parameter. 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 1144 */ 1145 public StringType getNameElement() { 1146 if (this.name == null) 1147 if (Configuration.errorOnAutoCreate()) 1148 throw new Error("Attempt to auto-create SearchParameter.name"); 1149 else if (Configuration.doAutoCreate()) 1150 this.name = new StringType(); // bb 1151 return this.name; 1152 } 1153 1154 public boolean hasNameElement() { 1155 return this.name != null && !this.name.isEmpty(); 1156 } 1157 1158 public boolean hasName() { 1159 return this.name != null && !this.name.isEmpty(); 1160 } 1161 1162 /** 1163 * @param value {@link #name} (A natural language name identifying the search parameter. 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 1164 */ 1165 public SearchParameter setNameElement(StringType value) { 1166 this.name = value; 1167 return this; 1168 } 1169 1170 /** 1171 * @return A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1172 */ 1173 public String getName() { 1174 return this.name == null ? null : this.name.getValue(); 1175 } 1176 1177 /** 1178 * @param value A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation. 1179 */ 1180 public SearchParameter setName(String value) { 1181 if (this.name == null) 1182 this.name = new StringType(); 1183 this.name.setValue(value); 1184 return this; 1185 } 1186 1187 /** 1188 * @return {@link #derivedFrom} (Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.). This is the underlying object with id, value and extensions. The accessor "getDerivedFrom" gives direct access to the value 1189 */ 1190 public CanonicalType getDerivedFromElement() { 1191 if (this.derivedFrom == null) 1192 if (Configuration.errorOnAutoCreate()) 1193 throw new Error("Attempt to auto-create SearchParameter.derivedFrom"); 1194 else if (Configuration.doAutoCreate()) 1195 this.derivedFrom = new CanonicalType(); // bb 1196 return this.derivedFrom; 1197 } 1198 1199 public boolean hasDerivedFromElement() { 1200 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1201 } 1202 1203 public boolean hasDerivedFrom() { 1204 return this.derivedFrom != null && !this.derivedFrom.isEmpty(); 1205 } 1206 1207 /** 1208 * @param value {@link #derivedFrom} (Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.). This is the underlying object with id, value and extensions. The accessor "getDerivedFrom" gives direct access to the value 1209 */ 1210 public SearchParameter setDerivedFromElement(CanonicalType value) { 1211 this.derivedFrom = value; 1212 return this; 1213 } 1214 1215 /** 1216 * @return Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 1217 */ 1218 public String getDerivedFrom() { 1219 return this.derivedFrom == null ? null : this.derivedFrom.getValue(); 1220 } 1221 1222 /** 1223 * @param value Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter. 1224 */ 1225 public SearchParameter setDerivedFrom(String value) { 1226 if (Utilities.noString(value)) 1227 this.derivedFrom = null; 1228 else { 1229 if (this.derivedFrom == null) 1230 this.derivedFrom = new CanonicalType(); 1231 this.derivedFrom.setValue(value); 1232 } 1233 return this; 1234 } 1235 1236 /** 1237 * @return {@link #status} (The status of this search parameter. 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 1238 */ 1239 public Enumeration<PublicationStatus> getStatusElement() { 1240 if (this.status == null) 1241 if (Configuration.errorOnAutoCreate()) 1242 throw new Error("Attempt to auto-create SearchParameter.status"); 1243 else if (Configuration.doAutoCreate()) 1244 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 1245 return this.status; 1246 } 1247 1248 public boolean hasStatusElement() { 1249 return this.status != null && !this.status.isEmpty(); 1250 } 1251 1252 public boolean hasStatus() { 1253 return this.status != null && !this.status.isEmpty(); 1254 } 1255 1256 /** 1257 * @param value {@link #status} (The status of this search parameter. 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 1258 */ 1259 public SearchParameter setStatusElement(Enumeration<PublicationStatus> value) { 1260 this.status = value; 1261 return this; 1262 } 1263 1264 /** 1265 * @return The status of this search parameter. Enables tracking the life-cycle of the content. 1266 */ 1267 public PublicationStatus getStatus() { 1268 return this.status == null ? null : this.status.getValue(); 1269 } 1270 1271 /** 1272 * @param value The status of this search parameter. Enables tracking the life-cycle of the content. 1273 */ 1274 public SearchParameter setStatus(PublicationStatus value) { 1275 if (this.status == null) 1276 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 1277 this.status.setValue(value); 1278 return this; 1279 } 1280 1281 /** 1282 * @return {@link #experimental} (A Boolean value to indicate that this search parameter 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 1283 */ 1284 public BooleanType getExperimentalElement() { 1285 if (this.experimental == null) 1286 if (Configuration.errorOnAutoCreate()) 1287 throw new Error("Attempt to auto-create SearchParameter.experimental"); 1288 else if (Configuration.doAutoCreate()) 1289 this.experimental = new BooleanType(); // bb 1290 return this.experimental; 1291 } 1292 1293 public boolean hasExperimentalElement() { 1294 return this.experimental != null && !this.experimental.isEmpty(); 1295 } 1296 1297 public boolean hasExperimental() { 1298 return this.experimental != null && !this.experimental.isEmpty(); 1299 } 1300 1301 /** 1302 * @param value {@link #experimental} (A Boolean value to indicate that this search parameter 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 1303 */ 1304 public SearchParameter setExperimentalElement(BooleanType value) { 1305 this.experimental = value; 1306 return this; 1307 } 1308 1309 /** 1310 * @return A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 1311 */ 1312 public boolean getExperimental() { 1313 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 1314 } 1315 1316 /** 1317 * @param value A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage. 1318 */ 1319 public SearchParameter setExperimental(boolean value) { 1320 if (this.experimental == null) 1321 this.experimental = new BooleanType(); 1322 this.experimental.setValue(value); 1323 return this; 1324 } 1325 1326 /** 1327 * @return {@link #date} (The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1328 */ 1329 public DateTimeType getDateElement() { 1330 if (this.date == null) 1331 if (Configuration.errorOnAutoCreate()) 1332 throw new Error("Attempt to auto-create SearchParameter.date"); 1333 else if (Configuration.doAutoCreate()) 1334 this.date = new DateTimeType(); // bb 1335 return this.date; 1336 } 1337 1338 public boolean hasDateElement() { 1339 return this.date != null && !this.date.isEmpty(); 1340 } 1341 1342 public boolean hasDate() { 1343 return this.date != null && !this.date.isEmpty(); 1344 } 1345 1346 /** 1347 * @param value {@link #date} (The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value 1348 */ 1349 public SearchParameter setDateElement(DateTimeType value) { 1350 this.date = value; 1351 return this; 1352 } 1353 1354 /** 1355 * @return The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes. 1356 */ 1357 public Date getDate() { 1358 return this.date == null ? null : this.date.getValue(); 1359 } 1360 1361 /** 1362 * @param value The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes. 1363 */ 1364 public SearchParameter setDate(Date value) { 1365 if (value == null) 1366 this.date = null; 1367 else { 1368 if (this.date == null) 1369 this.date = new DateTimeType(); 1370 this.date.setValue(value); 1371 } 1372 return this; 1373 } 1374 1375 /** 1376 * @return {@link #publisher} (The name of the organization or individual that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1377 */ 1378 public StringType getPublisherElement() { 1379 if (this.publisher == null) 1380 if (Configuration.errorOnAutoCreate()) 1381 throw new Error("Attempt to auto-create SearchParameter.publisher"); 1382 else if (Configuration.doAutoCreate()) 1383 this.publisher = new StringType(); // bb 1384 return this.publisher; 1385 } 1386 1387 public boolean hasPublisherElement() { 1388 return this.publisher != null && !this.publisher.isEmpty(); 1389 } 1390 1391 public boolean hasPublisher() { 1392 return this.publisher != null && !this.publisher.isEmpty(); 1393 } 1394 1395 /** 1396 * @param value {@link #publisher} (The name of the organization or individual that published the search parameter.). This is the underlying object with id, value and extensions. The accessor "getPublisher" gives direct access to the value 1397 */ 1398 public SearchParameter setPublisherElement(StringType value) { 1399 this.publisher = value; 1400 return this; 1401 } 1402 1403 /** 1404 * @return The name of the organization or individual that published the search parameter. 1405 */ 1406 public String getPublisher() { 1407 return this.publisher == null ? null : this.publisher.getValue(); 1408 } 1409 1410 /** 1411 * @param value The name of the organization or individual that published the search parameter. 1412 */ 1413 public SearchParameter setPublisher(String value) { 1414 if (Utilities.noString(value)) 1415 this.publisher = null; 1416 else { 1417 if (this.publisher == null) 1418 this.publisher = new StringType(); 1419 this.publisher.setValue(value); 1420 } 1421 return this; 1422 } 1423 1424 /** 1425 * @return {@link #contact} (Contact details to assist a user in finding and communicating with the publisher.) 1426 */ 1427 public List<ContactDetail> getContact() { 1428 if (this.contact == null) 1429 this.contact = new ArrayList<ContactDetail>(); 1430 return this.contact; 1431 } 1432 1433 /** 1434 * @return Returns a reference to <code>this</code> for easy method chaining 1435 */ 1436 public SearchParameter setContact(List<ContactDetail> theContact) { 1437 this.contact = theContact; 1438 return this; 1439 } 1440 1441 public boolean hasContact() { 1442 if (this.contact == null) 1443 return false; 1444 for (ContactDetail item : this.contact) 1445 if (!item.isEmpty()) 1446 return true; 1447 return false; 1448 } 1449 1450 public ContactDetail addContact() { //3 1451 ContactDetail t = new ContactDetail(); 1452 if (this.contact == null) 1453 this.contact = new ArrayList<ContactDetail>(); 1454 this.contact.add(t); 1455 return t; 1456 } 1457 1458 public SearchParameter addContact(ContactDetail t) { //3 1459 if (t == null) 1460 return this; 1461 if (this.contact == null) 1462 this.contact = new ArrayList<ContactDetail>(); 1463 this.contact.add(t); 1464 return this; 1465 } 1466 1467 /** 1468 * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist 1469 */ 1470 public ContactDetail getContactFirstRep() { 1471 if (getContact().isEmpty()) { 1472 addContact(); 1473 } 1474 return getContact().get(0); 1475 } 1476 1477 /** 1478 * @return {@link #description} (And how it used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1479 */ 1480 public MarkdownType getDescriptionElement() { 1481 if (this.description == null) 1482 if (Configuration.errorOnAutoCreate()) 1483 throw new Error("Attempt to auto-create SearchParameter.description"); 1484 else if (Configuration.doAutoCreate()) 1485 this.description = new MarkdownType(); // bb 1486 return this.description; 1487 } 1488 1489 public boolean hasDescriptionElement() { 1490 return this.description != null && !this.description.isEmpty(); 1491 } 1492 1493 public boolean hasDescription() { 1494 return this.description != null && !this.description.isEmpty(); 1495 } 1496 1497 /** 1498 * @param value {@link #description} (And how it used.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value 1499 */ 1500 public SearchParameter setDescriptionElement(MarkdownType value) { 1501 this.description = value; 1502 return this; 1503 } 1504 1505 /** 1506 * @return And how it used. 1507 */ 1508 public String getDescription() { 1509 return this.description == null ? null : this.description.getValue(); 1510 } 1511 1512 /** 1513 * @param value And how it used. 1514 */ 1515 public SearchParameter setDescription(String value) { 1516 if (this.description == null) 1517 this.description = new MarkdownType(); 1518 this.description.setValue(value); 1519 return this; 1520 } 1521 1522 /** 1523 * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances.) 1524 */ 1525 public List<UsageContext> getUseContext() { 1526 if (this.useContext == null) 1527 this.useContext = new ArrayList<UsageContext>(); 1528 return this.useContext; 1529 } 1530 1531 /** 1532 * @return Returns a reference to <code>this</code> for easy method chaining 1533 */ 1534 public SearchParameter setUseContext(List<UsageContext> theUseContext) { 1535 this.useContext = theUseContext; 1536 return this; 1537 } 1538 1539 public boolean hasUseContext() { 1540 if (this.useContext == null) 1541 return false; 1542 for (UsageContext item : this.useContext) 1543 if (!item.isEmpty()) 1544 return true; 1545 return false; 1546 } 1547 1548 public UsageContext addUseContext() { //3 1549 UsageContext t = new UsageContext(); 1550 if (this.useContext == null) 1551 this.useContext = new ArrayList<UsageContext>(); 1552 this.useContext.add(t); 1553 return t; 1554 } 1555 1556 public SearchParameter addUseContext(UsageContext t) { //3 1557 if (t == null) 1558 return this; 1559 if (this.useContext == null) 1560 this.useContext = new ArrayList<UsageContext>(); 1561 this.useContext.add(t); 1562 return this; 1563 } 1564 1565 /** 1566 * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist 1567 */ 1568 public UsageContext getUseContextFirstRep() { 1569 if (getUseContext().isEmpty()) { 1570 addUseContext(); 1571 } 1572 return getUseContext().get(0); 1573 } 1574 1575 /** 1576 * @return {@link #jurisdiction} (A legal or geographic region in which the search parameter is intended to be used.) 1577 */ 1578 public List<CodeableConcept> getJurisdiction() { 1579 if (this.jurisdiction == null) 1580 this.jurisdiction = new ArrayList<CodeableConcept>(); 1581 return this.jurisdiction; 1582 } 1583 1584 /** 1585 * @return Returns a reference to <code>this</code> for easy method chaining 1586 */ 1587 public SearchParameter setJurisdiction(List<CodeableConcept> theJurisdiction) { 1588 this.jurisdiction = theJurisdiction; 1589 return this; 1590 } 1591 1592 public boolean hasJurisdiction() { 1593 if (this.jurisdiction == null) 1594 return false; 1595 for (CodeableConcept item : this.jurisdiction) 1596 if (!item.isEmpty()) 1597 return true; 1598 return false; 1599 } 1600 1601 public CodeableConcept addJurisdiction() { //3 1602 CodeableConcept t = new CodeableConcept(); 1603 if (this.jurisdiction == null) 1604 this.jurisdiction = new ArrayList<CodeableConcept>(); 1605 this.jurisdiction.add(t); 1606 return t; 1607 } 1608 1609 public SearchParameter addJurisdiction(CodeableConcept t) { //3 1610 if (t == null) 1611 return this; 1612 if (this.jurisdiction == null) 1613 this.jurisdiction = new ArrayList<CodeableConcept>(); 1614 this.jurisdiction.add(t); 1615 return this; 1616 } 1617 1618 /** 1619 * @return The first repetition of repeating field {@link #jurisdiction}, creating it if it does not already exist 1620 */ 1621 public CodeableConcept getJurisdictionFirstRep() { 1622 if (getJurisdiction().isEmpty()) { 1623 addJurisdiction(); 1624 } 1625 return getJurisdiction().get(0); 1626 } 1627 1628 /** 1629 * @return {@link #purpose} (Explanation of why this search parameter 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 1630 */ 1631 public MarkdownType getPurposeElement() { 1632 if (this.purpose == null) 1633 if (Configuration.errorOnAutoCreate()) 1634 throw new Error("Attempt to auto-create SearchParameter.purpose"); 1635 else if (Configuration.doAutoCreate()) 1636 this.purpose = new MarkdownType(); // bb 1637 return this.purpose; 1638 } 1639 1640 public boolean hasPurposeElement() { 1641 return this.purpose != null && !this.purpose.isEmpty(); 1642 } 1643 1644 public boolean hasPurpose() { 1645 return this.purpose != null && !this.purpose.isEmpty(); 1646 } 1647 1648 /** 1649 * @param value {@link #purpose} (Explanation of why this search parameter 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 1650 */ 1651 public SearchParameter setPurposeElement(MarkdownType value) { 1652 this.purpose = value; 1653 return this; 1654 } 1655 1656 /** 1657 * @return Explanation of why this search parameter is needed and why it has been designed as it has. 1658 */ 1659 public String getPurpose() { 1660 return this.purpose == null ? null : this.purpose.getValue(); 1661 } 1662 1663 /** 1664 * @param value Explanation of why this search parameter is needed and why it has been designed as it has. 1665 */ 1666 public SearchParameter setPurpose(String value) { 1667 if (value == null) 1668 this.purpose = null; 1669 else { 1670 if (this.purpose == null) 1671 this.purpose = new MarkdownType(); 1672 this.purpose.setValue(value); 1673 } 1674 return this; 1675 } 1676 1677 /** 1678 * @return {@link #code} (The code used in the URL or the parameter name in a parameters resource for this search parameter.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1679 */ 1680 public CodeType getCodeElement() { 1681 if (this.code == null) 1682 if (Configuration.errorOnAutoCreate()) 1683 throw new Error("Attempt to auto-create SearchParameter.code"); 1684 else if (Configuration.doAutoCreate()) 1685 this.code = new CodeType(); // bb 1686 return this.code; 1687 } 1688 1689 public boolean hasCodeElement() { 1690 return this.code != null && !this.code.isEmpty(); 1691 } 1692 1693 public boolean hasCode() { 1694 return this.code != null && !this.code.isEmpty(); 1695 } 1696 1697 /** 1698 * @param value {@link #code} (The code used in the URL or the parameter name in a parameters resource for this search parameter.). This is the underlying object with id, value and extensions. The accessor "getCode" gives direct access to the value 1699 */ 1700 public SearchParameter setCodeElement(CodeType value) { 1701 this.code = value; 1702 return this; 1703 } 1704 1705 /** 1706 * @return The code used in the URL or the parameter name in a parameters resource for this search parameter. 1707 */ 1708 public String getCode() { 1709 return this.code == null ? null : this.code.getValue(); 1710 } 1711 1712 /** 1713 * @param value The code used in the URL or the parameter name in a parameters resource for this search parameter. 1714 */ 1715 public SearchParameter setCode(String value) { 1716 if (this.code == null) 1717 this.code = new CodeType(); 1718 this.code.setValue(value); 1719 return this; 1720 } 1721 1722 /** 1723 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1724 */ 1725 public List<CodeType> getBase() { 1726 if (this.base == null) 1727 this.base = new ArrayList<CodeType>(); 1728 return this.base; 1729 } 1730 1731 /** 1732 * @return Returns a reference to <code>this</code> for easy method chaining 1733 */ 1734 public SearchParameter setBase(List<CodeType> theBase) { 1735 this.base = theBase; 1736 return this; 1737 } 1738 1739 public boolean hasBase() { 1740 if (this.base == null) 1741 return false; 1742 for (CodeType item : this.base) 1743 if (!item.isEmpty()) 1744 return true; 1745 return false; 1746 } 1747 1748 /** 1749 * @return {@link #base} (The base resource type(s) that this search parameter can be used against.) 1750 */ 1751 public CodeType addBaseElement() {//2 1752 CodeType t = new CodeType(); 1753 if (this.base == null) 1754 this.base = new ArrayList<CodeType>(); 1755 this.base.add(t); 1756 return t; 1757 } 1758 1759 /** 1760 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1761 */ 1762 public SearchParameter addBase(String value) { //1 1763 CodeType t = new CodeType(); 1764 t.setValue(value); 1765 if (this.base == null) 1766 this.base = new ArrayList<CodeType>(); 1767 this.base.add(t); 1768 return this; 1769 } 1770 1771 /** 1772 * @param value {@link #base} (The base resource type(s) that this search parameter can be used against.) 1773 */ 1774 public boolean hasBase(String value) { 1775 if (this.base == null) 1776 return false; 1777 for (CodeType v : this.base) 1778 if (v.getValue().equals(value)) // code 1779 return true; 1780 return false; 1781 } 1782 1783 /** 1784 * @return {@link #type} (The type of value that a search parameter may contain, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1785 */ 1786 public Enumeration<SearchParamType> getTypeElement() { 1787 if (this.type == null) 1788 if (Configuration.errorOnAutoCreate()) 1789 throw new Error("Attempt to auto-create SearchParameter.type"); 1790 else if (Configuration.doAutoCreate()) 1791 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); // bb 1792 return this.type; 1793 } 1794 1795 public boolean hasTypeElement() { 1796 return this.type != null && !this.type.isEmpty(); 1797 } 1798 1799 public boolean hasType() { 1800 return this.type != null && !this.type.isEmpty(); 1801 } 1802 1803 /** 1804 * @param value {@link #type} (The type of value that a search parameter may contain, and how the content is interpreted.). This is the underlying object with id, value and extensions. The accessor "getType" gives direct access to the value 1805 */ 1806 public SearchParameter setTypeElement(Enumeration<SearchParamType> value) { 1807 this.type = value; 1808 return this; 1809 } 1810 1811 /** 1812 * @return The type of value that a search parameter may contain, and how the content is interpreted. 1813 */ 1814 public SearchParamType getType() { 1815 return this.type == null ? null : this.type.getValue(); 1816 } 1817 1818 /** 1819 * @param value The type of value that a search parameter may contain, and how the content is interpreted. 1820 */ 1821 public SearchParameter setType(SearchParamType value) { 1822 if (this.type == null) 1823 this.type = new Enumeration<SearchParamType>(new SearchParamTypeEnumFactory()); 1824 this.type.setValue(value); 1825 return this; 1826 } 1827 1828 /** 1829 * @return {@link #expression} (A FHIRPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 1830 */ 1831 public StringType getExpressionElement() { 1832 if (this.expression == null) 1833 if (Configuration.errorOnAutoCreate()) 1834 throw new Error("Attempt to auto-create SearchParameter.expression"); 1835 else if (Configuration.doAutoCreate()) 1836 this.expression = new StringType(); // bb 1837 return this.expression; 1838 } 1839 1840 public boolean hasExpressionElement() { 1841 return this.expression != null && !this.expression.isEmpty(); 1842 } 1843 1844 public boolean hasExpression() { 1845 return this.expression != null && !this.expression.isEmpty(); 1846 } 1847 1848 /** 1849 * @param value {@link #expression} (A FHIRPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getExpression" gives direct access to the value 1850 */ 1851 public SearchParameter setExpressionElement(StringType value) { 1852 this.expression = value; 1853 return this; 1854 } 1855 1856 /** 1857 * @return A FHIRPath expression that returns a set of elements for the search parameter. 1858 */ 1859 public String getExpression() { 1860 return this.expression == null ? null : this.expression.getValue(); 1861 } 1862 1863 /** 1864 * @param value A FHIRPath expression that returns a set of elements for the search parameter. 1865 */ 1866 public SearchParameter setExpression(String value) { 1867 if (Utilities.noString(value)) 1868 this.expression = null; 1869 else { 1870 if (this.expression == null) 1871 this.expression = new StringType(); 1872 this.expression.setValue(value); 1873 } 1874 return this; 1875 } 1876 1877 /** 1878 * @return {@link #xpath} (An XPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value 1879 */ 1880 public StringType getXpathElement() { 1881 if (this.xpath == null) 1882 if (Configuration.errorOnAutoCreate()) 1883 throw new Error("Attempt to auto-create SearchParameter.xpath"); 1884 else if (Configuration.doAutoCreate()) 1885 this.xpath = new StringType(); // bb 1886 return this.xpath; 1887 } 1888 1889 public boolean hasXpathElement() { 1890 return this.xpath != null && !this.xpath.isEmpty(); 1891 } 1892 1893 public boolean hasXpath() { 1894 return this.xpath != null && !this.xpath.isEmpty(); 1895 } 1896 1897 /** 1898 * @param value {@link #xpath} (An XPath expression that returns a set of elements for the search parameter.). This is the underlying object with id, value and extensions. The accessor "getXpath" gives direct access to the value 1899 */ 1900 public SearchParameter setXpathElement(StringType value) { 1901 this.xpath = value; 1902 return this; 1903 } 1904 1905 /** 1906 * @return An XPath expression that returns a set of elements for the search parameter. 1907 */ 1908 public String getXpath() { 1909 return this.xpath == null ? null : this.xpath.getValue(); 1910 } 1911 1912 /** 1913 * @param value An XPath expression that returns a set of elements for the search parameter. 1914 */ 1915 public SearchParameter setXpath(String value) { 1916 if (Utilities.noString(value)) 1917 this.xpath = null; 1918 else { 1919 if (this.xpath == null) 1920 this.xpath = new StringType(); 1921 this.xpath.setValue(value); 1922 } 1923 return this; 1924 } 1925 1926 /** 1927 * @return {@link #xpathUsage} (How the search parameter relates to the set of elements returned by evaluating the xpath query.). This is the underlying object with id, value and extensions. The accessor "getXpathUsage" gives direct access to the value 1928 */ 1929 public Enumeration<XPathUsageType> getXpathUsageElement() { 1930 if (this.xpathUsage == null) 1931 if (Configuration.errorOnAutoCreate()) 1932 throw new Error("Attempt to auto-create SearchParameter.xpathUsage"); 1933 else if (Configuration.doAutoCreate()) 1934 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); // bb 1935 return this.xpathUsage; 1936 } 1937 1938 public boolean hasXpathUsageElement() { 1939 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1940 } 1941 1942 public boolean hasXpathUsage() { 1943 return this.xpathUsage != null && !this.xpathUsage.isEmpty(); 1944 } 1945 1946 /** 1947 * @param value {@link #xpathUsage} (How the search parameter relates to the set of elements returned by evaluating the xpath query.). This is the underlying object with id, value and extensions. The accessor "getXpathUsage" gives direct access to the value 1948 */ 1949 public SearchParameter setXpathUsageElement(Enumeration<XPathUsageType> value) { 1950 this.xpathUsage = value; 1951 return this; 1952 } 1953 1954 /** 1955 * @return How the search parameter relates to the set of elements returned by evaluating the xpath query. 1956 */ 1957 public XPathUsageType getXpathUsage() { 1958 return this.xpathUsage == null ? null : this.xpathUsage.getValue(); 1959 } 1960 1961 /** 1962 * @param value How the search parameter relates to the set of elements returned by evaluating the xpath query. 1963 */ 1964 public SearchParameter setXpathUsage(XPathUsageType value) { 1965 if (value == null) 1966 this.xpathUsage = null; 1967 else { 1968 if (this.xpathUsage == null) 1969 this.xpathUsage = new Enumeration<XPathUsageType>(new XPathUsageTypeEnumFactory()); 1970 this.xpathUsage.setValue(value); 1971 } 1972 return this; 1973 } 1974 1975 /** 1976 * @return {@link #target} (Types of resource (if a resource is referenced).) 1977 */ 1978 public List<CodeType> getTarget() { 1979 if (this.target == null) 1980 this.target = new ArrayList<CodeType>(); 1981 return this.target; 1982 } 1983 1984 /** 1985 * @return Returns a reference to <code>this</code> for easy method chaining 1986 */ 1987 public SearchParameter setTarget(List<CodeType> theTarget) { 1988 this.target = theTarget; 1989 return this; 1990 } 1991 1992 public boolean hasTarget() { 1993 if (this.target == null) 1994 return false; 1995 for (CodeType item : this.target) 1996 if (!item.isEmpty()) 1997 return true; 1998 return false; 1999 } 2000 2001 /** 2002 * @return {@link #target} (Types of resource (if a resource is referenced).) 2003 */ 2004 public CodeType addTargetElement() {//2 2005 CodeType t = new CodeType(); 2006 if (this.target == null) 2007 this.target = new ArrayList<CodeType>(); 2008 this.target.add(t); 2009 return t; 2010 } 2011 2012 /** 2013 * @param value {@link #target} (Types of resource (if a resource is referenced).) 2014 */ 2015 public SearchParameter addTarget(String value) { //1 2016 CodeType t = new CodeType(); 2017 t.setValue(value); 2018 if (this.target == null) 2019 this.target = new ArrayList<CodeType>(); 2020 this.target.add(t); 2021 return this; 2022 } 2023 2024 /** 2025 * @param value {@link #target} (Types of resource (if a resource is referenced).) 2026 */ 2027 public boolean hasTarget(String value) { 2028 if (this.target == null) 2029 return false; 2030 for (CodeType v : this.target) 2031 if (v.getValue().equals(value)) // code 2032 return true; 2033 return false; 2034 } 2035 2036 /** 2037 * @return {@link #multipleOr} (Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.). This is the underlying object with id, value and extensions. The accessor "getMultipleOr" gives direct access to the value 2038 */ 2039 public BooleanType getMultipleOrElement() { 2040 if (this.multipleOr == null) 2041 if (Configuration.errorOnAutoCreate()) 2042 throw new Error("Attempt to auto-create SearchParameter.multipleOr"); 2043 else if (Configuration.doAutoCreate()) 2044 this.multipleOr = new BooleanType(); // bb 2045 return this.multipleOr; 2046 } 2047 2048 public boolean hasMultipleOrElement() { 2049 return this.multipleOr != null && !this.multipleOr.isEmpty(); 2050 } 2051 2052 public boolean hasMultipleOr() { 2053 return this.multipleOr != null && !this.multipleOr.isEmpty(); 2054 } 2055 2056 /** 2057 * @param value {@link #multipleOr} (Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.). This is the underlying object with id, value and extensions. The accessor "getMultipleOr" gives direct access to the value 2058 */ 2059 public SearchParameter setMultipleOrElement(BooleanType value) { 2060 this.multipleOr = value; 2061 return this; 2062 } 2063 2064 /** 2065 * @return Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 2066 */ 2067 public boolean getMultipleOr() { 2068 return this.multipleOr == null || this.multipleOr.isEmpty() ? false : this.multipleOr.getValue(); 2069 } 2070 2071 /** 2072 * @param value Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match. 2073 */ 2074 public SearchParameter setMultipleOr(boolean value) { 2075 if (this.multipleOr == null) 2076 this.multipleOr = new BooleanType(); 2077 this.multipleOr.setValue(value); 2078 return this; 2079 } 2080 2081 /** 2082 * @return {@link #multipleAnd} (Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.). This is the underlying object with id, value and extensions. The accessor "getMultipleAnd" gives direct access to the value 2083 */ 2084 public BooleanType getMultipleAndElement() { 2085 if (this.multipleAnd == null) 2086 if (Configuration.errorOnAutoCreate()) 2087 throw new Error("Attempt to auto-create SearchParameter.multipleAnd"); 2088 else if (Configuration.doAutoCreate()) 2089 this.multipleAnd = new BooleanType(); // bb 2090 return this.multipleAnd; 2091 } 2092 2093 public boolean hasMultipleAndElement() { 2094 return this.multipleAnd != null && !this.multipleAnd.isEmpty(); 2095 } 2096 2097 public boolean hasMultipleAnd() { 2098 return this.multipleAnd != null && !this.multipleAnd.isEmpty(); 2099 } 2100 2101 /** 2102 * @param value {@link #multipleAnd} (Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.). This is the underlying object with id, value and extensions. The accessor "getMultipleAnd" gives direct access to the value 2103 */ 2104 public SearchParameter setMultipleAndElement(BooleanType value) { 2105 this.multipleAnd = value; 2106 return this; 2107 } 2108 2109 /** 2110 * @return Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 2111 */ 2112 public boolean getMultipleAnd() { 2113 return this.multipleAnd == null || this.multipleAnd.isEmpty() ? false : this.multipleAnd.getValue(); 2114 } 2115 2116 /** 2117 * @param value Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match. 2118 */ 2119 public SearchParameter setMultipleAnd(boolean value) { 2120 if (this.multipleAnd == null) 2121 this.multipleAnd = new BooleanType(); 2122 this.multipleAnd.setValue(value); 2123 return this; 2124 } 2125 2126 /** 2127 * @return {@link #comparator} (Comparators supported for the search parameter.) 2128 */ 2129 public List<Enumeration<SearchComparator>> getComparator() { 2130 if (this.comparator == null) 2131 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2132 return this.comparator; 2133 } 2134 2135 /** 2136 * @return Returns a reference to <code>this</code> for easy method chaining 2137 */ 2138 public SearchParameter setComparator(List<Enumeration<SearchComparator>> theComparator) { 2139 this.comparator = theComparator; 2140 return this; 2141 } 2142 2143 public boolean hasComparator() { 2144 if (this.comparator == null) 2145 return false; 2146 for (Enumeration<SearchComparator> item : this.comparator) 2147 if (!item.isEmpty()) 2148 return true; 2149 return false; 2150 } 2151 2152 /** 2153 * @return {@link #comparator} (Comparators supported for the search parameter.) 2154 */ 2155 public Enumeration<SearchComparator> addComparatorElement() {//2 2156 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 2157 if (this.comparator == null) 2158 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2159 this.comparator.add(t); 2160 return t; 2161 } 2162 2163 /** 2164 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2165 */ 2166 public SearchParameter addComparator(SearchComparator value) { //1 2167 Enumeration<SearchComparator> t = new Enumeration<SearchComparator>(new SearchComparatorEnumFactory()); 2168 t.setValue(value); 2169 if (this.comparator == null) 2170 this.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2171 this.comparator.add(t); 2172 return this; 2173 } 2174 2175 /** 2176 * @param value {@link #comparator} (Comparators supported for the search parameter.) 2177 */ 2178 public boolean hasComparator(SearchComparator value) { 2179 if (this.comparator == null) 2180 return false; 2181 for (Enumeration<SearchComparator> v : this.comparator) 2182 if (v.getValue().equals(value)) // code 2183 return true; 2184 return false; 2185 } 2186 2187 /** 2188 * @return {@link #modifier} (A modifier supported for the search parameter.) 2189 */ 2190 public List<Enumeration<SearchModifierCode>> getModifier() { 2191 if (this.modifier == null) 2192 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2193 return this.modifier; 2194 } 2195 2196 /** 2197 * @return Returns a reference to <code>this</code> for easy method chaining 2198 */ 2199 public SearchParameter setModifier(List<Enumeration<SearchModifierCode>> theModifier) { 2200 this.modifier = theModifier; 2201 return this; 2202 } 2203 2204 public boolean hasModifier() { 2205 if (this.modifier == null) 2206 return false; 2207 for (Enumeration<SearchModifierCode> item : this.modifier) 2208 if (!item.isEmpty()) 2209 return true; 2210 return false; 2211 } 2212 2213 /** 2214 * @return {@link #modifier} (A modifier supported for the search parameter.) 2215 */ 2216 public Enumeration<SearchModifierCode> addModifierElement() {//2 2217 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2218 if (this.modifier == null) 2219 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2220 this.modifier.add(t); 2221 return t; 2222 } 2223 2224 /** 2225 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2226 */ 2227 public SearchParameter addModifier(SearchModifierCode value) { //1 2228 Enumeration<SearchModifierCode> t = new Enumeration<SearchModifierCode>(new SearchModifierCodeEnumFactory()); 2229 t.setValue(value); 2230 if (this.modifier == null) 2231 this.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2232 this.modifier.add(t); 2233 return this; 2234 } 2235 2236 /** 2237 * @param value {@link #modifier} (A modifier supported for the search parameter.) 2238 */ 2239 public boolean hasModifier(SearchModifierCode value) { 2240 if (this.modifier == null) 2241 return false; 2242 for (Enumeration<SearchModifierCode> v : this.modifier) 2243 if (v.getValue().equals(value)) // code 2244 return true; 2245 return false; 2246 } 2247 2248 /** 2249 * @return {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2250 */ 2251 public List<StringType> getChain() { 2252 if (this.chain == null) 2253 this.chain = new ArrayList<StringType>(); 2254 return this.chain; 2255 } 2256 2257 /** 2258 * @return Returns a reference to <code>this</code> for easy method chaining 2259 */ 2260 public SearchParameter setChain(List<StringType> theChain) { 2261 this.chain = theChain; 2262 return this; 2263 } 2264 2265 public boolean hasChain() { 2266 if (this.chain == null) 2267 return false; 2268 for (StringType item : this.chain) 2269 if (!item.isEmpty()) 2270 return true; 2271 return false; 2272 } 2273 2274 /** 2275 * @return {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2276 */ 2277 public StringType addChainElement() {//2 2278 StringType t = new StringType(); 2279 if (this.chain == null) 2280 this.chain = new ArrayList<StringType>(); 2281 this.chain.add(t); 2282 return t; 2283 } 2284 2285 /** 2286 * @param value {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2287 */ 2288 public SearchParameter addChain(String value) { //1 2289 StringType t = new StringType(); 2290 t.setValue(value); 2291 if (this.chain == null) 2292 this.chain = new ArrayList<StringType>(); 2293 this.chain.add(t); 2294 return this; 2295 } 2296 2297 /** 2298 * @param value {@link #chain} (Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.) 2299 */ 2300 public boolean hasChain(String value) { 2301 if (this.chain == null) 2302 return false; 2303 for (StringType v : this.chain) 2304 if (v.getValue().equals(value)) // string 2305 return true; 2306 return false; 2307 } 2308 2309 /** 2310 * @return {@link #component} (Used to define the parts of a composite search parameter.) 2311 */ 2312 public List<SearchParameterComponentComponent> getComponent() { 2313 if (this.component == null) 2314 this.component = new ArrayList<SearchParameterComponentComponent>(); 2315 return this.component; 2316 } 2317 2318 /** 2319 * @return Returns a reference to <code>this</code> for easy method chaining 2320 */ 2321 public SearchParameter setComponent(List<SearchParameterComponentComponent> theComponent) { 2322 this.component = theComponent; 2323 return this; 2324 } 2325 2326 public boolean hasComponent() { 2327 if (this.component == null) 2328 return false; 2329 for (SearchParameterComponentComponent item : this.component) 2330 if (!item.isEmpty()) 2331 return true; 2332 return false; 2333 } 2334 2335 public SearchParameterComponentComponent addComponent() { //3 2336 SearchParameterComponentComponent t = new SearchParameterComponentComponent(); 2337 if (this.component == null) 2338 this.component = new ArrayList<SearchParameterComponentComponent>(); 2339 this.component.add(t); 2340 return t; 2341 } 2342 2343 public SearchParameter addComponent(SearchParameterComponentComponent t) { //3 2344 if (t == null) 2345 return this; 2346 if (this.component == null) 2347 this.component = new ArrayList<SearchParameterComponentComponent>(); 2348 this.component.add(t); 2349 return this; 2350 } 2351 2352 /** 2353 * @return The first repetition of repeating field {@link #component}, creating it if it does not already exist 2354 */ 2355 public SearchParameterComponentComponent getComponentFirstRep() { 2356 if (getComponent().isEmpty()) { 2357 addComponent(); 2358 } 2359 return getComponent().get(0); 2360 } 2361 2362 protected void listChildren(List<Property> children) { 2363 super.listChildren(children); 2364 children.add(new Property("url", "uri", "An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.", 0, 1, url)); 2365 children.add(new Property("version", "string", "The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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)); 2366 children.add(new Property("name", "string", "A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name)); 2367 children.add(new Property("derivedFrom", "canonical(SearchParameter)", "Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.", 0, 1, derivedFrom)); 2368 children.add(new Property("status", "code", "The status of this search parameter. Enables tracking the life-cycle of the content.", 0, 1, status)); 2369 children.add(new Property("experimental", "boolean", "A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental)); 2370 children.add(new Property("date", "dateTime", "The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes.", 0, 1, date)); 2371 children.add(new Property("publisher", "string", "The name of the organization or individual that published the search parameter.", 0, 1, publisher)); 2372 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)); 2373 children.add(new Property("description", "markdown", "And how it used.", 0, 1, description)); 2374 children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances.", 0, java.lang.Integer.MAX_VALUE, useContext)); 2375 children.add(new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the search parameter is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction)); 2376 children.add(new Property("purpose", "markdown", "Explanation of why this search parameter is needed and why it has been designed as it has.", 0, 1, purpose)); 2377 children.add(new Property("code", "code", "The code used in the URL or the parameter name in a parameters resource for this search parameter.", 0, 1, code)); 2378 children.add(new Property("base", "code", "The base resource type(s) that this search parameter can be used against.", 0, java.lang.Integer.MAX_VALUE, base)); 2379 children.add(new Property("type", "code", "The type of value that a search parameter may contain, and how the content is interpreted.", 0, 1, type)); 2380 children.add(new Property("expression", "string", "A FHIRPath expression that returns a set of elements for the search parameter.", 0, 1, expression)); 2381 children.add(new Property("xpath", "string", "An XPath expression that returns a set of elements for the search parameter.", 0, 1, xpath)); 2382 children.add(new Property("xpathUsage", "code", "How the search parameter relates to the set of elements returned by evaluating the xpath query.", 0, 1, xpathUsage)); 2383 children.add(new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target)); 2384 children.add(new Property("multipleOr", "boolean", "Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.", 0, 1, multipleOr)); 2385 children.add(new Property("multipleAnd", "boolean", "Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.", 0, 1, multipleAnd)); 2386 children.add(new Property("comparator", "code", "Comparators supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, comparator)); 2387 children.add(new Property("modifier", "code", "A modifier supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, modifier)); 2388 children.add(new Property("chain", "string", "Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.", 0, java.lang.Integer.MAX_VALUE, chain)); 2389 children.add(new Property("component", "", "Used to define the parts of a composite search parameter.", 0, java.lang.Integer.MAX_VALUE, component)); 2390 } 2391 2392 @Override 2393 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2394 switch (_hash) { 2395 case 116079: /*url*/ return new Property("url", "uri", "An absolute URI that is used to identify this search parameter when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers.", 0, 1, url); 2396 case 351608024: /*version*/ return new Property("version", "string", "The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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); 2397 case 3373707: /*name*/ return new Property("name", "string", "A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name); 2398 case 1077922663: /*derivedFrom*/ return new Property("derivedFrom", "canonical(SearchParameter)", "Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter.", 0, 1, derivedFrom); 2399 case -892481550: /*status*/ return new Property("status", "code", "The status of this search parameter. Enables tracking the life-cycle of the content.", 0, 1, status); 2400 case -404562712: /*experimental*/ return new Property("experimental", "boolean", "A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 0, 1, experimental); 2401 case 3076014: /*date*/ return new Property("date", "dateTime", "The date (and optionally time) when the search parameter was published. The date must change 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 search parameter changes.", 0, 1, date); 2402 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the search parameter.", 0, 1, publisher); 2403 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); 2404 case -1724546052: /*description*/ return new Property("description", "markdown", "And how it used.", 0, 1, description); 2405 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 contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate search parameter instances.", 0, java.lang.Integer.MAX_VALUE, useContext); 2406 case -507075711: /*jurisdiction*/ return new Property("jurisdiction", "CodeableConcept", "A legal or geographic region in which the search parameter is intended to be used.", 0, java.lang.Integer.MAX_VALUE, jurisdiction); 2407 case -220463842: /*purpose*/ return new Property("purpose", "markdown", "Explanation of why this search parameter is needed and why it has been designed as it has.", 0, 1, purpose); 2408 case 3059181: /*code*/ return new Property("code", "code", "The code used in the URL or the parameter name in a parameters resource for this search parameter.", 0, 1, code); 2409 case 3016401: /*base*/ return new Property("base", "code", "The base resource type(s) that this search parameter can be used against.", 0, java.lang.Integer.MAX_VALUE, base); 2410 case 3575610: /*type*/ return new Property("type", "code", "The type of value that a search parameter may contain, and how the content is interpreted.", 0, 1, type); 2411 case -1795452264: /*expression*/ return new Property("expression", "string", "A FHIRPath expression that returns a set of elements for the search parameter.", 0, 1, expression); 2412 case 114256029: /*xpath*/ return new Property("xpath", "string", "An XPath expression that returns a set of elements for the search parameter.", 0, 1, xpath); 2413 case 1801322244: /*xpathUsage*/ return new Property("xpathUsage", "code", "How the search parameter relates to the set of elements returned by evaluating the xpath query.", 0, 1, xpathUsage); 2414 case -880905839: /*target*/ return new Property("target", "code", "Types of resource (if a resource is referenced).", 0, java.lang.Integer.MAX_VALUE, target); 2415 case 1265069075: /*multipleOr*/ return new Property("multipleOr", "boolean", "Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match.", 0, 1, multipleOr); 2416 case 562422183: /*multipleAnd*/ return new Property("multipleAnd", "boolean", "Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match.", 0, 1, multipleAnd); 2417 case -844673834: /*comparator*/ return new Property("comparator", "code", "Comparators supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, comparator); 2418 case -615513385: /*modifier*/ return new Property("modifier", "code", "A modifier supported for the search parameter.", 0, java.lang.Integer.MAX_VALUE, modifier); 2419 case 94623425: /*chain*/ return new Property("chain", "string", "Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type.", 0, java.lang.Integer.MAX_VALUE, chain); 2420 case -1399907075: /*component*/ return new Property("component", "", "Used to define the parts of a composite search parameter.", 0, java.lang.Integer.MAX_VALUE, component); 2421 default: return super.getNamedProperty(_hash, _name, _checkValid); 2422 } 2423 2424 } 2425 2426 @Override 2427 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2428 switch (hash) { 2429 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2430 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2431 case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType 2432 case 1077922663: /*derivedFrom*/ return this.derivedFrom == null ? new Base[0] : new Base[] {this.derivedFrom}; // CanonicalType 2433 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 2434 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2435 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2436 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2437 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2438 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2439 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 2440 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 2441 case -220463842: /*purpose*/ return this.purpose == null ? new Base[0] : new Base[] {this.purpose}; // MarkdownType 2442 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeType 2443 case 3016401: /*base*/ return this.base == null ? new Base[0] : this.base.toArray(new Base[this.base.size()]); // CodeType 2444 case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // Enumeration<SearchParamType> 2445 case -1795452264: /*expression*/ return this.expression == null ? new Base[0] : new Base[] {this.expression}; // StringType 2446 case 114256029: /*xpath*/ return this.xpath == null ? new Base[0] : new Base[] {this.xpath}; // StringType 2447 case 1801322244: /*xpathUsage*/ return this.xpathUsage == null ? new Base[0] : new Base[] {this.xpathUsage}; // Enumeration<XPathUsageType> 2448 case -880905839: /*target*/ return this.target == null ? new Base[0] : this.target.toArray(new Base[this.target.size()]); // CodeType 2449 case 1265069075: /*multipleOr*/ return this.multipleOr == null ? new Base[0] : new Base[] {this.multipleOr}; // BooleanType 2450 case 562422183: /*multipleAnd*/ return this.multipleAnd == null ? new Base[0] : new Base[] {this.multipleAnd}; // BooleanType 2451 case -844673834: /*comparator*/ return this.comparator == null ? new Base[0] : this.comparator.toArray(new Base[this.comparator.size()]); // Enumeration<SearchComparator> 2452 case -615513385: /*modifier*/ return this.modifier == null ? new Base[0] : this.modifier.toArray(new Base[this.modifier.size()]); // Enumeration<SearchModifierCode> 2453 case 94623425: /*chain*/ return this.chain == null ? new Base[0] : this.chain.toArray(new Base[this.chain.size()]); // StringType 2454 case -1399907075: /*component*/ return this.component == null ? new Base[0] : this.component.toArray(new Base[this.component.size()]); // SearchParameterComponentComponent 2455 default: return super.getProperty(hash, name, checkValid); 2456 } 2457 2458 } 2459 2460 @Override 2461 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2462 switch (hash) { 2463 case 116079: // url 2464 this.url = castToUri(value); // UriType 2465 return value; 2466 case 351608024: // version 2467 this.version = castToString(value); // StringType 2468 return value; 2469 case 3373707: // name 2470 this.name = castToString(value); // StringType 2471 return value; 2472 case 1077922663: // derivedFrom 2473 this.derivedFrom = castToCanonical(value); // CanonicalType 2474 return value; 2475 case -892481550: // status 2476 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2477 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2478 return value; 2479 case -404562712: // experimental 2480 this.experimental = castToBoolean(value); // BooleanType 2481 return value; 2482 case 3076014: // date 2483 this.date = castToDateTime(value); // DateTimeType 2484 return value; 2485 case 1447404028: // publisher 2486 this.publisher = castToString(value); // StringType 2487 return value; 2488 case 951526432: // contact 2489 this.getContact().add(castToContactDetail(value)); // ContactDetail 2490 return value; 2491 case -1724546052: // description 2492 this.description = castToMarkdown(value); // MarkdownType 2493 return value; 2494 case -669707736: // useContext 2495 this.getUseContext().add(castToUsageContext(value)); // UsageContext 2496 return value; 2497 case -507075711: // jurisdiction 2498 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 2499 return value; 2500 case -220463842: // purpose 2501 this.purpose = castToMarkdown(value); // MarkdownType 2502 return value; 2503 case 3059181: // code 2504 this.code = castToCode(value); // CodeType 2505 return value; 2506 case 3016401: // base 2507 this.getBase().add(castToCode(value)); // CodeType 2508 return value; 2509 case 3575610: // type 2510 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2511 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2512 return value; 2513 case -1795452264: // expression 2514 this.expression = castToString(value); // StringType 2515 return value; 2516 case 114256029: // xpath 2517 this.xpath = castToString(value); // StringType 2518 return value; 2519 case 1801322244: // xpathUsage 2520 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2521 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2522 return value; 2523 case -880905839: // target 2524 this.getTarget().add(castToCode(value)); // CodeType 2525 return value; 2526 case 1265069075: // multipleOr 2527 this.multipleOr = castToBoolean(value); // BooleanType 2528 return value; 2529 case 562422183: // multipleAnd 2530 this.multipleAnd = castToBoolean(value); // BooleanType 2531 return value; 2532 case -844673834: // comparator 2533 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2534 this.getComparator().add((Enumeration) value); // Enumeration<SearchComparator> 2535 return value; 2536 case -615513385: // modifier 2537 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2538 this.getModifier().add((Enumeration) value); // Enumeration<SearchModifierCode> 2539 return value; 2540 case 94623425: // chain 2541 this.getChain().add(castToString(value)); // StringType 2542 return value; 2543 case -1399907075: // component 2544 this.getComponent().add((SearchParameterComponentComponent) value); // SearchParameterComponentComponent 2545 return value; 2546 default: return super.setProperty(hash, name, value); 2547 } 2548 2549 } 2550 2551 @Override 2552 public Base setProperty(String name, Base value) throws FHIRException { 2553 if (name.equals("url")) { 2554 this.url = castToUri(value); // UriType 2555 } else if (name.equals("version")) { 2556 this.version = castToString(value); // StringType 2557 } else if (name.equals("name")) { 2558 this.name = castToString(value); // StringType 2559 } else if (name.equals("derivedFrom")) { 2560 this.derivedFrom = castToCanonical(value); // CanonicalType 2561 } else if (name.equals("status")) { 2562 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 2563 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2564 } else if (name.equals("experimental")) { 2565 this.experimental = castToBoolean(value); // BooleanType 2566 } else if (name.equals("date")) { 2567 this.date = castToDateTime(value); // DateTimeType 2568 } else if (name.equals("publisher")) { 2569 this.publisher = castToString(value); // StringType 2570 } else if (name.equals("contact")) { 2571 this.getContact().add(castToContactDetail(value)); 2572 } else if (name.equals("description")) { 2573 this.description = castToMarkdown(value); // MarkdownType 2574 } else if (name.equals("useContext")) { 2575 this.getUseContext().add(castToUsageContext(value)); 2576 } else if (name.equals("jurisdiction")) { 2577 this.getJurisdiction().add(castToCodeableConcept(value)); 2578 } else if (name.equals("purpose")) { 2579 this.purpose = castToMarkdown(value); // MarkdownType 2580 } else if (name.equals("code")) { 2581 this.code = castToCode(value); // CodeType 2582 } else if (name.equals("base")) { 2583 this.getBase().add(castToCode(value)); 2584 } else if (name.equals("type")) { 2585 value = new SearchParamTypeEnumFactory().fromType(castToCode(value)); 2586 this.type = (Enumeration) value; // Enumeration<SearchParamType> 2587 } else if (name.equals("expression")) { 2588 this.expression = castToString(value); // StringType 2589 } else if (name.equals("xpath")) { 2590 this.xpath = castToString(value); // StringType 2591 } else if (name.equals("xpathUsage")) { 2592 value = new XPathUsageTypeEnumFactory().fromType(castToCode(value)); 2593 this.xpathUsage = (Enumeration) value; // Enumeration<XPathUsageType> 2594 } else if (name.equals("target")) { 2595 this.getTarget().add(castToCode(value)); 2596 } else if (name.equals("multipleOr")) { 2597 this.multipleOr = castToBoolean(value); // BooleanType 2598 } else if (name.equals("multipleAnd")) { 2599 this.multipleAnd = castToBoolean(value); // BooleanType 2600 } else if (name.equals("comparator")) { 2601 value = new SearchComparatorEnumFactory().fromType(castToCode(value)); 2602 this.getComparator().add((Enumeration) value); 2603 } else if (name.equals("modifier")) { 2604 value = new SearchModifierCodeEnumFactory().fromType(castToCode(value)); 2605 this.getModifier().add((Enumeration) value); 2606 } else if (name.equals("chain")) { 2607 this.getChain().add(castToString(value)); 2608 } else if (name.equals("component")) { 2609 this.getComponent().add((SearchParameterComponentComponent) value); 2610 } else 2611 return super.setProperty(name, value); 2612 return value; 2613 } 2614 2615 @Override 2616 public Base makeProperty(int hash, String name) throws FHIRException { 2617 switch (hash) { 2618 case 116079: return getUrlElement(); 2619 case 351608024: return getVersionElement(); 2620 case 3373707: return getNameElement(); 2621 case 1077922663: return getDerivedFromElement(); 2622 case -892481550: return getStatusElement(); 2623 case -404562712: return getExperimentalElement(); 2624 case 3076014: return getDateElement(); 2625 case 1447404028: return getPublisherElement(); 2626 case 951526432: return addContact(); 2627 case -1724546052: return getDescriptionElement(); 2628 case -669707736: return addUseContext(); 2629 case -507075711: return addJurisdiction(); 2630 case -220463842: return getPurposeElement(); 2631 case 3059181: return getCodeElement(); 2632 case 3016401: return addBaseElement(); 2633 case 3575610: return getTypeElement(); 2634 case -1795452264: return getExpressionElement(); 2635 case 114256029: return getXpathElement(); 2636 case 1801322244: return getXpathUsageElement(); 2637 case -880905839: return addTargetElement(); 2638 case 1265069075: return getMultipleOrElement(); 2639 case 562422183: return getMultipleAndElement(); 2640 case -844673834: return addComparatorElement(); 2641 case -615513385: return addModifierElement(); 2642 case 94623425: return addChainElement(); 2643 case -1399907075: return addComponent(); 2644 default: return super.makeProperty(hash, name); 2645 } 2646 2647 } 2648 2649 @Override 2650 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2651 switch (hash) { 2652 case 116079: /*url*/ return new String[] {"uri"}; 2653 case 351608024: /*version*/ return new String[] {"string"}; 2654 case 3373707: /*name*/ return new String[] {"string"}; 2655 case 1077922663: /*derivedFrom*/ return new String[] {"canonical"}; 2656 case -892481550: /*status*/ return new String[] {"code"}; 2657 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2658 case 3076014: /*date*/ return new String[] {"dateTime"}; 2659 case 1447404028: /*publisher*/ return new String[] {"string"}; 2660 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2661 case -1724546052: /*description*/ return new String[] {"markdown"}; 2662 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2663 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2664 case -220463842: /*purpose*/ return new String[] {"markdown"}; 2665 case 3059181: /*code*/ return new String[] {"code"}; 2666 case 3016401: /*base*/ return new String[] {"code"}; 2667 case 3575610: /*type*/ return new String[] {"code"}; 2668 case -1795452264: /*expression*/ return new String[] {"string"}; 2669 case 114256029: /*xpath*/ return new String[] {"string"}; 2670 case 1801322244: /*xpathUsage*/ return new String[] {"code"}; 2671 case -880905839: /*target*/ return new String[] {"code"}; 2672 case 1265069075: /*multipleOr*/ return new String[] {"boolean"}; 2673 case 562422183: /*multipleAnd*/ return new String[] {"boolean"}; 2674 case -844673834: /*comparator*/ return new String[] {"code"}; 2675 case -615513385: /*modifier*/ return new String[] {"code"}; 2676 case 94623425: /*chain*/ return new String[] {"string"}; 2677 case -1399907075: /*component*/ return new String[] {}; 2678 default: return super.getTypesForProperty(hash, name); 2679 } 2680 2681 } 2682 2683 @Override 2684 public Base addChild(String name) throws FHIRException { 2685 if (name.equals("url")) { 2686 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.url"); 2687 } 2688 else if (name.equals("version")) { 2689 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.version"); 2690 } 2691 else if (name.equals("name")) { 2692 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.name"); 2693 } 2694 else if (name.equals("derivedFrom")) { 2695 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.derivedFrom"); 2696 } 2697 else if (name.equals("status")) { 2698 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.status"); 2699 } 2700 else if (name.equals("experimental")) { 2701 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.experimental"); 2702 } 2703 else if (name.equals("date")) { 2704 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.date"); 2705 } 2706 else if (name.equals("publisher")) { 2707 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.publisher"); 2708 } 2709 else if (name.equals("contact")) { 2710 return addContact(); 2711 } 2712 else if (name.equals("description")) { 2713 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.description"); 2714 } 2715 else if (name.equals("useContext")) { 2716 return addUseContext(); 2717 } 2718 else if (name.equals("jurisdiction")) { 2719 return addJurisdiction(); 2720 } 2721 else if (name.equals("purpose")) { 2722 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.purpose"); 2723 } 2724 else if (name.equals("code")) { 2725 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.code"); 2726 } 2727 else if (name.equals("base")) { 2728 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.base"); 2729 } 2730 else if (name.equals("type")) { 2731 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.type"); 2732 } 2733 else if (name.equals("expression")) { 2734 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.expression"); 2735 } 2736 else if (name.equals("xpath")) { 2737 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpath"); 2738 } 2739 else if (name.equals("xpathUsage")) { 2740 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.xpathUsage"); 2741 } 2742 else if (name.equals("target")) { 2743 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.target"); 2744 } 2745 else if (name.equals("multipleOr")) { 2746 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.multipleOr"); 2747 } 2748 else if (name.equals("multipleAnd")) { 2749 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.multipleAnd"); 2750 } 2751 else if (name.equals("comparator")) { 2752 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.comparator"); 2753 } 2754 else if (name.equals("modifier")) { 2755 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.modifier"); 2756 } 2757 else if (name.equals("chain")) { 2758 throw new FHIRException("Cannot call addChild on a primitive type SearchParameter.chain"); 2759 } 2760 else if (name.equals("component")) { 2761 return addComponent(); 2762 } 2763 else 2764 return super.addChild(name); 2765 } 2766 2767 public String fhirType() { 2768 return "SearchParameter"; 2769 2770 } 2771 2772 public SearchParameter copy() { 2773 SearchParameter dst = new SearchParameter(); 2774 copyValues(dst); 2775 return dst; 2776 } 2777 2778 public void copyValues(SearchParameter dst) { 2779 super.copyValues(dst); 2780 dst.url = url == null ? null : url.copy(); 2781 dst.version = version == null ? null : version.copy(); 2782 dst.name = name == null ? null : name.copy(); 2783 dst.derivedFrom = derivedFrom == null ? null : derivedFrom.copy(); 2784 dst.status = status == null ? null : status.copy(); 2785 dst.experimental = experimental == null ? null : experimental.copy(); 2786 dst.date = date == null ? null : date.copy(); 2787 dst.publisher = publisher == null ? null : publisher.copy(); 2788 if (contact != null) { 2789 dst.contact = new ArrayList<ContactDetail>(); 2790 for (ContactDetail i : contact) 2791 dst.contact.add(i.copy()); 2792 }; 2793 dst.description = description == null ? null : description.copy(); 2794 if (useContext != null) { 2795 dst.useContext = new ArrayList<UsageContext>(); 2796 for (UsageContext i : useContext) 2797 dst.useContext.add(i.copy()); 2798 }; 2799 if (jurisdiction != null) { 2800 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2801 for (CodeableConcept i : jurisdiction) 2802 dst.jurisdiction.add(i.copy()); 2803 }; 2804 dst.purpose = purpose == null ? null : purpose.copy(); 2805 dst.code = code == null ? null : code.copy(); 2806 if (base != null) { 2807 dst.base = new ArrayList<CodeType>(); 2808 for (CodeType i : base) 2809 dst.base.add(i.copy()); 2810 }; 2811 dst.type = type == null ? null : type.copy(); 2812 dst.expression = expression == null ? null : expression.copy(); 2813 dst.xpath = xpath == null ? null : xpath.copy(); 2814 dst.xpathUsage = xpathUsage == null ? null : xpathUsage.copy(); 2815 if (target != null) { 2816 dst.target = new ArrayList<CodeType>(); 2817 for (CodeType i : target) 2818 dst.target.add(i.copy()); 2819 }; 2820 dst.multipleOr = multipleOr == null ? null : multipleOr.copy(); 2821 dst.multipleAnd = multipleAnd == null ? null : multipleAnd.copy(); 2822 if (comparator != null) { 2823 dst.comparator = new ArrayList<Enumeration<SearchComparator>>(); 2824 for (Enumeration<SearchComparator> i : comparator) 2825 dst.comparator.add(i.copy()); 2826 }; 2827 if (modifier != null) { 2828 dst.modifier = new ArrayList<Enumeration<SearchModifierCode>>(); 2829 for (Enumeration<SearchModifierCode> i : modifier) 2830 dst.modifier.add(i.copy()); 2831 }; 2832 if (chain != null) { 2833 dst.chain = new ArrayList<StringType>(); 2834 for (StringType i : chain) 2835 dst.chain.add(i.copy()); 2836 }; 2837 if (component != null) { 2838 dst.component = new ArrayList<SearchParameterComponentComponent>(); 2839 for (SearchParameterComponentComponent i : component) 2840 dst.component.add(i.copy()); 2841 }; 2842 } 2843 2844 protected SearchParameter typedCopy() { 2845 return copy(); 2846 } 2847 2848 @Override 2849 public boolean equalsDeep(Base other_) { 2850 if (!super.equalsDeep(other_)) 2851 return false; 2852 if (!(other_ instanceof SearchParameter)) 2853 return false; 2854 SearchParameter o = (SearchParameter) other_; 2855 return compareDeep(derivedFrom, o.derivedFrom, true) && compareDeep(purpose, o.purpose, true) && compareDeep(code, o.code, true) 2856 && compareDeep(base, o.base, true) && compareDeep(type, o.type, true) && compareDeep(expression, o.expression, true) 2857 && compareDeep(xpath, o.xpath, true) && compareDeep(xpathUsage, o.xpathUsage, true) && compareDeep(target, o.target, true) 2858 && compareDeep(multipleOr, o.multipleOr, true) && compareDeep(multipleAnd, o.multipleAnd, true) 2859 && compareDeep(comparator, o.comparator, true) && compareDeep(modifier, o.modifier, true) && compareDeep(chain, o.chain, true) 2860 && compareDeep(component, o.component, true); 2861 } 2862 2863 @Override 2864 public boolean equalsShallow(Base other_) { 2865 if (!super.equalsShallow(other_)) 2866 return false; 2867 if (!(other_ instanceof SearchParameter)) 2868 return false; 2869 SearchParameter o = (SearchParameter) other_; 2870 return compareValues(purpose, o.purpose, true) && compareValues(code, o.code, true) && compareValues(base, o.base, true) 2871 && compareValues(type, o.type, true) && compareValues(expression, o.expression, true) && compareValues(xpath, o.xpath, true) 2872 && compareValues(xpathUsage, o.xpathUsage, true) && compareValues(target, o.target, true) && compareValues(multipleOr, o.multipleOr, true) 2873 && compareValues(multipleAnd, o.multipleAnd, true) && compareValues(comparator, o.comparator, true) 2874 && compareValues(modifier, o.modifier, true) && compareValues(chain, o.chain, true); 2875 } 2876 2877 public boolean isEmpty() { 2878 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(derivedFrom, purpose, code 2879 , base, type, expression, xpath, xpathUsage, target, multipleOr, multipleAnd 2880 , comparator, modifier, chain, component); 2881 } 2882 2883 @Override 2884 public ResourceType getResourceType() { 2885 return ResourceType.SearchParameter; 2886 } 2887 2888 /** 2889 * Search parameter: <b>date</b> 2890 * <p> 2891 * Description: <b>The search parameter publication date</b><br> 2892 * Type: <b>date</b><br> 2893 * Path: <b>SearchParameter.date</b><br> 2894 * </p> 2895 */ 2896 @SearchParamDefinition(name="date", path="SearchParameter.date", description="The search parameter publication date", type="date" ) 2897 public static final String SP_DATE = "date"; 2898 /** 2899 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2900 * <p> 2901 * Description: <b>The search parameter publication date</b><br> 2902 * Type: <b>date</b><br> 2903 * Path: <b>SearchParameter.date</b><br> 2904 * </p> 2905 */ 2906 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2907 2908 /** 2909 * Search parameter: <b>code</b> 2910 * <p> 2911 * Description: <b>Code used in URL</b><br> 2912 * Type: <b>token</b><br> 2913 * Path: <b>SearchParameter.code</b><br> 2914 * </p> 2915 */ 2916 @SearchParamDefinition(name="code", path="SearchParameter.code", description="Code used in URL", type="token" ) 2917 public static final String SP_CODE = "code"; 2918 /** 2919 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2920 * <p> 2921 * Description: <b>Code used in URL</b><br> 2922 * Type: <b>token</b><br> 2923 * Path: <b>SearchParameter.code</b><br> 2924 * </p> 2925 */ 2926 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2927 2928 /** 2929 * Search parameter: <b>context-type-value</b> 2930 * <p> 2931 * Description: <b>A use context type and value assigned to the search parameter</b><br> 2932 * Type: <b>composite</b><br> 2933 * Path: <b></b><br> 2934 * </p> 2935 */ 2936 @SearchParamDefinition(name="context-type-value", path="SearchParameter.useContext", description="A use context type and value assigned to the search parameter", type="composite", compositeOf={"context-type", "context"} ) 2937 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 2938 /** 2939 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 2940 * <p> 2941 * Description: <b>A use context type and value assigned to the search parameter</b><br> 2942 * Type: <b>composite</b><br> 2943 * Path: <b></b><br> 2944 * </p> 2945 */ 2946 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam> CONTEXT_TYPE_VALUE = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.TokenClientParam>(SP_CONTEXT_TYPE_VALUE); 2947 2948 /** 2949 * Search parameter: <b>jurisdiction</b> 2950 * <p> 2951 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2952 * Type: <b>token</b><br> 2953 * Path: <b>SearchParameter.jurisdiction</b><br> 2954 * </p> 2955 */ 2956 @SearchParamDefinition(name="jurisdiction", path="SearchParameter.jurisdiction", description="Intended jurisdiction for the search parameter", type="token" ) 2957 public static final String SP_JURISDICTION = "jurisdiction"; 2958 /** 2959 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 2960 * <p> 2961 * Description: <b>Intended jurisdiction for the search parameter</b><br> 2962 * Type: <b>token</b><br> 2963 * Path: <b>SearchParameter.jurisdiction</b><br> 2964 * </p> 2965 */ 2966 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 2967 2968 /** 2969 * Search parameter: <b>description</b> 2970 * <p> 2971 * Description: <b>The description of the search parameter</b><br> 2972 * Type: <b>string</b><br> 2973 * Path: <b>SearchParameter.description</b><br> 2974 * </p> 2975 */ 2976 @SearchParamDefinition(name="description", path="SearchParameter.description", description="The description of the search parameter", type="string" ) 2977 public static final String SP_DESCRIPTION = "description"; 2978 /** 2979 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2980 * <p> 2981 * Description: <b>The description of the search parameter</b><br> 2982 * Type: <b>string</b><br> 2983 * Path: <b>SearchParameter.description</b><br> 2984 * </p> 2985 */ 2986 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2987 2988 /** 2989 * Search parameter: <b>derived-from</b> 2990 * <p> 2991 * Description: <b>Original definition for the search parameter</b><br> 2992 * Type: <b>reference</b><br> 2993 * Path: <b>SearchParameter.derivedFrom</b><br> 2994 * </p> 2995 */ 2996 @SearchParamDefinition(name="derived-from", path="SearchParameter.derivedFrom", description="Original definition for the search parameter", type="reference", target={SearchParameter.class } ) 2997 public static final String SP_DERIVED_FROM = "derived-from"; 2998 /** 2999 * <b>Fluent Client</b> search parameter constant for <b>derived-from</b> 3000 * <p> 3001 * Description: <b>Original definition for the search parameter</b><br> 3002 * Type: <b>reference</b><br> 3003 * Path: <b>SearchParameter.derivedFrom</b><br> 3004 * </p> 3005 */ 3006 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam DERIVED_FROM = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_DERIVED_FROM); 3007 3008/** 3009 * Constant for fluent queries to be used to add include statements. Specifies 3010 * the path value of "<b>SearchParameter:derived-from</b>". 3011 */ 3012 public static final ca.uhn.fhir.model.api.Include INCLUDE_DERIVED_FROM = new ca.uhn.fhir.model.api.Include("SearchParameter:derived-from").toLocked(); 3013 3014 /** 3015 * Search parameter: <b>context-type</b> 3016 * <p> 3017 * Description: <b>A type of use context assigned to the search parameter</b><br> 3018 * Type: <b>token</b><br> 3019 * Path: <b>SearchParameter.useContext.code</b><br> 3020 * </p> 3021 */ 3022 @SearchParamDefinition(name="context-type", path="SearchParameter.useContext.code", description="A type of use context assigned to the search parameter", type="token" ) 3023 public static final String SP_CONTEXT_TYPE = "context-type"; 3024 /** 3025 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3026 * <p> 3027 * Description: <b>A type of use context assigned to the search parameter</b><br> 3028 * Type: <b>token</b><br> 3029 * Path: <b>SearchParameter.useContext.code</b><br> 3030 * </p> 3031 */ 3032 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 3033 3034 /** 3035 * Search parameter: <b>type</b> 3036 * <p> 3037 * Description: <b>number | date | string | token | reference | composite | quantity | uri | special</b><br> 3038 * Type: <b>token</b><br> 3039 * Path: <b>SearchParameter.type</b><br> 3040 * </p> 3041 */ 3042 @SearchParamDefinition(name="type", path="SearchParameter.type", description="number | date | string | token | reference | composite | quantity | uri | special", type="token" ) 3043 public static final String SP_TYPE = "type"; 3044 /** 3045 * <b>Fluent Client</b> search parameter constant for <b>type</b> 3046 * <p> 3047 * Description: <b>number | date | string | token | reference | composite | quantity | uri | special</b><br> 3048 * Type: <b>token</b><br> 3049 * Path: <b>SearchParameter.type</b><br> 3050 * </p> 3051 */ 3052 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE); 3053 3054 /** 3055 * Search parameter: <b>version</b> 3056 * <p> 3057 * Description: <b>The business version of the search parameter</b><br> 3058 * Type: <b>token</b><br> 3059 * Path: <b>SearchParameter.version</b><br> 3060 * </p> 3061 */ 3062 @SearchParamDefinition(name="version", path="SearchParameter.version", description="The business version of the search parameter", type="token" ) 3063 public static final String SP_VERSION = "version"; 3064 /** 3065 * <b>Fluent Client</b> search parameter constant for <b>version</b> 3066 * <p> 3067 * Description: <b>The business version of the search parameter</b><br> 3068 * Type: <b>token</b><br> 3069 * Path: <b>SearchParameter.version</b><br> 3070 * </p> 3071 */ 3072 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 3073 3074 /** 3075 * Search parameter: <b>url</b> 3076 * <p> 3077 * Description: <b>The uri that identifies the search parameter</b><br> 3078 * Type: <b>uri</b><br> 3079 * Path: <b>SearchParameter.url</b><br> 3080 * </p> 3081 */ 3082 @SearchParamDefinition(name="url", path="SearchParameter.url", description="The uri that identifies the search parameter", type="uri" ) 3083 public static final String SP_URL = "url"; 3084 /** 3085 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3086 * <p> 3087 * Description: <b>The uri that identifies the search parameter</b><br> 3088 * Type: <b>uri</b><br> 3089 * Path: <b>SearchParameter.url</b><br> 3090 * </p> 3091 */ 3092 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3093 3094 /** 3095 * Search parameter: <b>target</b> 3096 * <p> 3097 * Description: <b>Types of resource (if a resource reference)</b><br> 3098 * Type: <b>token</b><br> 3099 * Path: <b>SearchParameter.target</b><br> 3100 * </p> 3101 */ 3102 @SearchParamDefinition(name="target", path="SearchParameter.target", description="Types of resource (if a resource reference)", type="token" ) 3103 public static final String SP_TARGET = "target"; 3104 /** 3105 * <b>Fluent Client</b> search parameter constant for <b>target</b> 3106 * <p> 3107 * Description: <b>Types of resource (if a resource reference)</b><br> 3108 * Type: <b>token</b><br> 3109 * Path: <b>SearchParameter.target</b><br> 3110 * </p> 3111 */ 3112 public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET); 3113 3114 /** 3115 * Search parameter: <b>context-quantity</b> 3116 * <p> 3117 * Description: <b>A quantity- or range-valued use context assigned to the search parameter</b><br> 3118 * Type: <b>quantity</b><br> 3119 * Path: <b>SearchParameter.useContext.valueQuantity, SearchParameter.useContext.valueRange</b><br> 3120 * </p> 3121 */ 3122 @SearchParamDefinition(name="context-quantity", path="(SearchParameter.useContext.value as Quantity) | (SearchParameter.useContext.value as Range)", description="A quantity- or range-valued use context assigned to the search parameter", type="quantity" ) 3123 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3124 /** 3125 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3126 * <p> 3127 * Description: <b>A quantity- or range-valued use context assigned to the search parameter</b><br> 3128 * Type: <b>quantity</b><br> 3129 * Path: <b>SearchParameter.useContext.valueQuantity, SearchParameter.useContext.valueRange</b><br> 3130 * </p> 3131 */ 3132 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 3133 3134 /** 3135 * Search parameter: <b>component</b> 3136 * <p> 3137 * Description: <b>Defines how the part works</b><br> 3138 * Type: <b>reference</b><br> 3139 * Path: <b>SearchParameter.component.definition</b><br> 3140 * </p> 3141 */ 3142 @SearchParamDefinition(name="component", path="SearchParameter.component.definition", description="Defines how the part works", type="reference", target={SearchParameter.class } ) 3143 public static final String SP_COMPONENT = "component"; 3144 /** 3145 * <b>Fluent Client</b> search parameter constant for <b>component</b> 3146 * <p> 3147 * Description: <b>Defines how the part works</b><br> 3148 * Type: <b>reference</b><br> 3149 * Path: <b>SearchParameter.component.definition</b><br> 3150 * </p> 3151 */ 3152 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam COMPONENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_COMPONENT); 3153 3154/** 3155 * Constant for fluent queries to be used to add include statements. Specifies 3156 * the path value of "<b>SearchParameter:component</b>". 3157 */ 3158 public static final ca.uhn.fhir.model.api.Include INCLUDE_COMPONENT = new ca.uhn.fhir.model.api.Include("SearchParameter:component").toLocked(); 3159 3160 /** 3161 * Search parameter: <b>name</b> 3162 * <p> 3163 * Description: <b>Computationally friendly name of the search parameter</b><br> 3164 * Type: <b>string</b><br> 3165 * Path: <b>SearchParameter.name</b><br> 3166 * </p> 3167 */ 3168 @SearchParamDefinition(name="name", path="SearchParameter.name", description="Computationally friendly name of the search parameter", type="string" ) 3169 public static final String SP_NAME = "name"; 3170 /** 3171 * <b>Fluent Client</b> search parameter constant for <b>name</b> 3172 * <p> 3173 * Description: <b>Computationally friendly name of the search parameter</b><br> 3174 * Type: <b>string</b><br> 3175 * Path: <b>SearchParameter.name</b><br> 3176 * </p> 3177 */ 3178 public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME); 3179 3180 /** 3181 * Search parameter: <b>context</b> 3182 * <p> 3183 * Description: <b>A use context assigned to the search parameter</b><br> 3184 * Type: <b>token</b><br> 3185 * Path: <b>SearchParameter.useContext.valueCodeableConcept</b><br> 3186 * </p> 3187 */ 3188 @SearchParamDefinition(name="context", path="(SearchParameter.useContext.value as CodeableConcept)", description="A use context assigned to the search parameter", type="token" ) 3189 public static final String SP_CONTEXT = "context"; 3190 /** 3191 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3192 * <p> 3193 * Description: <b>A use context assigned to the search parameter</b><br> 3194 * Type: <b>token</b><br> 3195 * Path: <b>SearchParameter.useContext.valueCodeableConcept</b><br> 3196 * </p> 3197 */ 3198 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 3199 3200 /** 3201 * Search parameter: <b>publisher</b> 3202 * <p> 3203 * Description: <b>Name of the publisher of the search parameter</b><br> 3204 * Type: <b>string</b><br> 3205 * Path: <b>SearchParameter.publisher</b><br> 3206 * </p> 3207 */ 3208 @SearchParamDefinition(name="publisher", path="SearchParameter.publisher", description="Name of the publisher of the search parameter", type="string" ) 3209 public static final String SP_PUBLISHER = "publisher"; 3210 /** 3211 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3212 * <p> 3213 * Description: <b>Name of the publisher of the search parameter</b><br> 3214 * Type: <b>string</b><br> 3215 * Path: <b>SearchParameter.publisher</b><br> 3216 * </p> 3217 */ 3218 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 3219 3220 /** 3221 * Search parameter: <b>context-type-quantity</b> 3222 * <p> 3223 * Description: <b>A use context type and quantity- or range-based value assigned to the search parameter</b><br> 3224 * Type: <b>composite</b><br> 3225 * Path: <b></b><br> 3226 * </p> 3227 */ 3228 @SearchParamDefinition(name="context-type-quantity", path="SearchParameter.useContext", description="A use context type and quantity- or range-based value assigned to the search parameter", type="composite", compositeOf={"context-type", "context-quantity"} ) 3229 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3230 /** 3231 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 3232 * <p> 3233 * Description: <b>A use context type and quantity- or range-based value assigned to the search parameter</b><br> 3234 * Type: <b>composite</b><br> 3235 * Path: <b></b><br> 3236 * </p> 3237 */ 3238 public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam> CONTEXT_TYPE_QUANTITY = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.QuantityClientParam>(SP_CONTEXT_TYPE_QUANTITY); 3239 3240 /** 3241 * Search parameter: <b>status</b> 3242 * <p> 3243 * Description: <b>The current status of the search parameter</b><br> 3244 * Type: <b>token</b><br> 3245 * Path: <b>SearchParameter.status</b><br> 3246 * </p> 3247 */ 3248 @SearchParamDefinition(name="status", path="SearchParameter.status", description="The current status of the search parameter", type="token" ) 3249 public static final String SP_STATUS = "status"; 3250 /** 3251 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3252 * <p> 3253 * Description: <b>The current status of the search parameter</b><br> 3254 * Type: <b>token</b><br> 3255 * Path: <b>SearchParameter.status</b><br> 3256 * </p> 3257 */ 3258 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3259 3260 /** 3261 * Search parameter: <b>base</b> 3262 * <p> 3263 * Description: <b>The resource type(s) this search parameter applies to</b><br> 3264 * Type: <b>token</b><br> 3265 * Path: <b>SearchParameter.base</b><br> 3266 * </p> 3267 */ 3268 @SearchParamDefinition(name="base", path="SearchParameter.base", description="The resource type(s) this search parameter applies to", type="token" ) 3269 public static final String SP_BASE = "base"; 3270 /** 3271 * <b>Fluent Client</b> search parameter constant for <b>base</b> 3272 * <p> 3273 * Description: <b>The resource type(s) this search parameter applies to</b><br> 3274 * Type: <b>token</b><br> 3275 * Path: <b>SearchParameter.base</b><br> 3276 * </p> 3277 */ 3278 public static final ca.uhn.fhir.rest.gclient.TokenClientParam BASE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_BASE); 3279 3280 3281}