
001package org.hl7.fhir.r4.model; 002 003import java.math.BigDecimal; 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// Generated on Tue, May 12, 2020 07:26+1000 for FHIR v4.0.1 035import java.util.ArrayList; 036import java.util.Date; 037import java.util.List; 038 039import org.hl7.fhir.exceptions.FHIRException; 040import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 041import org.hl7.fhir.r4.model.Enumerations.PublicationStatus; 042import org.hl7.fhir.r4.model.Enumerations.PublicationStatusEnumFactory; 043import org.hl7.fhir.utilities.Utilities; 044 045import ca.uhn.fhir.model.api.annotation.Block; 046import ca.uhn.fhir.model.api.annotation.Child; 047import ca.uhn.fhir.model.api.annotation.ChildOrder; 048import ca.uhn.fhir.model.api.annotation.Description; 049import ca.uhn.fhir.model.api.annotation.ResourceDef; 050import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 051 052/** 053 * The ChargeItemDefinition resource provides the properties that apply to the 054 * (billing) codes necessary to calculate costs and prices. The properties may 055 * differ largely depending on type and realm, therefore this resource gives 056 * only a rough structure and requires profiling for each type of billing code 057 * system. 058 */ 059@ResourceDef(name = "ChargeItemDefinition", profile = "http://hl7.org/fhir/StructureDefinition/ChargeItemDefinition") 060@ChildOrder(names = { "url", "identifier", "version", "title", "derivedFromUri", "partOf", "replaces", "status", 061 "experimental", "date", "publisher", "contact", "description", "useContext", "jurisdiction", "copyright", 062 "approvalDate", "lastReviewDate", "effectivePeriod", "code", "instance", "applicability", "propertyGroup" }) 063public class ChargeItemDefinition extends MetadataResource { 064 065 public enum ChargeItemDefinitionPriceComponentType { 066 /** 067 * the amount is the base price used for calculating the total price before 068 * applying surcharges, discount or taxes. 069 */ 070 BASE, 071 /** 072 * the amount is a surcharge applied on the base price. 073 */ 074 SURCHARGE, 075 /** 076 * the amount is a deduction applied on the base price. 077 */ 078 DEDUCTION, 079 /** 080 * the amount is a discount applied on the base price. 081 */ 082 DISCOUNT, 083 /** 084 * the amount is the tax component of the total price. 085 */ 086 TAX, 087 /** 088 * the amount is of informational character, it has not been applied in the 089 * calculation of the total price. 090 */ 091 INFORMATIONAL, 092 /** 093 * added to help the parsers with the generic types 094 */ 095 NULL; 096 097 public static ChargeItemDefinitionPriceComponentType fromCode(String codeString) throws FHIRException { 098 if (codeString == null || "".equals(codeString)) 099 return null; 100 if ("base".equals(codeString)) 101 return BASE; 102 if ("surcharge".equals(codeString)) 103 return SURCHARGE; 104 if ("deduction".equals(codeString)) 105 return DEDUCTION; 106 if ("discount".equals(codeString)) 107 return DISCOUNT; 108 if ("tax".equals(codeString)) 109 return TAX; 110 if ("informational".equals(codeString)) 111 return INFORMATIONAL; 112 if (Configuration.isAcceptInvalidEnums()) 113 return null; 114 else 115 throw new FHIRException("Unknown ChargeItemDefinitionPriceComponentType code '" + codeString + "'"); 116 } 117 118 public String toCode() { 119 switch (this) { 120 case BASE: 121 return "base"; 122 case SURCHARGE: 123 return "surcharge"; 124 case DEDUCTION: 125 return "deduction"; 126 case DISCOUNT: 127 return "discount"; 128 case TAX: 129 return "tax"; 130 case INFORMATIONAL: 131 return "informational"; 132 case NULL: 133 return null; 134 default: 135 return "?"; 136 } 137 } 138 139 public String getSystem() { 140 switch (this) { 141 case BASE: 142 return "http://hl7.org/fhir/invoice-priceComponentType"; 143 case SURCHARGE: 144 return "http://hl7.org/fhir/invoice-priceComponentType"; 145 case DEDUCTION: 146 return "http://hl7.org/fhir/invoice-priceComponentType"; 147 case DISCOUNT: 148 return "http://hl7.org/fhir/invoice-priceComponentType"; 149 case TAX: 150 return "http://hl7.org/fhir/invoice-priceComponentType"; 151 case INFORMATIONAL: 152 return "http://hl7.org/fhir/invoice-priceComponentType"; 153 case NULL: 154 return null; 155 default: 156 return "?"; 157 } 158 } 159 160 public String getDefinition() { 161 switch (this) { 162 case BASE: 163 return "the amount is the base price used for calculating the total price before applying surcharges, discount or taxes."; 164 case SURCHARGE: 165 return "the amount is a surcharge applied on the base price."; 166 case DEDUCTION: 167 return "the amount is a deduction applied on the base price."; 168 case DISCOUNT: 169 return "the amount is a discount applied on the base price."; 170 case TAX: 171 return "the amount is the tax component of the total price."; 172 case INFORMATIONAL: 173 return "the amount is of informational character, it has not been applied in the calculation of the total price."; 174 case NULL: 175 return null; 176 default: 177 return "?"; 178 } 179 } 180 181 public String getDisplay() { 182 switch (this) { 183 case BASE: 184 return "base price"; 185 case SURCHARGE: 186 return "surcharge"; 187 case DEDUCTION: 188 return "deduction"; 189 case DISCOUNT: 190 return "discount"; 191 case TAX: 192 return "tax"; 193 case INFORMATIONAL: 194 return "informational"; 195 case NULL: 196 return null; 197 default: 198 return "?"; 199 } 200 } 201 } 202 203 public static class ChargeItemDefinitionPriceComponentTypeEnumFactory 204 implements EnumFactory<ChargeItemDefinitionPriceComponentType> { 205 public ChargeItemDefinitionPriceComponentType fromCode(String codeString) throws IllegalArgumentException { 206 if (codeString == null || "".equals(codeString)) 207 if (codeString == null || "".equals(codeString)) 208 return null; 209 if ("base".equals(codeString)) 210 return ChargeItemDefinitionPriceComponentType.BASE; 211 if ("surcharge".equals(codeString)) 212 return ChargeItemDefinitionPriceComponentType.SURCHARGE; 213 if ("deduction".equals(codeString)) 214 return ChargeItemDefinitionPriceComponentType.DEDUCTION; 215 if ("discount".equals(codeString)) 216 return ChargeItemDefinitionPriceComponentType.DISCOUNT; 217 if ("tax".equals(codeString)) 218 return ChargeItemDefinitionPriceComponentType.TAX; 219 if ("informational".equals(codeString)) 220 return ChargeItemDefinitionPriceComponentType.INFORMATIONAL; 221 throw new IllegalArgumentException("Unknown ChargeItemDefinitionPriceComponentType code '" + codeString + "'"); 222 } 223 224 public Enumeration<ChargeItemDefinitionPriceComponentType> fromType(PrimitiveType<?> code) throws FHIRException { 225 if (code == null) 226 return null; 227 if (code.isEmpty()) 228 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 229 ChargeItemDefinitionPriceComponentType.NULL, code); 230 String codeString = code.asStringValue(); 231 if (codeString == null || "".equals(codeString)) 232 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 233 ChargeItemDefinitionPriceComponentType.NULL, code); 234 if ("base".equals(codeString)) 235 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 236 ChargeItemDefinitionPriceComponentType.BASE, code); 237 if ("surcharge".equals(codeString)) 238 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 239 ChargeItemDefinitionPriceComponentType.SURCHARGE, code); 240 if ("deduction".equals(codeString)) 241 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 242 ChargeItemDefinitionPriceComponentType.DEDUCTION, code); 243 if ("discount".equals(codeString)) 244 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 245 ChargeItemDefinitionPriceComponentType.DISCOUNT, code); 246 if ("tax".equals(codeString)) 247 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, ChargeItemDefinitionPriceComponentType.TAX, 248 code); 249 if ("informational".equals(codeString)) 250 return new Enumeration<ChargeItemDefinitionPriceComponentType>(this, 251 ChargeItemDefinitionPriceComponentType.INFORMATIONAL, code); 252 throw new FHIRException("Unknown ChargeItemDefinitionPriceComponentType code '" + codeString + "'"); 253 } 254 255 public String toCode(ChargeItemDefinitionPriceComponentType code) { 256 if (code == ChargeItemDefinitionPriceComponentType.NULL) 257 return null; 258 if (code == ChargeItemDefinitionPriceComponentType.BASE) 259 return "base"; 260 if (code == ChargeItemDefinitionPriceComponentType.SURCHARGE) 261 return "surcharge"; 262 if (code == ChargeItemDefinitionPriceComponentType.DEDUCTION) 263 return "deduction"; 264 if (code == ChargeItemDefinitionPriceComponentType.DISCOUNT) 265 return "discount"; 266 if (code == ChargeItemDefinitionPriceComponentType.TAX) 267 return "tax"; 268 if (code == ChargeItemDefinitionPriceComponentType.INFORMATIONAL) 269 return "informational"; 270 return "?"; 271 } 272 273 public String toSystem(ChargeItemDefinitionPriceComponentType code) { 274 return code.getSystem(); 275 } 276 } 277 278 @Block() 279 public static class ChargeItemDefinitionApplicabilityComponent extends BackboneElement 280 implements IBaseBackboneElement { 281 /** 282 * A brief, natural language description of the condition that effectively 283 * communicates the intended semantics. 284 */ 285 @Child(name = "description", type = { 286 StringType.class }, order = 1, min = 0, max = 1, modifier = false, summary = false) 287 @Description(shortDefinition = "Natural language description of the condition", formalDefinition = "A brief, natural language description of the condition that effectively communicates the intended semantics.") 288 protected StringType description; 289 290 /** 291 * The media type of the language for the expression, e.g. "text/cql" for 292 * Clinical Query Language expressions or "text/fhirpath" for FHIRPath 293 * expressions. 294 */ 295 @Child(name = "language", type = { 296 StringType.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 297 @Description(shortDefinition = "Language of the expression", formalDefinition = "The media type of the language for the expression, e.g. \"text/cql\" for Clinical Query Language expressions or \"text/fhirpath\" for FHIRPath expressions.") 298 protected StringType language; 299 300 /** 301 * An expression that returns true or false, indicating whether the condition is 302 * satisfied. When using FHIRPath expressions, the %context environment variable 303 * must be replaced at runtime with the ChargeItem resource to which this 304 * definition is applied. 305 */ 306 @Child(name = "expression", type = { 307 StringType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 308 @Description(shortDefinition = "Boolean-valued expression", formalDefinition = "An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied.") 309 protected StringType expression; 310 311 private static final long serialVersionUID = 1354288281L; 312 313 /** 314 * Constructor 315 */ 316 public ChargeItemDefinitionApplicabilityComponent() { 317 super(); 318 } 319 320 /** 321 * @return {@link #description} (A brief, natural language description of the 322 * condition that effectively communicates the intended semantics.). 323 * This is the underlying object with id, value and extensions. The 324 * accessor "getDescription" gives direct access to the value 325 */ 326 public StringType getDescriptionElement() { 327 if (this.description == null) 328 if (Configuration.errorOnAutoCreate()) 329 throw new Error("Attempt to auto-create ChargeItemDefinitionApplicabilityComponent.description"); 330 else if (Configuration.doAutoCreate()) 331 this.description = new StringType(); // bb 332 return this.description; 333 } 334 335 public boolean hasDescriptionElement() { 336 return this.description != null && !this.description.isEmpty(); 337 } 338 339 public boolean hasDescription() { 340 return this.description != null && !this.description.isEmpty(); 341 } 342 343 /** 344 * @param value {@link #description} (A brief, natural language description of 345 * the condition that effectively communicates the intended 346 * semantics.). This is the underlying object with id, value and 347 * extensions. The accessor "getDescription" gives direct access to 348 * the value 349 */ 350 public ChargeItemDefinitionApplicabilityComponent setDescriptionElement(StringType value) { 351 this.description = value; 352 return this; 353 } 354 355 /** 356 * @return A brief, natural language description of the condition that 357 * effectively communicates the intended semantics. 358 */ 359 public String getDescription() { 360 return this.description == null ? null : this.description.getValue(); 361 } 362 363 /** 364 * @param value A brief, natural language description of the condition that 365 * effectively communicates the intended semantics. 366 */ 367 public ChargeItemDefinitionApplicabilityComponent setDescription(String value) { 368 if (Utilities.noString(value)) 369 this.description = null; 370 else { 371 if (this.description == null) 372 this.description = new StringType(); 373 this.description.setValue(value); 374 } 375 return this; 376 } 377 378 /** 379 * @return {@link #language} (The media type of the language for the expression, 380 * e.g. "text/cql" for Clinical Query Language expressions or 381 * "text/fhirpath" for FHIRPath expressions.). This is the underlying 382 * object with id, value and extensions. The accessor "getLanguage" 383 * gives direct access to the value 384 */ 385 public StringType getLanguageElement() { 386 if (this.language == null) 387 if (Configuration.errorOnAutoCreate()) 388 throw new Error("Attempt to auto-create ChargeItemDefinitionApplicabilityComponent.language"); 389 else if (Configuration.doAutoCreate()) 390 this.language = new StringType(); // bb 391 return this.language; 392 } 393 394 public boolean hasLanguageElement() { 395 return this.language != null && !this.language.isEmpty(); 396 } 397 398 public boolean hasLanguage() { 399 return this.language != null && !this.language.isEmpty(); 400 } 401 402 /** 403 * @param value {@link #language} (The media type of the language for the 404 * expression, e.g. "text/cql" for Clinical Query Language 405 * expressions or "text/fhirpath" for FHIRPath expressions.). This 406 * is the underlying object with id, value and extensions. The 407 * accessor "getLanguage" gives direct access to the value 408 */ 409 public ChargeItemDefinitionApplicabilityComponent setLanguageElement(StringType value) { 410 this.language = value; 411 return this; 412 } 413 414 /** 415 * @return The media type of the language for the expression, e.g. "text/cql" 416 * for Clinical Query Language expressions or "text/fhirpath" for 417 * FHIRPath expressions. 418 */ 419 public String getLanguage() { 420 return this.language == null ? null : this.language.getValue(); 421 } 422 423 /** 424 * @param value The media type of the language for the expression, e.g. 425 * "text/cql" for Clinical Query Language expressions or 426 * "text/fhirpath" for FHIRPath expressions. 427 */ 428 public ChargeItemDefinitionApplicabilityComponent setLanguage(String value) { 429 if (Utilities.noString(value)) 430 this.language = null; 431 else { 432 if (this.language == null) 433 this.language = new StringType(); 434 this.language.setValue(value); 435 } 436 return this; 437 } 438 439 /** 440 * @return {@link #expression} (An expression that returns true or false, 441 * indicating whether the condition is satisfied. When using FHIRPath 442 * expressions, the %context environment variable must be replaced at 443 * runtime with the ChargeItem resource to which this definition is 444 * applied.). This is the underlying object with id, value and 445 * extensions. The accessor "getExpression" gives direct access to the 446 * value 447 */ 448 public StringType getExpressionElement() { 449 if (this.expression == null) 450 if (Configuration.errorOnAutoCreate()) 451 throw new Error("Attempt to auto-create ChargeItemDefinitionApplicabilityComponent.expression"); 452 else if (Configuration.doAutoCreate()) 453 this.expression = new StringType(); // bb 454 return this.expression; 455 } 456 457 public boolean hasExpressionElement() { 458 return this.expression != null && !this.expression.isEmpty(); 459 } 460 461 public boolean hasExpression() { 462 return this.expression != null && !this.expression.isEmpty(); 463 } 464 465 /** 466 * @param value {@link #expression} (An expression that returns true or false, 467 * indicating whether the condition is satisfied. When using 468 * FHIRPath expressions, the %context environment variable must be 469 * replaced at runtime with the ChargeItem resource to which this 470 * definition is applied.). This is the underlying object with id, 471 * value and extensions. The accessor "getExpression" gives direct 472 * access to the value 473 */ 474 public ChargeItemDefinitionApplicabilityComponent setExpressionElement(StringType value) { 475 this.expression = value; 476 return this; 477 } 478 479 /** 480 * @return An expression that returns true or false, indicating whether the 481 * condition is satisfied. When using FHIRPath expressions, the %context 482 * environment variable must be replaced at runtime with the ChargeItem 483 * resource to which this definition is applied. 484 */ 485 public String getExpression() { 486 return this.expression == null ? null : this.expression.getValue(); 487 } 488 489 /** 490 * @param value An expression that returns true or false, indicating whether the 491 * condition is satisfied. When using FHIRPath expressions, the 492 * %context environment variable must be replaced at runtime with 493 * the ChargeItem resource to which this definition is applied. 494 */ 495 public ChargeItemDefinitionApplicabilityComponent setExpression(String value) { 496 if (Utilities.noString(value)) 497 this.expression = null; 498 else { 499 if (this.expression == null) 500 this.expression = new StringType(); 501 this.expression.setValue(value); 502 } 503 return this; 504 } 505 506 protected void listChildren(List<Property> children) { 507 super.listChildren(children); 508 children.add(new Property("description", "string", 509 "A brief, natural language description of the condition that effectively communicates the intended semantics.", 510 0, 1, description)); 511 children.add(new Property("language", "string", 512 "The media type of the language for the expression, e.g. \"text/cql\" for Clinical Query Language expressions or \"text/fhirpath\" for FHIRPath expressions.", 513 0, 1, language)); 514 children.add(new Property("expression", "string", 515 "An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied.", 516 0, 1, expression)); 517 } 518 519 @Override 520 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 521 switch (_hash) { 522 case -1724546052: 523 /* description */ return new Property("description", "string", 524 "A brief, natural language description of the condition that effectively communicates the intended semantics.", 525 0, 1, description); 526 case -1613589672: 527 /* language */ return new Property("language", "string", 528 "The media type of the language for the expression, e.g. \"text/cql\" for Clinical Query Language expressions or \"text/fhirpath\" for FHIRPath expressions.", 529 0, 1, language); 530 case -1795452264: 531 /* expression */ return new Property("expression", "string", 532 "An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied.", 533 0, 1, expression); 534 default: 535 return super.getNamedProperty(_hash, _name, _checkValid); 536 } 537 538 } 539 540 @Override 541 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 542 switch (hash) { 543 case -1724546052: 544 /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // StringType 545 case -1613589672: 546 /* language */ return this.language == null ? new Base[0] : new Base[] { this.language }; // StringType 547 case -1795452264: 548 /* expression */ return this.expression == null ? new Base[0] : new Base[] { this.expression }; // StringType 549 default: 550 return super.getProperty(hash, name, checkValid); 551 } 552 553 } 554 555 @Override 556 public Base setProperty(int hash, String name, Base value) throws FHIRException { 557 switch (hash) { 558 case -1724546052: // description 559 this.description = castToString(value); // StringType 560 return value; 561 case -1613589672: // language 562 this.language = castToString(value); // StringType 563 return value; 564 case -1795452264: // expression 565 this.expression = castToString(value); // StringType 566 return value; 567 default: 568 return super.setProperty(hash, name, value); 569 } 570 571 } 572 573 @Override 574 public Base setProperty(String name, Base value) throws FHIRException { 575 if (name.equals("description")) { 576 this.description = castToString(value); // StringType 577 } else if (name.equals("language")) { 578 this.language = castToString(value); // StringType 579 } else if (name.equals("expression")) { 580 this.expression = castToString(value); // StringType 581 } else 582 return super.setProperty(name, value); 583 return value; 584 } 585 586 @Override 587 public void removeChild(String name, Base value) throws FHIRException { 588 if (name.equals("description")) { 589 this.description = null; 590 } else if (name.equals("language")) { 591 this.language = null; 592 } else if (name.equals("expression")) { 593 this.expression = null; 594 } else 595 super.removeChild(name, value); 596 597 } 598 599 @Override 600 public Base makeProperty(int hash, String name) throws FHIRException { 601 switch (hash) { 602 case -1724546052: 603 return getDescriptionElement(); 604 case -1613589672: 605 return getLanguageElement(); 606 case -1795452264: 607 return getExpressionElement(); 608 default: 609 return super.makeProperty(hash, name); 610 } 611 612 } 613 614 @Override 615 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 616 switch (hash) { 617 case -1724546052: 618 /* description */ return new String[] { "string" }; 619 case -1613589672: 620 /* language */ return new String[] { "string" }; 621 case -1795452264: 622 /* expression */ return new String[] { "string" }; 623 default: 624 return super.getTypesForProperty(hash, name); 625 } 626 627 } 628 629 @Override 630 public Base addChild(String name) throws FHIRException { 631 if (name.equals("description")) { 632 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.description"); 633 } else if (name.equals("language")) { 634 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.language"); 635 } else if (name.equals("expression")) { 636 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.expression"); 637 } else 638 return super.addChild(name); 639 } 640 641 public ChargeItemDefinitionApplicabilityComponent copy() { 642 ChargeItemDefinitionApplicabilityComponent dst = new ChargeItemDefinitionApplicabilityComponent(); 643 copyValues(dst); 644 return dst; 645 } 646 647 public void copyValues(ChargeItemDefinitionApplicabilityComponent dst) { 648 super.copyValues(dst); 649 dst.description = description == null ? null : description.copy(); 650 dst.language = language == null ? null : language.copy(); 651 dst.expression = expression == null ? null : expression.copy(); 652 } 653 654 @Override 655 public boolean equalsDeep(Base other_) { 656 if (!super.equalsDeep(other_)) 657 return false; 658 if (!(other_ instanceof ChargeItemDefinitionApplicabilityComponent)) 659 return false; 660 ChargeItemDefinitionApplicabilityComponent o = (ChargeItemDefinitionApplicabilityComponent) other_; 661 return compareDeep(description, o.description, true) && compareDeep(language, o.language, true) 662 && compareDeep(expression, o.expression, true); 663 } 664 665 @Override 666 public boolean equalsShallow(Base other_) { 667 if (!super.equalsShallow(other_)) 668 return false; 669 if (!(other_ instanceof ChargeItemDefinitionApplicabilityComponent)) 670 return false; 671 ChargeItemDefinitionApplicabilityComponent o = (ChargeItemDefinitionApplicabilityComponent) other_; 672 return compareValues(description, o.description, true) && compareValues(language, o.language, true) 673 && compareValues(expression, o.expression, true); 674 } 675 676 public boolean isEmpty() { 677 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(description, language, expression); 678 } 679 680 public String fhirType() { 681 return "ChargeItemDefinition.applicability"; 682 683 } 684 685 } 686 687 @Block() 688 public static class ChargeItemDefinitionPropertyGroupComponent extends BackboneElement 689 implements IBaseBackboneElement { 690 /** 691 * Expressions that describe applicability criteria for the priceComponent. 692 */ 693 @Child(name = "applicability", type = { 694 ChargeItemDefinitionApplicabilityComponent.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 695 @Description(shortDefinition = "Conditions under which the priceComponent is applicable", formalDefinition = "Expressions that describe applicability criteria for the priceComponent.") 696 protected List<ChargeItemDefinitionApplicabilityComponent> applicability; 697 698 /** 699 * The price for a ChargeItem may be calculated as a base price with 700 * surcharges/deductions that apply in certain conditions. A 701 * ChargeItemDefinition resource that defines the prices, factors and conditions 702 * that apply to a billing code is currently under development. The 703 * priceComponent element can be used to offer transparency to the recipient of 704 * the Invoice of how the prices have been calculated. 705 */ 706 @Child(name = "priceComponent", type = {}, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 707 @Description(shortDefinition = "Components of total line item price", formalDefinition = "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated.") 708 protected List<ChargeItemDefinitionPropertyGroupPriceComponentComponent> priceComponent; 709 710 private static final long serialVersionUID = 1723436176L; 711 712 /** 713 * Constructor 714 */ 715 public ChargeItemDefinitionPropertyGroupComponent() { 716 super(); 717 } 718 719 /** 720 * @return {@link #applicability} (Expressions that describe applicability 721 * criteria for the priceComponent.) 722 */ 723 public List<ChargeItemDefinitionApplicabilityComponent> getApplicability() { 724 if (this.applicability == null) 725 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 726 return this.applicability; 727 } 728 729 /** 730 * @return Returns a reference to <code>this</code> for easy method chaining 731 */ 732 public ChargeItemDefinitionPropertyGroupComponent setApplicability( 733 List<ChargeItemDefinitionApplicabilityComponent> theApplicability) { 734 this.applicability = theApplicability; 735 return this; 736 } 737 738 public boolean hasApplicability() { 739 if (this.applicability == null) 740 return false; 741 for (ChargeItemDefinitionApplicabilityComponent item : this.applicability) 742 if (!item.isEmpty()) 743 return true; 744 return false; 745 } 746 747 public ChargeItemDefinitionApplicabilityComponent addApplicability() { // 3 748 ChargeItemDefinitionApplicabilityComponent t = new ChargeItemDefinitionApplicabilityComponent(); 749 if (this.applicability == null) 750 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 751 this.applicability.add(t); 752 return t; 753 } 754 755 public ChargeItemDefinitionPropertyGroupComponent addApplicability(ChargeItemDefinitionApplicabilityComponent t) { // 3 756 if (t == null) 757 return this; 758 if (this.applicability == null) 759 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 760 this.applicability.add(t); 761 return this; 762 } 763 764 /** 765 * @return The first repetition of repeating field {@link #applicability}, 766 * creating it if it does not already exist 767 */ 768 public ChargeItemDefinitionApplicabilityComponent getApplicabilityFirstRep() { 769 if (getApplicability().isEmpty()) { 770 addApplicability(); 771 } 772 return getApplicability().get(0); 773 } 774 775 /** 776 * @return {@link #priceComponent} (The price for a ChargeItem may be calculated 777 * as a base price with surcharges/deductions that apply in certain 778 * conditions. A ChargeItemDefinition resource that defines the prices, 779 * factors and conditions that apply to a billing code is currently 780 * under development. The priceComponent element can be used to offer 781 * transparency to the recipient of the Invoice of how the prices have 782 * been calculated.) 783 */ 784 public List<ChargeItemDefinitionPropertyGroupPriceComponentComponent> getPriceComponent() { 785 if (this.priceComponent == null) 786 this.priceComponent = new ArrayList<ChargeItemDefinitionPropertyGroupPriceComponentComponent>(); 787 return this.priceComponent; 788 } 789 790 /** 791 * @return Returns a reference to <code>this</code> for easy method chaining 792 */ 793 public ChargeItemDefinitionPropertyGroupComponent setPriceComponent( 794 List<ChargeItemDefinitionPropertyGroupPriceComponentComponent> thePriceComponent) { 795 this.priceComponent = thePriceComponent; 796 return this; 797 } 798 799 public boolean hasPriceComponent() { 800 if (this.priceComponent == null) 801 return false; 802 for (ChargeItemDefinitionPropertyGroupPriceComponentComponent item : this.priceComponent) 803 if (!item.isEmpty()) 804 return true; 805 return false; 806 } 807 808 public ChargeItemDefinitionPropertyGroupPriceComponentComponent addPriceComponent() { // 3 809 ChargeItemDefinitionPropertyGroupPriceComponentComponent t = new ChargeItemDefinitionPropertyGroupPriceComponentComponent(); 810 if (this.priceComponent == null) 811 this.priceComponent = new ArrayList<ChargeItemDefinitionPropertyGroupPriceComponentComponent>(); 812 this.priceComponent.add(t); 813 return t; 814 } 815 816 public ChargeItemDefinitionPropertyGroupComponent addPriceComponent( 817 ChargeItemDefinitionPropertyGroupPriceComponentComponent t) { // 3 818 if (t == null) 819 return this; 820 if (this.priceComponent == null) 821 this.priceComponent = new ArrayList<ChargeItemDefinitionPropertyGroupPriceComponentComponent>(); 822 this.priceComponent.add(t); 823 return this; 824 } 825 826 /** 827 * @return The first repetition of repeating field {@link #priceComponent}, 828 * creating it if it does not already exist 829 */ 830 public ChargeItemDefinitionPropertyGroupPriceComponentComponent getPriceComponentFirstRep() { 831 if (getPriceComponent().isEmpty()) { 832 addPriceComponent(); 833 } 834 return getPriceComponent().get(0); 835 } 836 837 protected void listChildren(List<Property> children) { 838 super.listChildren(children); 839 children.add(new Property("applicability", "@ChargeItemDefinition.applicability", 840 "Expressions that describe applicability criteria for the priceComponent.", 0, java.lang.Integer.MAX_VALUE, 841 applicability)); 842 children.add(new Property("priceComponent", "", 843 "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated.", 844 0, java.lang.Integer.MAX_VALUE, priceComponent)); 845 } 846 847 @Override 848 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 849 switch (_hash) { 850 case -1526770491: 851 /* applicability */ return new Property("applicability", "@ChargeItemDefinition.applicability", 852 "Expressions that describe applicability criteria for the priceComponent.", 0, java.lang.Integer.MAX_VALUE, 853 applicability); 854 case 1219095988: 855 /* priceComponent */ return new Property("priceComponent", "", 856 "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated.", 857 0, java.lang.Integer.MAX_VALUE, priceComponent); 858 default: 859 return super.getNamedProperty(_hash, _name, _checkValid); 860 } 861 862 } 863 864 @Override 865 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 866 switch (hash) { 867 case -1526770491: 868 /* applicability */ return this.applicability == null ? new Base[0] 869 : this.applicability.toArray(new Base[this.applicability.size()]); // ChargeItemDefinitionApplicabilityComponent 870 case 1219095988: 871 /* priceComponent */ return this.priceComponent == null ? new Base[0] 872 : this.priceComponent.toArray(new Base[this.priceComponent.size()]); // ChargeItemDefinitionPropertyGroupPriceComponentComponent 873 default: 874 return super.getProperty(hash, name, checkValid); 875 } 876 877 } 878 879 @Override 880 public Base setProperty(int hash, String name, Base value) throws FHIRException { 881 switch (hash) { 882 case -1526770491: // applicability 883 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); // ChargeItemDefinitionApplicabilityComponent 884 return value; 885 case 1219095988: // priceComponent 886 this.getPriceComponent().add((ChargeItemDefinitionPropertyGroupPriceComponentComponent) value); // ChargeItemDefinitionPropertyGroupPriceComponentComponent 887 return value; 888 default: 889 return super.setProperty(hash, name, value); 890 } 891 892 } 893 894 @Override 895 public Base setProperty(String name, Base value) throws FHIRException { 896 if (name.equals("applicability")) { 897 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); 898 } else if (name.equals("priceComponent")) { 899 this.getPriceComponent().add((ChargeItemDefinitionPropertyGroupPriceComponentComponent) value); 900 } else 901 return super.setProperty(name, value); 902 return value; 903 } 904 905 @Override 906 public void removeChild(String name, Base value) throws FHIRException { 907 if (name.equals("applicability")) { 908 this.getApplicability().remove((ChargeItemDefinitionApplicabilityComponent) value); 909 } else if (name.equals("priceComponent")) { 910 this.getPriceComponent().remove((ChargeItemDefinitionPropertyGroupPriceComponentComponent) value); 911 } else 912 super.removeChild(name, value); 913 914 } 915 916 @Override 917 public Base makeProperty(int hash, String name) throws FHIRException { 918 switch (hash) { 919 case -1526770491: 920 return addApplicability(); 921 case 1219095988: 922 return addPriceComponent(); 923 default: 924 return super.makeProperty(hash, name); 925 } 926 927 } 928 929 @Override 930 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 931 switch (hash) { 932 case -1526770491: 933 /* applicability */ return new String[] { "@ChargeItemDefinition.applicability" }; 934 case 1219095988: 935 /* priceComponent */ return new String[] {}; 936 default: 937 return super.getTypesForProperty(hash, name); 938 } 939 940 } 941 942 @Override 943 public Base addChild(String name) throws FHIRException { 944 if (name.equals("applicability")) { 945 return addApplicability(); 946 } else if (name.equals("priceComponent")) { 947 return addPriceComponent(); 948 } else 949 return super.addChild(name); 950 } 951 952 public ChargeItemDefinitionPropertyGroupComponent copy() { 953 ChargeItemDefinitionPropertyGroupComponent dst = new ChargeItemDefinitionPropertyGroupComponent(); 954 copyValues(dst); 955 return dst; 956 } 957 958 public void copyValues(ChargeItemDefinitionPropertyGroupComponent dst) { 959 super.copyValues(dst); 960 if (applicability != null) { 961 dst.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 962 for (ChargeItemDefinitionApplicabilityComponent i : applicability) 963 dst.applicability.add(i.copy()); 964 } 965 ; 966 if (priceComponent != null) { 967 dst.priceComponent = new ArrayList<ChargeItemDefinitionPropertyGroupPriceComponentComponent>(); 968 for (ChargeItemDefinitionPropertyGroupPriceComponentComponent i : priceComponent) 969 dst.priceComponent.add(i.copy()); 970 } 971 ; 972 } 973 974 @Override 975 public boolean equalsDeep(Base other_) { 976 if (!super.equalsDeep(other_)) 977 return false; 978 if (!(other_ instanceof ChargeItemDefinitionPropertyGroupComponent)) 979 return false; 980 ChargeItemDefinitionPropertyGroupComponent o = (ChargeItemDefinitionPropertyGroupComponent) other_; 981 return compareDeep(applicability, o.applicability, true) && compareDeep(priceComponent, o.priceComponent, true); 982 } 983 984 @Override 985 public boolean equalsShallow(Base other_) { 986 if (!super.equalsShallow(other_)) 987 return false; 988 if (!(other_ instanceof ChargeItemDefinitionPropertyGroupComponent)) 989 return false; 990 ChargeItemDefinitionPropertyGroupComponent o = (ChargeItemDefinitionPropertyGroupComponent) other_; 991 return true; 992 } 993 994 public boolean isEmpty() { 995 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(applicability, priceComponent); 996 } 997 998 public String fhirType() { 999 return "ChargeItemDefinition.propertyGroup"; 1000 1001 } 1002 1003 } 1004 1005 @Block() 1006 public static class ChargeItemDefinitionPropertyGroupPriceComponentComponent extends BackboneElement 1007 implements IBaseBackboneElement { 1008 /** 1009 * This code identifies the type of the component. 1010 */ 1011 @Child(name = "type", type = { CodeType.class }, order = 1, min = 1, max = 1, modifier = false, summary = false) 1012 @Description(shortDefinition = "base | surcharge | deduction | discount | tax | informational", formalDefinition = "This code identifies the type of the component.") 1013 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/invoice-priceComponentType") 1014 protected Enumeration<ChargeItemDefinitionPriceComponentType> type; 1015 1016 /** 1017 * A code that identifies the component. Codes may be used to differentiate 1018 * between kinds of taxes, surcharges, discounts etc. 1019 */ 1020 @Child(name = "code", type = { 1021 CodeableConcept.class }, order = 2, min = 0, max = 1, modifier = false, summary = false) 1022 @Description(shortDefinition = "Code identifying the specific component", formalDefinition = "A code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.") 1023 protected CodeableConcept code; 1024 1025 /** 1026 * The factor that has been applied on the base price for calculating this 1027 * component. 1028 */ 1029 @Child(name = "factor", type = { 1030 DecimalType.class }, order = 3, min = 0, max = 1, modifier = false, summary = false) 1031 @Description(shortDefinition = "Factor used for calculating this component", formalDefinition = "The factor that has been applied on the base price for calculating this component.") 1032 protected DecimalType factor; 1033 1034 /** 1035 * The amount calculated for this component. 1036 */ 1037 @Child(name = "amount", type = { Money.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 1038 @Description(shortDefinition = "Monetary amount associated with this component", formalDefinition = "The amount calculated for this component.") 1039 protected Money amount; 1040 1041 private static final long serialVersionUID = -841451335L; 1042 1043 /** 1044 * Constructor 1045 */ 1046 public ChargeItemDefinitionPropertyGroupPriceComponentComponent() { 1047 super(); 1048 } 1049 1050 /** 1051 * Constructor 1052 */ 1053 public ChargeItemDefinitionPropertyGroupPriceComponentComponent( 1054 Enumeration<ChargeItemDefinitionPriceComponentType> type) { 1055 super(); 1056 this.type = type; 1057 } 1058 1059 /** 1060 * @return {@link #type} (This code identifies the type of the component.). This 1061 * is the underlying object with id, value and extensions. The accessor 1062 * "getType" gives direct access to the value 1063 */ 1064 public Enumeration<ChargeItemDefinitionPriceComponentType> getTypeElement() { 1065 if (this.type == null) 1066 if (Configuration.errorOnAutoCreate()) 1067 throw new Error("Attempt to auto-create ChargeItemDefinitionPropertyGroupPriceComponentComponent.type"); 1068 else if (Configuration.doAutoCreate()) 1069 this.type = new Enumeration<ChargeItemDefinitionPriceComponentType>( 1070 new ChargeItemDefinitionPriceComponentTypeEnumFactory()); // bb 1071 return this.type; 1072 } 1073 1074 public boolean hasTypeElement() { 1075 return this.type != null && !this.type.isEmpty(); 1076 } 1077 1078 public boolean hasType() { 1079 return this.type != null && !this.type.isEmpty(); 1080 } 1081 1082 /** 1083 * @param value {@link #type} (This code identifies the type of the component.). 1084 * This is the underlying object with id, value and extensions. The 1085 * accessor "getType" gives direct access to the value 1086 */ 1087 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setTypeElement( 1088 Enumeration<ChargeItemDefinitionPriceComponentType> value) { 1089 this.type = value; 1090 return this; 1091 } 1092 1093 /** 1094 * @return This code identifies the type of the component. 1095 */ 1096 public ChargeItemDefinitionPriceComponentType getType() { 1097 return this.type == null ? null : this.type.getValue(); 1098 } 1099 1100 /** 1101 * @param value This code identifies the type of the component. 1102 */ 1103 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setType( 1104 ChargeItemDefinitionPriceComponentType value) { 1105 if (this.type == null) 1106 this.type = new Enumeration<ChargeItemDefinitionPriceComponentType>( 1107 new ChargeItemDefinitionPriceComponentTypeEnumFactory()); 1108 this.type.setValue(value); 1109 return this; 1110 } 1111 1112 /** 1113 * @return {@link #code} (A code that identifies the component. Codes may be 1114 * used to differentiate between kinds of taxes, surcharges, discounts 1115 * etc.) 1116 */ 1117 public CodeableConcept getCode() { 1118 if (this.code == null) 1119 if (Configuration.errorOnAutoCreate()) 1120 throw new Error("Attempt to auto-create ChargeItemDefinitionPropertyGroupPriceComponentComponent.code"); 1121 else if (Configuration.doAutoCreate()) 1122 this.code = new CodeableConcept(); // cc 1123 return this.code; 1124 } 1125 1126 public boolean hasCode() { 1127 return this.code != null && !this.code.isEmpty(); 1128 } 1129 1130 /** 1131 * @param value {@link #code} (A code that identifies the component. Codes may 1132 * be used to differentiate between kinds of taxes, surcharges, 1133 * discounts etc.) 1134 */ 1135 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setCode(CodeableConcept value) { 1136 this.code = value; 1137 return this; 1138 } 1139 1140 /** 1141 * @return {@link #factor} (The factor that has been applied on the base price 1142 * for calculating this component.). This is the underlying object with 1143 * id, value and extensions. The accessor "getFactor" gives direct 1144 * access to the value 1145 */ 1146 public DecimalType getFactorElement() { 1147 if (this.factor == null) 1148 if (Configuration.errorOnAutoCreate()) 1149 throw new Error("Attempt to auto-create ChargeItemDefinitionPropertyGroupPriceComponentComponent.factor"); 1150 else if (Configuration.doAutoCreate()) 1151 this.factor = new DecimalType(); // bb 1152 return this.factor; 1153 } 1154 1155 public boolean hasFactorElement() { 1156 return this.factor != null && !this.factor.isEmpty(); 1157 } 1158 1159 public boolean hasFactor() { 1160 return this.factor != null && !this.factor.isEmpty(); 1161 } 1162 1163 /** 1164 * @param value {@link #factor} (The factor that has been applied on the base 1165 * price for calculating this component.). This is the underlying 1166 * object with id, value and extensions. The accessor "getFactor" 1167 * gives direct access to the value 1168 */ 1169 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setFactorElement(DecimalType value) { 1170 this.factor = value; 1171 return this; 1172 } 1173 1174 /** 1175 * @return The factor that has been applied on the base price for calculating 1176 * this component. 1177 */ 1178 public BigDecimal getFactor() { 1179 return this.factor == null ? null : this.factor.getValue(); 1180 } 1181 1182 /** 1183 * @param value The factor that has been applied on the base price for 1184 * calculating this component. 1185 */ 1186 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setFactor(BigDecimal value) { 1187 if (value == null) 1188 this.factor = null; 1189 else { 1190 if (this.factor == null) 1191 this.factor = new DecimalType(); 1192 this.factor.setValue(value); 1193 } 1194 return this; 1195 } 1196 1197 /** 1198 * @param value The factor that has been applied on the base price for 1199 * calculating this component. 1200 */ 1201 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setFactor(long value) { 1202 this.factor = new DecimalType(); 1203 this.factor.setValue(value); 1204 return this; 1205 } 1206 1207 /** 1208 * @param value The factor that has been applied on the base price for 1209 * calculating this component. 1210 */ 1211 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setFactor(double value) { 1212 this.factor = new DecimalType(); 1213 this.factor.setValue(value); 1214 return this; 1215 } 1216 1217 /** 1218 * @return {@link #amount} (The amount calculated for this component.) 1219 */ 1220 public Money getAmount() { 1221 if (this.amount == null) 1222 if (Configuration.errorOnAutoCreate()) 1223 throw new Error("Attempt to auto-create ChargeItemDefinitionPropertyGroupPriceComponentComponent.amount"); 1224 else if (Configuration.doAutoCreate()) 1225 this.amount = new Money(); // cc 1226 return this.amount; 1227 } 1228 1229 public boolean hasAmount() { 1230 return this.amount != null && !this.amount.isEmpty(); 1231 } 1232 1233 /** 1234 * @param value {@link #amount} (The amount calculated for this component.) 1235 */ 1236 public ChargeItemDefinitionPropertyGroupPriceComponentComponent setAmount(Money value) { 1237 this.amount = value; 1238 return this; 1239 } 1240 1241 protected void listChildren(List<Property> children) { 1242 super.listChildren(children); 1243 children.add(new Property("type", "code", "This code identifies the type of the component.", 0, 1, type)); 1244 children.add(new Property("code", "CodeableConcept", 1245 "A code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.", 1246 0, 1, code)); 1247 children.add(new Property("factor", "decimal", 1248 "The factor that has been applied on the base price for calculating this component.", 0, 1, factor)); 1249 children.add(new Property("amount", "Money", "The amount calculated for this component.", 0, 1, amount)); 1250 } 1251 1252 @Override 1253 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 1254 switch (_hash) { 1255 case 3575610: 1256 /* type */ return new Property("type", "code", "This code identifies the type of the component.", 0, 1, type); 1257 case 3059181: 1258 /* code */ return new Property("code", "CodeableConcept", 1259 "A code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc.", 1260 0, 1, code); 1261 case -1282148017: 1262 /* factor */ return new Property("factor", "decimal", 1263 "The factor that has been applied on the base price for calculating this component.", 0, 1, factor); 1264 case -1413853096: 1265 /* amount */ return new Property("amount", "Money", "The amount calculated for this component.", 0, 1, amount); 1266 default: 1267 return super.getNamedProperty(_hash, _name, _checkValid); 1268 } 1269 1270 } 1271 1272 @Override 1273 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 1274 switch (hash) { 1275 case 3575610: 1276 /* type */ return this.type == null ? new Base[0] : new Base[] { this.type }; // Enumeration<ChargeItemDefinitionPriceComponentType> 1277 case 3059181: 1278 /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeableConcept 1279 case -1282148017: 1280 /* factor */ return this.factor == null ? new Base[0] : new Base[] { this.factor }; // DecimalType 1281 case -1413853096: 1282 /* amount */ return this.amount == null ? new Base[0] : new Base[] { this.amount }; // Money 1283 default: 1284 return super.getProperty(hash, name, checkValid); 1285 } 1286 1287 } 1288 1289 @Override 1290 public Base setProperty(int hash, String name, Base value) throws FHIRException { 1291 switch (hash) { 1292 case 3575610: // type 1293 value = new ChargeItemDefinitionPriceComponentTypeEnumFactory().fromType(castToCode(value)); 1294 this.type = (Enumeration) value; // Enumeration<ChargeItemDefinitionPriceComponentType> 1295 return value; 1296 case 3059181: // code 1297 this.code = castToCodeableConcept(value); // CodeableConcept 1298 return value; 1299 case -1282148017: // factor 1300 this.factor = castToDecimal(value); // DecimalType 1301 return value; 1302 case -1413853096: // amount 1303 this.amount = castToMoney(value); // Money 1304 return value; 1305 default: 1306 return super.setProperty(hash, name, value); 1307 } 1308 1309 } 1310 1311 @Override 1312 public Base setProperty(String name, Base value) throws FHIRException { 1313 if (name.equals("type")) { 1314 value = new ChargeItemDefinitionPriceComponentTypeEnumFactory().fromType(castToCode(value)); 1315 this.type = (Enumeration) value; // Enumeration<ChargeItemDefinitionPriceComponentType> 1316 } else if (name.equals("code")) { 1317 this.code = castToCodeableConcept(value); // CodeableConcept 1318 } else if (name.equals("factor")) { 1319 this.factor = castToDecimal(value); // DecimalType 1320 } else if (name.equals("amount")) { 1321 this.amount = castToMoney(value); // Money 1322 } else 1323 return super.setProperty(name, value); 1324 return value; 1325 } 1326 1327 @Override 1328 public void removeChild(String name, Base value) throws FHIRException { 1329 if (name.equals("type")) { 1330 this.type = null; 1331 } else if (name.equals("code")) { 1332 this.code = null; 1333 } else if (name.equals("factor")) { 1334 this.factor = null; 1335 } else if (name.equals("amount")) { 1336 this.amount = null; 1337 } else 1338 super.removeChild(name, value); 1339 1340 } 1341 1342 @Override 1343 public Base makeProperty(int hash, String name) throws FHIRException { 1344 switch (hash) { 1345 case 3575610: 1346 return getTypeElement(); 1347 case 3059181: 1348 return getCode(); 1349 case -1282148017: 1350 return getFactorElement(); 1351 case -1413853096: 1352 return getAmount(); 1353 default: 1354 return super.makeProperty(hash, name); 1355 } 1356 1357 } 1358 1359 @Override 1360 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 1361 switch (hash) { 1362 case 3575610: 1363 /* type */ return new String[] { "code" }; 1364 case 3059181: 1365 /* code */ return new String[] { "CodeableConcept" }; 1366 case -1282148017: 1367 /* factor */ return new String[] { "decimal" }; 1368 case -1413853096: 1369 /* amount */ return new String[] { "Money" }; 1370 default: 1371 return super.getTypesForProperty(hash, name); 1372 } 1373 1374 } 1375 1376 @Override 1377 public Base addChild(String name) throws FHIRException { 1378 if (name.equals("type")) { 1379 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.type"); 1380 } else if (name.equals("code")) { 1381 this.code = new CodeableConcept(); 1382 return this.code; 1383 } else if (name.equals("factor")) { 1384 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.factor"); 1385 } else if (name.equals("amount")) { 1386 this.amount = new Money(); 1387 return this.amount; 1388 } else 1389 return super.addChild(name); 1390 } 1391 1392 public ChargeItemDefinitionPropertyGroupPriceComponentComponent copy() { 1393 ChargeItemDefinitionPropertyGroupPriceComponentComponent dst = new ChargeItemDefinitionPropertyGroupPriceComponentComponent(); 1394 copyValues(dst); 1395 return dst; 1396 } 1397 1398 public void copyValues(ChargeItemDefinitionPropertyGroupPriceComponentComponent dst) { 1399 super.copyValues(dst); 1400 dst.type = type == null ? null : type.copy(); 1401 dst.code = code == null ? null : code.copy(); 1402 dst.factor = factor == null ? null : factor.copy(); 1403 dst.amount = amount == null ? null : amount.copy(); 1404 } 1405 1406 @Override 1407 public boolean equalsDeep(Base other_) { 1408 if (!super.equalsDeep(other_)) 1409 return false; 1410 if (!(other_ instanceof ChargeItemDefinitionPropertyGroupPriceComponentComponent)) 1411 return false; 1412 ChargeItemDefinitionPropertyGroupPriceComponentComponent o = (ChargeItemDefinitionPropertyGroupPriceComponentComponent) other_; 1413 return compareDeep(type, o.type, true) && compareDeep(code, o.code, true) && compareDeep(factor, o.factor, true) 1414 && compareDeep(amount, o.amount, true); 1415 } 1416 1417 @Override 1418 public boolean equalsShallow(Base other_) { 1419 if (!super.equalsShallow(other_)) 1420 return false; 1421 if (!(other_ instanceof ChargeItemDefinitionPropertyGroupPriceComponentComponent)) 1422 return false; 1423 ChargeItemDefinitionPropertyGroupPriceComponentComponent o = (ChargeItemDefinitionPropertyGroupPriceComponentComponent) other_; 1424 return compareValues(type, o.type, true) && compareValues(factor, o.factor, true); 1425 } 1426 1427 public boolean isEmpty() { 1428 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(type, code, factor, amount); 1429 } 1430 1431 public String fhirType() { 1432 return "ChargeItemDefinition.propertyGroup.priceComponent"; 1433 1434 } 1435 1436 } 1437 1438 /** 1439 * A formal identifier that is used to identify this charge item definition when 1440 * it is represented in other formats, or referenced in a specification, model, 1441 * design or an instance. 1442 */ 1443 @Child(name = "identifier", type = { 1444 Identifier.class }, order = 0, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 1445 @Description(shortDefinition = "Additional identifier for the charge item definition", formalDefinition = "A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance.") 1446 protected List<Identifier> identifier; 1447 1448 /** 1449 * The URL pointing to an externally-defined charge item definition that is 1450 * adhered to in whole or in part by this definition. 1451 */ 1452 @Child(name = "derivedFromUri", type = { 1453 UriType.class }, order = 1, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 1454 @Description(shortDefinition = "Underlying externally-defined charge item definition", formalDefinition = "The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition.") 1455 protected List<UriType> derivedFromUri; 1456 1457 /** 1458 * A larger definition of which this particular definition is a component or 1459 * step. 1460 */ 1461 @Child(name = "partOf", type = { 1462 CanonicalType.class }, order = 2, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 1463 @Description(shortDefinition = "A larger definition of which this particular definition is a component or step", formalDefinition = "A larger definition of which this particular definition is a component or step.") 1464 protected List<CanonicalType> partOf; 1465 1466 /** 1467 * As new versions of a protocol or guideline are defined, allows identification 1468 * of what versions are replaced by a new instance. 1469 */ 1470 @Child(name = "replaces", type = { 1471 CanonicalType.class }, order = 3, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = true) 1472 @Description(shortDefinition = "Completed or terminated request(s) whose function is taken by this new request", formalDefinition = "As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance.") 1473 protected List<CanonicalType> replaces; 1474 1475 /** 1476 * A copyright statement relating to the charge item definition and/or its 1477 * contents. Copyright statements are generally legal restrictions on the use 1478 * and publishing of the charge item definition. 1479 */ 1480 @Child(name = "copyright", type = { 1481 MarkdownType.class }, order = 4, min = 0, max = 1, modifier = false, summary = false) 1482 @Description(shortDefinition = "Use and/or publishing restrictions", formalDefinition = "A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition.") 1483 protected MarkdownType copyright; 1484 1485 /** 1486 * The date on which the resource content was approved by the publisher. 1487 * Approval happens once when the content is officially approved for usage. 1488 */ 1489 @Child(name = "approvalDate", type = { 1490 DateType.class }, order = 5, min = 0, max = 1, modifier = false, summary = false) 1491 @Description(shortDefinition = "When the charge item definition was approved by publisher", formalDefinition = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.") 1492 protected DateType approvalDate; 1493 1494 /** 1495 * The date on which the resource content was last reviewed. Review happens 1496 * periodically after approval but does not change the original approval date. 1497 */ 1498 @Child(name = "lastReviewDate", type = { 1499 DateType.class }, order = 6, min = 0, max = 1, modifier = false, summary = false) 1500 @Description(shortDefinition = "When the charge item definition was last reviewed", formalDefinition = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.") 1501 protected DateType lastReviewDate; 1502 1503 /** 1504 * The period during which the charge item definition content was or is planned 1505 * to be in active use. 1506 */ 1507 @Child(name = "effectivePeriod", type = { 1508 Period.class }, order = 7, min = 0, max = 1, modifier = false, summary = true) 1509 @Description(shortDefinition = "When the charge item definition is expected to be used", formalDefinition = "The period during which the charge item definition content was or is planned to be in active use.") 1510 protected Period effectivePeriod; 1511 1512 /** 1513 * The defined billing details in this resource pertain to the given billing 1514 * code. 1515 */ 1516 @Child(name = "code", type = { CodeableConcept.class }, order = 8, min = 0, max = 1, modifier = false, summary = true) 1517 @Description(shortDefinition = "Billing codes or product types this definition applies to", formalDefinition = "The defined billing details in this resource pertain to the given billing code.") 1518 @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/chargeitem-billingcodes") 1519 protected CodeableConcept code; 1520 1521 /** 1522 * The defined billing details in this resource pertain to the given product 1523 * instance(s). 1524 */ 1525 @Child(name = "instance", type = { Medication.class, Substance.class, 1526 Device.class }, order = 9, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1527 @Description(shortDefinition = "Instances this definition applies to", formalDefinition = "The defined billing details in this resource pertain to the given product instance(s).") 1528 protected List<Reference> instance; 1529 /** 1530 * The actual objects that are the target of the reference (The defined billing 1531 * details in this resource pertain to the given product instance(s).) 1532 */ 1533 protected List<Resource> instanceTarget; 1534 1535 /** 1536 * Expressions that describe applicability criteria for the billing code. 1537 */ 1538 @Child(name = "applicability", type = {}, order = 10, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1539 @Description(shortDefinition = "Whether or not the billing code is applicable", formalDefinition = "Expressions that describe applicability criteria for the billing code.") 1540 protected List<ChargeItemDefinitionApplicabilityComponent> applicability; 1541 1542 /** 1543 * Group of properties which are applicable under the same conditions. If no 1544 * applicability rules are established for the group, then all properties always 1545 * apply. 1546 */ 1547 @Child(name = "propertyGroup", type = {}, order = 11, min = 0, max = Child.MAX_UNLIMITED, modifier = false, summary = false) 1548 @Description(shortDefinition = "Group of properties which are applicable under the same conditions", formalDefinition = "Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.") 1549 protected List<ChargeItemDefinitionPropertyGroupComponent> propertyGroup; 1550 1551 private static final long serialVersionUID = -583681330L; 1552 1553 /** 1554 * Constructor 1555 */ 1556 public ChargeItemDefinition() { 1557 super(); 1558 } 1559 1560 /** 1561 * Constructor 1562 */ 1563 public ChargeItemDefinition(UriType url, Enumeration<PublicationStatus> status) { 1564 super(); 1565 this.url = url; 1566 this.status = status; 1567 } 1568 1569 /** 1570 * @return {@link #url} (An absolute URI that is used to identify this charge 1571 * item definition when it is referenced in a specification, model, 1572 * design or an instance; also called its canonical identifier. This 1573 * SHOULD be globally unique and SHOULD be a literal address at which at 1574 * which an authoritative instance of this charge item definition is (or 1575 * will be) published. This URL can be the target of a canonical 1576 * reference. It SHALL remain the same when the charge item definition 1577 * is stored on different servers.). This is the underlying object with 1578 * id, value and extensions. The accessor "getUrl" gives direct access 1579 * to the value 1580 */ 1581 public UriType getUrlElement() { 1582 if (this.url == null) 1583 if (Configuration.errorOnAutoCreate()) 1584 throw new Error("Attempt to auto-create ChargeItemDefinition.url"); 1585 else if (Configuration.doAutoCreate()) 1586 this.url = new UriType(); // bb 1587 return this.url; 1588 } 1589 1590 public boolean hasUrlElement() { 1591 return this.url != null && !this.url.isEmpty(); 1592 } 1593 1594 public boolean hasUrl() { 1595 return this.url != null && !this.url.isEmpty(); 1596 } 1597 1598 /** 1599 * @param value {@link #url} (An absolute URI that is used to identify this 1600 * charge item definition when it is referenced in a specification, 1601 * model, design or an instance; also called its canonical 1602 * identifier. This SHOULD be globally unique and SHOULD be a 1603 * literal address at which at which an authoritative instance of 1604 * this charge item definition is (or will be) published. This URL 1605 * can be the target of a canonical reference. It SHALL remain the 1606 * same when the charge item definition is stored on different 1607 * servers.). This is the underlying object with id, value and 1608 * extensions. The accessor "getUrl" gives direct access to the 1609 * value 1610 */ 1611 public ChargeItemDefinition setUrlElement(UriType value) { 1612 this.url = value; 1613 return this; 1614 } 1615 1616 /** 1617 * @return An absolute URI that is used to identify this charge item definition 1618 * when it is referenced in a specification, model, design or an 1619 * instance; also called its canonical identifier. This SHOULD be 1620 * globally unique and SHOULD be a literal address at which at which an 1621 * authoritative instance of this charge item definition is (or will be) 1622 * published. This URL can be the target of a canonical reference. It 1623 * SHALL remain the same when the charge item definition is stored on 1624 * different servers. 1625 */ 1626 public String getUrl() { 1627 return this.url == null ? null : this.url.getValue(); 1628 } 1629 1630 /** 1631 * @param value An absolute URI that is used to identify this charge item 1632 * definition when it is referenced in a specification, model, 1633 * design or an instance; also called its canonical identifier. 1634 * This SHOULD be globally unique and SHOULD be a literal address 1635 * at which at which an authoritative instance of this charge item 1636 * definition is (or will be) published. This URL can be the target 1637 * of a canonical reference. It SHALL remain the same when the 1638 * charge item definition is stored on different servers. 1639 */ 1640 public ChargeItemDefinition setUrl(String value) { 1641 if (this.url == null) 1642 this.url = new UriType(); 1643 this.url.setValue(value); 1644 return this; 1645 } 1646 1647 /** 1648 * @return {@link #identifier} (A formal identifier that is used to identify 1649 * this charge item definition when it is represented in other formats, 1650 * or referenced in a specification, model, design or an instance.) 1651 */ 1652 public List<Identifier> getIdentifier() { 1653 if (this.identifier == null) 1654 this.identifier = new ArrayList<Identifier>(); 1655 return this.identifier; 1656 } 1657 1658 /** 1659 * @return Returns a reference to <code>this</code> for easy method chaining 1660 */ 1661 public ChargeItemDefinition setIdentifier(List<Identifier> theIdentifier) { 1662 this.identifier = theIdentifier; 1663 return this; 1664 } 1665 1666 public boolean hasIdentifier() { 1667 if (this.identifier == null) 1668 return false; 1669 for (Identifier item : this.identifier) 1670 if (!item.isEmpty()) 1671 return true; 1672 return false; 1673 } 1674 1675 public Identifier addIdentifier() { // 3 1676 Identifier t = new Identifier(); 1677 if (this.identifier == null) 1678 this.identifier = new ArrayList<Identifier>(); 1679 this.identifier.add(t); 1680 return t; 1681 } 1682 1683 public ChargeItemDefinition addIdentifier(Identifier t) { // 3 1684 if (t == null) 1685 return this; 1686 if (this.identifier == null) 1687 this.identifier = new ArrayList<Identifier>(); 1688 this.identifier.add(t); 1689 return this; 1690 } 1691 1692 /** 1693 * @return The first repetition of repeating field {@link #identifier}, creating 1694 * it if it does not already exist 1695 */ 1696 public Identifier getIdentifierFirstRep() { 1697 if (getIdentifier().isEmpty()) { 1698 addIdentifier(); 1699 } 1700 return getIdentifier().get(0); 1701 } 1702 1703 /** 1704 * @return {@link #version} (The identifier that is used to identify this 1705 * version of the charge item definition when it is referenced in a 1706 * specification, model, design or instance. This is an arbitrary value 1707 * managed by the charge item definition author and is not expected to 1708 * be globally unique. For example, it might be a timestamp (e.g. 1709 * yyyymmdd) if a managed version is not available. There is also no 1710 * expectation that versions can be placed in a lexicographical 1711 * sequence. To provide a version consistent with the Decision Support 1712 * Service specification, use the format Major.Minor.Revision (e.g. 1713 * 1.0.0). For more information on versioning knowledge assets, refer to 1714 * the Decision Support Service specification. Note that a version is 1715 * required for non-experimental active assets.). This is the underlying 1716 * object with id, value and extensions. The accessor "getVersion" gives 1717 * direct access to the value 1718 */ 1719 public StringType getVersionElement() { 1720 if (this.version == null) 1721 if (Configuration.errorOnAutoCreate()) 1722 throw new Error("Attempt to auto-create ChargeItemDefinition.version"); 1723 else if (Configuration.doAutoCreate()) 1724 this.version = new StringType(); // bb 1725 return this.version; 1726 } 1727 1728 public boolean hasVersionElement() { 1729 return this.version != null && !this.version.isEmpty(); 1730 } 1731 1732 public boolean hasVersion() { 1733 return this.version != null && !this.version.isEmpty(); 1734 } 1735 1736 /** 1737 * @param value {@link #version} (The identifier that is used to identify this 1738 * version of the charge item definition when it is referenced in a 1739 * specification, model, design or instance. This is an arbitrary 1740 * value managed by the charge item definition author and is not 1741 * expected to be globally unique. For example, it might be a 1742 * timestamp (e.g. yyyymmdd) if a managed version is not available. 1743 * There is also no expectation that versions can be placed in a 1744 * lexicographical sequence. To provide a version consistent with 1745 * the Decision Support Service specification, use the format 1746 * Major.Minor.Revision (e.g. 1.0.0). For more information on 1747 * versioning knowledge assets, refer to the Decision Support 1748 * Service specification. Note that a version is required for 1749 * non-experimental active assets.). This is the underlying object 1750 * with id, value and extensions. The accessor "getVersion" gives 1751 * direct access to the value 1752 */ 1753 public ChargeItemDefinition setVersionElement(StringType value) { 1754 this.version = value; 1755 return this; 1756 } 1757 1758 /** 1759 * @return The identifier that is used to identify this version of the charge 1760 * item definition when it is referenced in a specification, model, 1761 * design or instance. This is an arbitrary value managed by the charge 1762 * item definition author and is not expected to be globally unique. For 1763 * example, it might be a timestamp (e.g. yyyymmdd) if a managed version 1764 * is not available. There is also no expectation that versions can be 1765 * placed in a lexicographical sequence. To provide a version consistent 1766 * with the Decision Support Service specification, use the format 1767 * Major.Minor.Revision (e.g. 1.0.0). For more information on versioning 1768 * knowledge assets, refer to the Decision Support Service 1769 * specification. Note that a version is required for non-experimental 1770 * active assets. 1771 */ 1772 public String getVersion() { 1773 return this.version == null ? null : this.version.getValue(); 1774 } 1775 1776 /** 1777 * @param value The identifier that is used to identify this version of the 1778 * charge item definition when it is referenced in a specification, 1779 * model, design or instance. This is an arbitrary value managed by 1780 * the charge item definition author and is not expected to be 1781 * globally unique. For example, it might be a timestamp (e.g. 1782 * yyyymmdd) if a managed version is not available. There is also 1783 * no expectation that versions can be placed in a lexicographical 1784 * sequence. To provide a version consistent with the Decision 1785 * Support Service specification, use the format 1786 * Major.Minor.Revision (e.g. 1.0.0). For more information on 1787 * versioning knowledge assets, refer to the Decision Support 1788 * Service specification. Note that a version is required for 1789 * non-experimental active assets. 1790 */ 1791 public ChargeItemDefinition setVersion(String value) { 1792 if (Utilities.noString(value)) 1793 this.version = null; 1794 else { 1795 if (this.version == null) 1796 this.version = new StringType(); 1797 this.version.setValue(value); 1798 } 1799 return this; 1800 } 1801 1802 /** 1803 * @return {@link #title} (A short, descriptive, user-friendly title for the 1804 * charge item definition.). This is the underlying object with id, 1805 * value and extensions. The accessor "getTitle" gives direct access to 1806 * the value 1807 */ 1808 public StringType getTitleElement() { 1809 if (this.title == null) 1810 if (Configuration.errorOnAutoCreate()) 1811 throw new Error("Attempt to auto-create ChargeItemDefinition.title"); 1812 else if (Configuration.doAutoCreate()) 1813 this.title = new StringType(); // bb 1814 return this.title; 1815 } 1816 1817 public boolean hasTitleElement() { 1818 return this.title != null && !this.title.isEmpty(); 1819 } 1820 1821 public boolean hasTitle() { 1822 return this.title != null && !this.title.isEmpty(); 1823 } 1824 1825 /** 1826 * @param value {@link #title} (A short, descriptive, user-friendly title for 1827 * the charge item definition.). This is the underlying object with 1828 * id, value and extensions. The accessor "getTitle" gives direct 1829 * access to the value 1830 */ 1831 public ChargeItemDefinition setTitleElement(StringType value) { 1832 this.title = value; 1833 return this; 1834 } 1835 1836 /** 1837 * @return A short, descriptive, user-friendly title for the charge item 1838 * definition. 1839 */ 1840 public String getTitle() { 1841 return this.title == null ? null : this.title.getValue(); 1842 } 1843 1844 /** 1845 * @param value A short, descriptive, user-friendly title for the charge item 1846 * definition. 1847 */ 1848 public ChargeItemDefinition setTitle(String value) { 1849 if (Utilities.noString(value)) 1850 this.title = null; 1851 else { 1852 if (this.title == null) 1853 this.title = new StringType(); 1854 this.title.setValue(value); 1855 } 1856 return this; 1857 } 1858 1859 /** 1860 * @return {@link #derivedFromUri} (The URL pointing to an externally-defined 1861 * charge item definition that is adhered to in whole or in part by this 1862 * definition.) 1863 */ 1864 public List<UriType> getDerivedFromUri() { 1865 if (this.derivedFromUri == null) 1866 this.derivedFromUri = new ArrayList<UriType>(); 1867 return this.derivedFromUri; 1868 } 1869 1870 /** 1871 * @return Returns a reference to <code>this</code> for easy method chaining 1872 */ 1873 public ChargeItemDefinition setDerivedFromUri(List<UriType> theDerivedFromUri) { 1874 this.derivedFromUri = theDerivedFromUri; 1875 return this; 1876 } 1877 1878 public boolean hasDerivedFromUri() { 1879 if (this.derivedFromUri == null) 1880 return false; 1881 for (UriType item : this.derivedFromUri) 1882 if (!item.isEmpty()) 1883 return true; 1884 return false; 1885 } 1886 1887 /** 1888 * @return {@link #derivedFromUri} (The URL pointing to an externally-defined 1889 * charge item definition that is adhered to in whole or in part by this 1890 * definition.) 1891 */ 1892 public UriType addDerivedFromUriElement() {// 2 1893 UriType t = new UriType(); 1894 if (this.derivedFromUri == null) 1895 this.derivedFromUri = new ArrayList<UriType>(); 1896 this.derivedFromUri.add(t); 1897 return t; 1898 } 1899 1900 /** 1901 * @param value {@link #derivedFromUri} (The URL pointing to an 1902 * externally-defined charge item definition that is adhered to in 1903 * whole or in part by this definition.) 1904 */ 1905 public ChargeItemDefinition addDerivedFromUri(String value) { // 1 1906 UriType t = new UriType(); 1907 t.setValue(value); 1908 if (this.derivedFromUri == null) 1909 this.derivedFromUri = new ArrayList<UriType>(); 1910 this.derivedFromUri.add(t); 1911 return this; 1912 } 1913 1914 /** 1915 * @param value {@link #derivedFromUri} (The URL pointing to an 1916 * externally-defined charge item definition that is adhered to in 1917 * whole or in part by this definition.) 1918 */ 1919 public boolean hasDerivedFromUri(String value) { 1920 if (this.derivedFromUri == null) 1921 return false; 1922 for (UriType v : this.derivedFromUri) 1923 if (v.getValue().equals(value)) // uri 1924 return true; 1925 return false; 1926 } 1927 1928 /** 1929 * @return {@link #partOf} (A larger definition of which this particular 1930 * definition is a component or step.) 1931 */ 1932 public List<CanonicalType> getPartOf() { 1933 if (this.partOf == null) 1934 this.partOf = new ArrayList<CanonicalType>(); 1935 return this.partOf; 1936 } 1937 1938 /** 1939 * @return Returns a reference to <code>this</code> for easy method chaining 1940 */ 1941 public ChargeItemDefinition setPartOf(List<CanonicalType> thePartOf) { 1942 this.partOf = thePartOf; 1943 return this; 1944 } 1945 1946 public boolean hasPartOf() { 1947 if (this.partOf == null) 1948 return false; 1949 for (CanonicalType item : this.partOf) 1950 if (!item.isEmpty()) 1951 return true; 1952 return false; 1953 } 1954 1955 /** 1956 * @return {@link #partOf} (A larger definition of which this particular 1957 * definition is a component or step.) 1958 */ 1959 public CanonicalType addPartOfElement() {// 2 1960 CanonicalType t = new CanonicalType(); 1961 if (this.partOf == null) 1962 this.partOf = new ArrayList<CanonicalType>(); 1963 this.partOf.add(t); 1964 return t; 1965 } 1966 1967 /** 1968 * @param value {@link #partOf} (A larger definition of which this particular 1969 * definition is a component or step.) 1970 */ 1971 public ChargeItemDefinition addPartOf(String value) { // 1 1972 CanonicalType t = new CanonicalType(); 1973 t.setValue(value); 1974 if (this.partOf == null) 1975 this.partOf = new ArrayList<CanonicalType>(); 1976 this.partOf.add(t); 1977 return this; 1978 } 1979 1980 /** 1981 * @param value {@link #partOf} (A larger definition of which this particular 1982 * definition is a component or step.) 1983 */ 1984 public boolean hasPartOf(String value) { 1985 if (this.partOf == null) 1986 return false; 1987 for (CanonicalType v : this.partOf) 1988 if (v.getValue().equals(value)) // canonical(ChargeItemDefinition) 1989 return true; 1990 return false; 1991 } 1992 1993 /** 1994 * @return {@link #replaces} (As new versions of a protocol or guideline are 1995 * defined, allows identification of what versions are replaced by a new 1996 * instance.) 1997 */ 1998 public List<CanonicalType> getReplaces() { 1999 if (this.replaces == null) 2000 this.replaces = new ArrayList<CanonicalType>(); 2001 return this.replaces; 2002 } 2003 2004 /** 2005 * @return Returns a reference to <code>this</code> for easy method chaining 2006 */ 2007 public ChargeItemDefinition setReplaces(List<CanonicalType> theReplaces) { 2008 this.replaces = theReplaces; 2009 return this; 2010 } 2011 2012 public boolean hasReplaces() { 2013 if (this.replaces == null) 2014 return false; 2015 for (CanonicalType item : this.replaces) 2016 if (!item.isEmpty()) 2017 return true; 2018 return false; 2019 } 2020 2021 /** 2022 * @return {@link #replaces} (As new versions of a protocol or guideline are 2023 * defined, allows identification of what versions are replaced by a new 2024 * instance.) 2025 */ 2026 public CanonicalType addReplacesElement() {// 2 2027 CanonicalType t = new CanonicalType(); 2028 if (this.replaces == null) 2029 this.replaces = new ArrayList<CanonicalType>(); 2030 this.replaces.add(t); 2031 return t; 2032 } 2033 2034 /** 2035 * @param value {@link #replaces} (As new versions of a protocol or guideline 2036 * are defined, allows identification of what versions are replaced 2037 * by a new instance.) 2038 */ 2039 public ChargeItemDefinition addReplaces(String value) { // 1 2040 CanonicalType t = new CanonicalType(); 2041 t.setValue(value); 2042 if (this.replaces == null) 2043 this.replaces = new ArrayList<CanonicalType>(); 2044 this.replaces.add(t); 2045 return this; 2046 } 2047 2048 /** 2049 * @param value {@link #replaces} (As new versions of a protocol or guideline 2050 * are defined, allows identification of what versions are replaced 2051 * by a new instance.) 2052 */ 2053 public boolean hasReplaces(String value) { 2054 if (this.replaces == null) 2055 return false; 2056 for (CanonicalType v : this.replaces) 2057 if (v.getValue().equals(value)) // canonical(ChargeItemDefinition) 2058 return true; 2059 return false; 2060 } 2061 2062 /** 2063 * @return {@link #status} (The current state of the ChargeItemDefinition.). 2064 * This is the underlying object with id, value and extensions. The 2065 * accessor "getStatus" gives direct access to the value 2066 */ 2067 public Enumeration<PublicationStatus> getStatusElement() { 2068 if (this.status == null) 2069 if (Configuration.errorOnAutoCreate()) 2070 throw new Error("Attempt to auto-create ChargeItemDefinition.status"); 2071 else if (Configuration.doAutoCreate()) 2072 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); // bb 2073 return this.status; 2074 } 2075 2076 public boolean hasStatusElement() { 2077 return this.status != null && !this.status.isEmpty(); 2078 } 2079 2080 public boolean hasStatus() { 2081 return this.status != null && !this.status.isEmpty(); 2082 } 2083 2084 /** 2085 * @param value {@link #status} (The current state of the 2086 * ChargeItemDefinition.). This is the underlying object with id, 2087 * value and extensions. The accessor "getStatus" gives direct 2088 * access to the value 2089 */ 2090 public ChargeItemDefinition setStatusElement(Enumeration<PublicationStatus> value) { 2091 this.status = value; 2092 return this; 2093 } 2094 2095 /** 2096 * @return The current state of the ChargeItemDefinition. 2097 */ 2098 public PublicationStatus getStatus() { 2099 return this.status == null ? null : this.status.getValue(); 2100 } 2101 2102 /** 2103 * @param value The current state of the ChargeItemDefinition. 2104 */ 2105 public ChargeItemDefinition setStatus(PublicationStatus value) { 2106 if (this.status == null) 2107 this.status = new Enumeration<PublicationStatus>(new PublicationStatusEnumFactory()); 2108 this.status.setValue(value); 2109 return this; 2110 } 2111 2112 /** 2113 * @return {@link #experimental} (A Boolean value to indicate that this charge 2114 * item definition is authored for testing purposes (or 2115 * education/evaluation/marketing) and is not intended to be used for 2116 * genuine usage.). This is the underlying object with id, value and 2117 * extensions. The accessor "getExperimental" gives direct access to the 2118 * value 2119 */ 2120 public BooleanType getExperimentalElement() { 2121 if (this.experimental == null) 2122 if (Configuration.errorOnAutoCreate()) 2123 throw new Error("Attempt to auto-create ChargeItemDefinition.experimental"); 2124 else if (Configuration.doAutoCreate()) 2125 this.experimental = new BooleanType(); // bb 2126 return this.experimental; 2127 } 2128 2129 public boolean hasExperimentalElement() { 2130 return this.experimental != null && !this.experimental.isEmpty(); 2131 } 2132 2133 public boolean hasExperimental() { 2134 return this.experimental != null && !this.experimental.isEmpty(); 2135 } 2136 2137 /** 2138 * @param value {@link #experimental} (A Boolean value to indicate that this 2139 * charge item definition is authored for testing purposes (or 2140 * education/evaluation/marketing) and is not intended to be used 2141 * for genuine usage.). This is the underlying object with id, 2142 * value and extensions. The accessor "getExperimental" gives 2143 * direct access to the value 2144 */ 2145 public ChargeItemDefinition setExperimentalElement(BooleanType value) { 2146 this.experimental = value; 2147 return this; 2148 } 2149 2150 /** 2151 * @return A Boolean value to indicate that this charge item definition is 2152 * authored for testing purposes (or education/evaluation/marketing) and 2153 * is not intended to be used for genuine usage. 2154 */ 2155 public boolean getExperimental() { 2156 return this.experimental == null || this.experimental.isEmpty() ? false : this.experimental.getValue(); 2157 } 2158 2159 /** 2160 * @param value A Boolean value to indicate that this charge item definition is 2161 * authored for testing purposes (or 2162 * education/evaluation/marketing) and is not intended to be used 2163 * for genuine usage. 2164 */ 2165 public ChargeItemDefinition setExperimental(boolean value) { 2166 if (this.experimental == null) 2167 this.experimental = new BooleanType(); 2168 this.experimental.setValue(value); 2169 return this; 2170 } 2171 2172 /** 2173 * @return {@link #date} (The date (and optionally time) when the charge item 2174 * definition was published. The date must change when the business 2175 * version changes and it must change if the status code changes. In 2176 * addition, it should change when the substantive content of the charge 2177 * item definition changes.). This is the underlying object with id, 2178 * value and extensions. The accessor "getDate" gives direct access to 2179 * the value 2180 */ 2181 public DateTimeType getDateElement() { 2182 if (this.date == null) 2183 if (Configuration.errorOnAutoCreate()) 2184 throw new Error("Attempt to auto-create ChargeItemDefinition.date"); 2185 else if (Configuration.doAutoCreate()) 2186 this.date = new DateTimeType(); // bb 2187 return this.date; 2188 } 2189 2190 public boolean hasDateElement() { 2191 return this.date != null && !this.date.isEmpty(); 2192 } 2193 2194 public boolean hasDate() { 2195 return this.date != null && !this.date.isEmpty(); 2196 } 2197 2198 /** 2199 * @param value {@link #date} (The date (and optionally time) when the charge 2200 * item definition was published. The date must change when the 2201 * business version changes and it must change if the status code 2202 * changes. In addition, it should change when the substantive 2203 * content of the charge item definition changes.). This is the 2204 * underlying object with id, value and extensions. The accessor 2205 * "getDate" gives direct access to the value 2206 */ 2207 public ChargeItemDefinition setDateElement(DateTimeType value) { 2208 this.date = value; 2209 return this; 2210 } 2211 2212 /** 2213 * @return The date (and optionally time) when the charge item definition was 2214 * published. The date must change when the business version changes and 2215 * it must change if the status code changes. In addition, it should 2216 * change when the substantive content of the charge item definition 2217 * changes. 2218 */ 2219 public Date getDate() { 2220 return this.date == null ? null : this.date.getValue(); 2221 } 2222 2223 /** 2224 * @param value The date (and optionally time) when the charge item definition 2225 * was published. The date must change when the business version 2226 * changes and it must change if the status code changes. In 2227 * addition, it should change when the substantive content of the 2228 * charge item definition changes. 2229 */ 2230 public ChargeItemDefinition setDate(Date value) { 2231 if (value == null) 2232 this.date = null; 2233 else { 2234 if (this.date == null) 2235 this.date = new DateTimeType(); 2236 this.date.setValue(value); 2237 } 2238 return this; 2239 } 2240 2241 /** 2242 * @return {@link #publisher} (The name of the organization or individual that 2243 * published the charge item definition.). This is the underlying object 2244 * with id, value and extensions. The accessor "getPublisher" gives 2245 * direct access to the value 2246 */ 2247 public StringType getPublisherElement() { 2248 if (this.publisher == null) 2249 if (Configuration.errorOnAutoCreate()) 2250 throw new Error("Attempt to auto-create ChargeItemDefinition.publisher"); 2251 else if (Configuration.doAutoCreate()) 2252 this.publisher = new StringType(); // bb 2253 return this.publisher; 2254 } 2255 2256 public boolean hasPublisherElement() { 2257 return this.publisher != null && !this.publisher.isEmpty(); 2258 } 2259 2260 public boolean hasPublisher() { 2261 return this.publisher != null && !this.publisher.isEmpty(); 2262 } 2263 2264 /** 2265 * @param value {@link #publisher} (The name of the organization or individual 2266 * that published the charge item definition.). This is the 2267 * underlying object with id, value and extensions. The accessor 2268 * "getPublisher" gives direct access to the value 2269 */ 2270 public ChargeItemDefinition setPublisherElement(StringType value) { 2271 this.publisher = value; 2272 return this; 2273 } 2274 2275 /** 2276 * @return The name of the organization or individual that published the charge 2277 * item definition. 2278 */ 2279 public String getPublisher() { 2280 return this.publisher == null ? null : this.publisher.getValue(); 2281 } 2282 2283 /** 2284 * @param value The name of the organization or individual that published the 2285 * charge item definition. 2286 */ 2287 public ChargeItemDefinition setPublisher(String value) { 2288 if (Utilities.noString(value)) 2289 this.publisher = null; 2290 else { 2291 if (this.publisher == null) 2292 this.publisher = new StringType(); 2293 this.publisher.setValue(value); 2294 } 2295 return this; 2296 } 2297 2298 /** 2299 * @return {@link #contact} (Contact details to assist a user in finding and 2300 * communicating with the publisher.) 2301 */ 2302 public List<ContactDetail> getContact() { 2303 if (this.contact == null) 2304 this.contact = new ArrayList<ContactDetail>(); 2305 return this.contact; 2306 } 2307 2308 /** 2309 * @return Returns a reference to <code>this</code> for easy method chaining 2310 */ 2311 public ChargeItemDefinition setContact(List<ContactDetail> theContact) { 2312 this.contact = theContact; 2313 return this; 2314 } 2315 2316 public boolean hasContact() { 2317 if (this.contact == null) 2318 return false; 2319 for (ContactDetail item : this.contact) 2320 if (!item.isEmpty()) 2321 return true; 2322 return false; 2323 } 2324 2325 public ContactDetail addContact() { // 3 2326 ContactDetail t = new ContactDetail(); 2327 if (this.contact == null) 2328 this.contact = new ArrayList<ContactDetail>(); 2329 this.contact.add(t); 2330 return t; 2331 } 2332 2333 public ChargeItemDefinition addContact(ContactDetail t) { // 3 2334 if (t == null) 2335 return this; 2336 if (this.contact == null) 2337 this.contact = new ArrayList<ContactDetail>(); 2338 this.contact.add(t); 2339 return this; 2340 } 2341 2342 /** 2343 * @return The first repetition of repeating field {@link #contact}, creating it 2344 * if it does not already exist 2345 */ 2346 public ContactDetail getContactFirstRep() { 2347 if (getContact().isEmpty()) { 2348 addContact(); 2349 } 2350 return getContact().get(0); 2351 } 2352 2353 /** 2354 * @return {@link #description} (A free text natural language description of the 2355 * charge item definition from a consumer's perspective.). This is the 2356 * underlying object with id, value and extensions. The accessor 2357 * "getDescription" gives direct access to the value 2358 */ 2359 public MarkdownType getDescriptionElement() { 2360 if (this.description == null) 2361 if (Configuration.errorOnAutoCreate()) 2362 throw new Error("Attempt to auto-create ChargeItemDefinition.description"); 2363 else if (Configuration.doAutoCreate()) 2364 this.description = new MarkdownType(); // bb 2365 return this.description; 2366 } 2367 2368 public boolean hasDescriptionElement() { 2369 return this.description != null && !this.description.isEmpty(); 2370 } 2371 2372 public boolean hasDescription() { 2373 return this.description != null && !this.description.isEmpty(); 2374 } 2375 2376 /** 2377 * @param value {@link #description} (A free text natural language description 2378 * of the charge item definition from a consumer's perspective.). 2379 * This is the underlying object with id, value and extensions. The 2380 * accessor "getDescription" gives direct access to the value 2381 */ 2382 public ChargeItemDefinition setDescriptionElement(MarkdownType value) { 2383 this.description = value; 2384 return this; 2385 } 2386 2387 /** 2388 * @return A free text natural language description of the charge item 2389 * definition from a consumer's perspective. 2390 */ 2391 public String getDescription() { 2392 return this.description == null ? null : this.description.getValue(); 2393 } 2394 2395 /** 2396 * @param value A free text natural language description of the charge item 2397 * definition from a consumer's perspective. 2398 */ 2399 public ChargeItemDefinition setDescription(String value) { 2400 if (value == null) 2401 this.description = null; 2402 else { 2403 if (this.description == null) 2404 this.description = new MarkdownType(); 2405 this.description.setValue(value); 2406 } 2407 return this; 2408 } 2409 2410 /** 2411 * @return {@link #useContext} (The content was developed with a focus and 2412 * intent of supporting the contexts that are listed. These contexts may 2413 * be general categories (gender, age, ...) or may be references to 2414 * specific programs (insurance plans, studies, ...) and may be used to 2415 * assist with indexing and searching for appropriate charge item 2416 * definition instances.) 2417 */ 2418 public List<UsageContext> getUseContext() { 2419 if (this.useContext == null) 2420 this.useContext = new ArrayList<UsageContext>(); 2421 return this.useContext; 2422 } 2423 2424 /** 2425 * @return Returns a reference to <code>this</code> for easy method chaining 2426 */ 2427 public ChargeItemDefinition setUseContext(List<UsageContext> theUseContext) { 2428 this.useContext = theUseContext; 2429 return this; 2430 } 2431 2432 public boolean hasUseContext() { 2433 if (this.useContext == null) 2434 return false; 2435 for (UsageContext item : this.useContext) 2436 if (!item.isEmpty()) 2437 return true; 2438 return false; 2439 } 2440 2441 public UsageContext addUseContext() { // 3 2442 UsageContext t = new UsageContext(); 2443 if (this.useContext == null) 2444 this.useContext = new ArrayList<UsageContext>(); 2445 this.useContext.add(t); 2446 return t; 2447 } 2448 2449 public ChargeItemDefinition addUseContext(UsageContext t) { // 3 2450 if (t == null) 2451 return this; 2452 if (this.useContext == null) 2453 this.useContext = new ArrayList<UsageContext>(); 2454 this.useContext.add(t); 2455 return this; 2456 } 2457 2458 /** 2459 * @return The first repetition of repeating field {@link #useContext}, creating 2460 * it if it does not already exist 2461 */ 2462 public UsageContext getUseContextFirstRep() { 2463 if (getUseContext().isEmpty()) { 2464 addUseContext(); 2465 } 2466 return getUseContext().get(0); 2467 } 2468 2469 /** 2470 * @return {@link #jurisdiction} (A legal or geographic region in which the 2471 * charge item definition is intended to be used.) 2472 */ 2473 public List<CodeableConcept> getJurisdiction() { 2474 if (this.jurisdiction == null) 2475 this.jurisdiction = new ArrayList<CodeableConcept>(); 2476 return this.jurisdiction; 2477 } 2478 2479 /** 2480 * @return Returns a reference to <code>this</code> for easy method chaining 2481 */ 2482 public ChargeItemDefinition setJurisdiction(List<CodeableConcept> theJurisdiction) { 2483 this.jurisdiction = theJurisdiction; 2484 return this; 2485 } 2486 2487 public boolean hasJurisdiction() { 2488 if (this.jurisdiction == null) 2489 return false; 2490 for (CodeableConcept item : this.jurisdiction) 2491 if (!item.isEmpty()) 2492 return true; 2493 return false; 2494 } 2495 2496 public CodeableConcept addJurisdiction() { // 3 2497 CodeableConcept t = new CodeableConcept(); 2498 if (this.jurisdiction == null) 2499 this.jurisdiction = new ArrayList<CodeableConcept>(); 2500 this.jurisdiction.add(t); 2501 return t; 2502 } 2503 2504 public ChargeItemDefinition addJurisdiction(CodeableConcept t) { // 3 2505 if (t == null) 2506 return this; 2507 if (this.jurisdiction == null) 2508 this.jurisdiction = new ArrayList<CodeableConcept>(); 2509 this.jurisdiction.add(t); 2510 return this; 2511 } 2512 2513 /** 2514 * @return The first repetition of repeating field {@link #jurisdiction}, 2515 * creating it if it does not already exist 2516 */ 2517 public CodeableConcept getJurisdictionFirstRep() { 2518 if (getJurisdiction().isEmpty()) { 2519 addJurisdiction(); 2520 } 2521 return getJurisdiction().get(0); 2522 } 2523 2524 /** 2525 * @return {@link #copyright} (A copyright statement relating to the charge item 2526 * definition and/or its contents. Copyright statements are generally 2527 * legal restrictions on the use and publishing of the charge item 2528 * definition.). This is the underlying object with id, value and 2529 * extensions. The accessor "getCopyright" gives direct access to the 2530 * value 2531 */ 2532 public MarkdownType getCopyrightElement() { 2533 if (this.copyright == null) 2534 if (Configuration.errorOnAutoCreate()) 2535 throw new Error("Attempt to auto-create ChargeItemDefinition.copyright"); 2536 else if (Configuration.doAutoCreate()) 2537 this.copyright = new MarkdownType(); // bb 2538 return this.copyright; 2539 } 2540 2541 public boolean hasCopyrightElement() { 2542 return this.copyright != null && !this.copyright.isEmpty(); 2543 } 2544 2545 public boolean hasCopyright() { 2546 return this.copyright != null && !this.copyright.isEmpty(); 2547 } 2548 2549 /** 2550 * @param value {@link #copyright} (A copyright statement relating to the charge 2551 * item definition and/or its contents. Copyright statements are 2552 * generally legal restrictions on the use and publishing of the 2553 * charge item definition.). This is the underlying object with id, 2554 * value and extensions. The accessor "getCopyright" gives direct 2555 * access to the value 2556 */ 2557 public ChargeItemDefinition setCopyrightElement(MarkdownType value) { 2558 this.copyright = value; 2559 return this; 2560 } 2561 2562 /** 2563 * @return A copyright statement relating to the charge item definition and/or 2564 * its contents. Copyright statements are generally legal restrictions 2565 * on the use and publishing of the charge item definition. 2566 */ 2567 public String getCopyright() { 2568 return this.copyright == null ? null : this.copyright.getValue(); 2569 } 2570 2571 /** 2572 * @param value A copyright statement relating to the charge item definition 2573 * and/or its contents. Copyright statements are generally legal 2574 * restrictions on the use and publishing of the charge item 2575 * definition. 2576 */ 2577 public ChargeItemDefinition setCopyright(String value) { 2578 if (value == null) 2579 this.copyright = null; 2580 else { 2581 if (this.copyright == null) 2582 this.copyright = new MarkdownType(); 2583 this.copyright.setValue(value); 2584 } 2585 return this; 2586 } 2587 2588 /** 2589 * @return {@link #approvalDate} (The date on which the resource content was 2590 * approved by the publisher. Approval happens once when the content is 2591 * officially approved for usage.). This is the underlying object with 2592 * id, value and extensions. The accessor "getApprovalDate" gives direct 2593 * access to the value 2594 */ 2595 public DateType getApprovalDateElement() { 2596 if (this.approvalDate == null) 2597 if (Configuration.errorOnAutoCreate()) 2598 throw new Error("Attempt to auto-create ChargeItemDefinition.approvalDate"); 2599 else if (Configuration.doAutoCreate()) 2600 this.approvalDate = new DateType(); // bb 2601 return this.approvalDate; 2602 } 2603 2604 public boolean hasApprovalDateElement() { 2605 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2606 } 2607 2608 public boolean hasApprovalDate() { 2609 return this.approvalDate != null && !this.approvalDate.isEmpty(); 2610 } 2611 2612 /** 2613 * @param value {@link #approvalDate} (The date on which the resource content 2614 * was approved by the publisher. Approval happens once when the 2615 * content is officially approved for usage.). This is the 2616 * underlying object with id, value and extensions. The accessor 2617 * "getApprovalDate" gives direct access to the value 2618 */ 2619 public ChargeItemDefinition setApprovalDateElement(DateType value) { 2620 this.approvalDate = value; 2621 return this; 2622 } 2623 2624 /** 2625 * @return The date on which the resource content was approved by the publisher. 2626 * Approval happens once when the content is officially approved for 2627 * usage. 2628 */ 2629 public Date getApprovalDate() { 2630 return this.approvalDate == null ? null : this.approvalDate.getValue(); 2631 } 2632 2633 /** 2634 * @param value The date on which the resource content was approved by the 2635 * publisher. Approval happens once when the content is officially 2636 * approved for usage. 2637 */ 2638 public ChargeItemDefinition setApprovalDate(Date value) { 2639 if (value == null) 2640 this.approvalDate = null; 2641 else { 2642 if (this.approvalDate == null) 2643 this.approvalDate = new DateType(); 2644 this.approvalDate.setValue(value); 2645 } 2646 return this; 2647 } 2648 2649 /** 2650 * @return {@link #lastReviewDate} (The date on which the resource content was 2651 * last reviewed. Review happens periodically after approval but does 2652 * not change the original approval date.). This is the underlying 2653 * object with id, value and extensions. The accessor 2654 * "getLastReviewDate" gives direct access to the value 2655 */ 2656 public DateType getLastReviewDateElement() { 2657 if (this.lastReviewDate == null) 2658 if (Configuration.errorOnAutoCreate()) 2659 throw new Error("Attempt to auto-create ChargeItemDefinition.lastReviewDate"); 2660 else if (Configuration.doAutoCreate()) 2661 this.lastReviewDate = new DateType(); // bb 2662 return this.lastReviewDate; 2663 } 2664 2665 public boolean hasLastReviewDateElement() { 2666 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2667 } 2668 2669 public boolean hasLastReviewDate() { 2670 return this.lastReviewDate != null && !this.lastReviewDate.isEmpty(); 2671 } 2672 2673 /** 2674 * @param value {@link #lastReviewDate} (The date on which the resource content 2675 * was last reviewed. Review happens periodically after approval 2676 * but does not change the original approval date.). This is the 2677 * underlying object with id, value and extensions. The accessor 2678 * "getLastReviewDate" gives direct access to the value 2679 */ 2680 public ChargeItemDefinition setLastReviewDateElement(DateType value) { 2681 this.lastReviewDate = value; 2682 return this; 2683 } 2684 2685 /** 2686 * @return The date on which the resource content was last reviewed. Review 2687 * happens periodically after approval but does not change the original 2688 * approval date. 2689 */ 2690 public Date getLastReviewDate() { 2691 return this.lastReviewDate == null ? null : this.lastReviewDate.getValue(); 2692 } 2693 2694 /** 2695 * @param value The date on which the resource content was last reviewed. Review 2696 * happens periodically after approval but does not change the 2697 * original approval date. 2698 */ 2699 public ChargeItemDefinition setLastReviewDate(Date value) { 2700 if (value == null) 2701 this.lastReviewDate = null; 2702 else { 2703 if (this.lastReviewDate == null) 2704 this.lastReviewDate = new DateType(); 2705 this.lastReviewDate.setValue(value); 2706 } 2707 return this; 2708 } 2709 2710 /** 2711 * @return {@link #effectivePeriod} (The period during which the charge item 2712 * definition content was or is planned to be in active use.) 2713 */ 2714 public Period getEffectivePeriod() { 2715 if (this.effectivePeriod == null) 2716 if (Configuration.errorOnAutoCreate()) 2717 throw new Error("Attempt to auto-create ChargeItemDefinition.effectivePeriod"); 2718 else if (Configuration.doAutoCreate()) 2719 this.effectivePeriod = new Period(); // cc 2720 return this.effectivePeriod; 2721 } 2722 2723 public boolean hasEffectivePeriod() { 2724 return this.effectivePeriod != null && !this.effectivePeriod.isEmpty(); 2725 } 2726 2727 /** 2728 * @param value {@link #effectivePeriod} (The period during which the charge 2729 * item definition content was or is planned to be in active use.) 2730 */ 2731 public ChargeItemDefinition setEffectivePeriod(Period value) { 2732 this.effectivePeriod = value; 2733 return this; 2734 } 2735 2736 /** 2737 * @return {@link #code} (The defined billing details in this resource pertain 2738 * to the given billing code.) 2739 */ 2740 public CodeableConcept getCode() { 2741 if (this.code == null) 2742 if (Configuration.errorOnAutoCreate()) 2743 throw new Error("Attempt to auto-create ChargeItemDefinition.code"); 2744 else if (Configuration.doAutoCreate()) 2745 this.code = new CodeableConcept(); // cc 2746 return this.code; 2747 } 2748 2749 public boolean hasCode() { 2750 return this.code != null && !this.code.isEmpty(); 2751 } 2752 2753 /** 2754 * @param value {@link #code} (The defined billing details in this resource 2755 * pertain to the given billing code.) 2756 */ 2757 public ChargeItemDefinition setCode(CodeableConcept value) { 2758 this.code = value; 2759 return this; 2760 } 2761 2762 /** 2763 * @return {@link #instance} (The defined billing details in this resource 2764 * pertain to the given product instance(s).) 2765 */ 2766 public List<Reference> getInstance() { 2767 if (this.instance == null) 2768 this.instance = new ArrayList<Reference>(); 2769 return this.instance; 2770 } 2771 2772 /** 2773 * @return Returns a reference to <code>this</code> for easy method chaining 2774 */ 2775 public ChargeItemDefinition setInstance(List<Reference> theInstance) { 2776 this.instance = theInstance; 2777 return this; 2778 } 2779 2780 public boolean hasInstance() { 2781 if (this.instance == null) 2782 return false; 2783 for (Reference item : this.instance) 2784 if (!item.isEmpty()) 2785 return true; 2786 return false; 2787 } 2788 2789 public Reference addInstance() { // 3 2790 Reference t = new Reference(); 2791 if (this.instance == null) 2792 this.instance = new ArrayList<Reference>(); 2793 this.instance.add(t); 2794 return t; 2795 } 2796 2797 public ChargeItemDefinition addInstance(Reference t) { // 3 2798 if (t == null) 2799 return this; 2800 if (this.instance == null) 2801 this.instance = new ArrayList<Reference>(); 2802 this.instance.add(t); 2803 return this; 2804 } 2805 2806 /** 2807 * @return The first repetition of repeating field {@link #instance}, creating 2808 * it if it does not already exist 2809 */ 2810 public Reference getInstanceFirstRep() { 2811 if (getInstance().isEmpty()) { 2812 addInstance(); 2813 } 2814 return getInstance().get(0); 2815 } 2816 2817 /** 2818 * @return {@link #applicability} (Expressions that describe applicability 2819 * criteria for the billing code.) 2820 */ 2821 public List<ChargeItemDefinitionApplicabilityComponent> getApplicability() { 2822 if (this.applicability == null) 2823 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 2824 return this.applicability; 2825 } 2826 2827 /** 2828 * @return Returns a reference to <code>this</code> for easy method chaining 2829 */ 2830 public ChargeItemDefinition setApplicability(List<ChargeItemDefinitionApplicabilityComponent> theApplicability) { 2831 this.applicability = theApplicability; 2832 return this; 2833 } 2834 2835 public boolean hasApplicability() { 2836 if (this.applicability == null) 2837 return false; 2838 for (ChargeItemDefinitionApplicabilityComponent item : this.applicability) 2839 if (!item.isEmpty()) 2840 return true; 2841 return false; 2842 } 2843 2844 public ChargeItemDefinitionApplicabilityComponent addApplicability() { // 3 2845 ChargeItemDefinitionApplicabilityComponent t = new ChargeItemDefinitionApplicabilityComponent(); 2846 if (this.applicability == null) 2847 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 2848 this.applicability.add(t); 2849 return t; 2850 } 2851 2852 public ChargeItemDefinition addApplicability(ChargeItemDefinitionApplicabilityComponent t) { // 3 2853 if (t == null) 2854 return this; 2855 if (this.applicability == null) 2856 this.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 2857 this.applicability.add(t); 2858 return this; 2859 } 2860 2861 /** 2862 * @return The first repetition of repeating field {@link #applicability}, 2863 * creating it if it does not already exist 2864 */ 2865 public ChargeItemDefinitionApplicabilityComponent getApplicabilityFirstRep() { 2866 if (getApplicability().isEmpty()) { 2867 addApplicability(); 2868 } 2869 return getApplicability().get(0); 2870 } 2871 2872 /** 2873 * @return {@link #propertyGroup} (Group of properties which are applicable 2874 * under the same conditions. If no applicability rules are established 2875 * for the group, then all properties always apply.) 2876 */ 2877 public List<ChargeItemDefinitionPropertyGroupComponent> getPropertyGroup() { 2878 if (this.propertyGroup == null) 2879 this.propertyGroup = new ArrayList<ChargeItemDefinitionPropertyGroupComponent>(); 2880 return this.propertyGroup; 2881 } 2882 2883 /** 2884 * @return Returns a reference to <code>this</code> for easy method chaining 2885 */ 2886 public ChargeItemDefinition setPropertyGroup(List<ChargeItemDefinitionPropertyGroupComponent> thePropertyGroup) { 2887 this.propertyGroup = thePropertyGroup; 2888 return this; 2889 } 2890 2891 public boolean hasPropertyGroup() { 2892 if (this.propertyGroup == null) 2893 return false; 2894 for (ChargeItemDefinitionPropertyGroupComponent item : this.propertyGroup) 2895 if (!item.isEmpty()) 2896 return true; 2897 return false; 2898 } 2899 2900 public ChargeItemDefinitionPropertyGroupComponent addPropertyGroup() { // 3 2901 ChargeItemDefinitionPropertyGroupComponent t = new ChargeItemDefinitionPropertyGroupComponent(); 2902 if (this.propertyGroup == null) 2903 this.propertyGroup = new ArrayList<ChargeItemDefinitionPropertyGroupComponent>(); 2904 this.propertyGroup.add(t); 2905 return t; 2906 } 2907 2908 public ChargeItemDefinition addPropertyGroup(ChargeItemDefinitionPropertyGroupComponent t) { // 3 2909 if (t == null) 2910 return this; 2911 if (this.propertyGroup == null) 2912 this.propertyGroup = new ArrayList<ChargeItemDefinitionPropertyGroupComponent>(); 2913 this.propertyGroup.add(t); 2914 return this; 2915 } 2916 2917 /** 2918 * @return The first repetition of repeating field {@link #propertyGroup}, 2919 * creating it if it does not already exist 2920 */ 2921 public ChargeItemDefinitionPropertyGroupComponent getPropertyGroupFirstRep() { 2922 if (getPropertyGroup().isEmpty()) { 2923 addPropertyGroup(); 2924 } 2925 return getPropertyGroup().get(0); 2926 } 2927 2928 protected void listChildren(List<Property> children) { 2929 super.listChildren(children); 2930 children.add(new Property("url", "uri", 2931 "An absolute URI that is used to identify this charge item definition 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 charge item definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the charge item definition is stored on different servers.", 2932 0, 1, url)); 2933 children.add(new Property("identifier", "Identifier", 2934 "A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance.", 2935 0, java.lang.Integer.MAX_VALUE, identifier)); 2936 children.add(new Property("version", "string", 2937 "The identifier that is used to identify this version of the charge item definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the charge item definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.", 2938 0, 1, version)); 2939 children.add(new Property("title", "string", 2940 "A short, descriptive, user-friendly title for the charge item definition.", 0, 1, title)); 2941 children.add(new Property("derivedFromUri", "uri", 2942 "The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition.", 2943 0, java.lang.Integer.MAX_VALUE, derivedFromUri)); 2944 children.add(new Property("partOf", "canonical(ChargeItemDefinition)", 2945 "A larger definition of which this particular definition is a component or step.", 0, 2946 java.lang.Integer.MAX_VALUE, partOf)); 2947 children.add(new Property("replaces", "canonical(ChargeItemDefinition)", 2948 "As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance.", 2949 0, java.lang.Integer.MAX_VALUE, replaces)); 2950 children.add(new Property("status", "code", "The current state of the ChargeItemDefinition.", 0, 1, status)); 2951 children.add(new Property("experimental", "boolean", 2952 "A Boolean value to indicate that this charge item definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 2953 0, 1, experimental)); 2954 children.add(new Property("date", "dateTime", 2955 "The date (and optionally time) when the charge item definition 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 charge item definition changes.", 2956 0, 1, date)); 2957 children.add(new Property("publisher", "string", 2958 "The name of the organization or individual that published the charge item definition.", 0, 1, publisher)); 2959 children.add(new Property("contact", "ContactDetail", 2960 "Contact details to assist a user in finding and communicating with the publisher.", 0, 2961 java.lang.Integer.MAX_VALUE, contact)); 2962 children.add(new Property("description", "markdown", 2963 "A free text natural language description of the charge item definition from a consumer's perspective.", 0, 1, 2964 description)); 2965 children.add(new Property("useContext", "UsageContext", 2966 "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 charge item definition instances.", 2967 0, java.lang.Integer.MAX_VALUE, useContext)); 2968 children.add(new Property("jurisdiction", "CodeableConcept", 2969 "A legal or geographic region in which the charge item definition is intended to be used.", 0, 2970 java.lang.Integer.MAX_VALUE, jurisdiction)); 2971 children.add(new Property("copyright", "markdown", 2972 "A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition.", 2973 0, 1, copyright)); 2974 children.add(new Property("approvalDate", "date", 2975 "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 2976 0, 1, approvalDate)); 2977 children.add(new Property("lastReviewDate", "date", 2978 "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 2979 0, 1, lastReviewDate)); 2980 children.add(new Property("effectivePeriod", "Period", 2981 "The period during which the charge item definition content was or is planned to be in active use.", 0, 1, 2982 effectivePeriod)); 2983 children.add(new Property("code", "CodeableConcept", 2984 "The defined billing details in this resource pertain to the given billing code.", 0, 1, code)); 2985 children.add(new Property("instance", "Reference(Medication|Substance|Device)", 2986 "The defined billing details in this resource pertain to the given product instance(s).", 0, 2987 java.lang.Integer.MAX_VALUE, instance)); 2988 children 2989 .add(new Property("applicability", "", "Expressions that describe applicability criteria for the billing code.", 2990 0, java.lang.Integer.MAX_VALUE, applicability)); 2991 children.add(new Property("propertyGroup", "", 2992 "Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.", 2993 0, java.lang.Integer.MAX_VALUE, propertyGroup)); 2994 } 2995 2996 @Override 2997 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2998 switch (_hash) { 2999 case 116079: 3000 /* url */ return new Property("url", "uri", 3001 "An absolute URI that is used to identify this charge item definition 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 charge item definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the charge item definition is stored on different servers.", 3002 0, 1, url); 3003 case -1618432855: 3004 /* identifier */ return new Property("identifier", "Identifier", 3005 "A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance.", 3006 0, java.lang.Integer.MAX_VALUE, identifier); 3007 case 351608024: 3008 /* version */ return new Property("version", "string", 3009 "The identifier that is used to identify this version of the charge item definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the charge item definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets.", 3010 0, 1, version); 3011 case 110371416: 3012 /* title */ return new Property("title", "string", 3013 "A short, descriptive, user-friendly title for the charge item definition.", 0, 1, title); 3014 case -1076333435: 3015 /* derivedFromUri */ return new Property("derivedFromUri", "uri", 3016 "The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition.", 3017 0, java.lang.Integer.MAX_VALUE, derivedFromUri); 3018 case -995410646: 3019 /* partOf */ return new Property("partOf", "canonical(ChargeItemDefinition)", 3020 "A larger definition of which this particular definition is a component or step.", 0, 3021 java.lang.Integer.MAX_VALUE, partOf); 3022 case -430332865: 3023 /* replaces */ return new Property("replaces", "canonical(ChargeItemDefinition)", 3024 "As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance.", 3025 0, java.lang.Integer.MAX_VALUE, replaces); 3026 case -892481550: 3027 /* status */ return new Property("status", "code", "The current state of the ChargeItemDefinition.", 0, 1, 3028 status); 3029 case -404562712: 3030 /* experimental */ return new Property("experimental", "boolean", 3031 "A Boolean value to indicate that this charge item definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage.", 3032 0, 1, experimental); 3033 case 3076014: 3034 /* date */ return new Property("date", "dateTime", 3035 "The date (and optionally time) when the charge item definition 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 charge item definition changes.", 3036 0, 1, date); 3037 case 1447404028: 3038 /* publisher */ return new Property("publisher", "string", 3039 "The name of the organization or individual that published the charge item definition.", 0, 1, publisher); 3040 case 951526432: 3041 /* contact */ return new Property("contact", "ContactDetail", 3042 "Contact details to assist a user in finding and communicating with the publisher.", 0, 3043 java.lang.Integer.MAX_VALUE, contact); 3044 case -1724546052: 3045 /* description */ return new Property("description", "markdown", 3046 "A free text natural language description of the charge item definition from a consumer's perspective.", 0, 1, 3047 description); 3048 case -669707736: 3049 /* useContext */ return new Property("useContext", "UsageContext", 3050 "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 charge item definition instances.", 3051 0, java.lang.Integer.MAX_VALUE, useContext); 3052 case -507075711: 3053 /* jurisdiction */ return new Property("jurisdiction", "CodeableConcept", 3054 "A legal or geographic region in which the charge item definition is intended to be used.", 0, 3055 java.lang.Integer.MAX_VALUE, jurisdiction); 3056 case 1522889671: 3057 /* copyright */ return new Property("copyright", "markdown", 3058 "A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition.", 3059 0, 1, copyright); 3060 case 223539345: 3061 /* approvalDate */ return new Property("approvalDate", "date", 3062 "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage.", 3063 0, 1, approvalDate); 3064 case -1687512484: 3065 /* lastReviewDate */ return new Property("lastReviewDate", "date", 3066 "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date.", 3067 0, 1, lastReviewDate); 3068 case -403934648: 3069 /* effectivePeriod */ return new Property("effectivePeriod", "Period", 3070 "The period during which the charge item definition content was or is planned to be in active use.", 0, 1, 3071 effectivePeriod); 3072 case 3059181: 3073 /* code */ return new Property("code", "CodeableConcept", 3074 "The defined billing details in this resource pertain to the given billing code.", 0, 1, code); 3075 case 555127957: 3076 /* instance */ return new Property("instance", "Reference(Medication|Substance|Device)", 3077 "The defined billing details in this resource pertain to the given product instance(s).", 0, 3078 java.lang.Integer.MAX_VALUE, instance); 3079 case -1526770491: 3080 /* applicability */ return new Property("applicability", "", 3081 "Expressions that describe applicability criteria for the billing code.", 0, java.lang.Integer.MAX_VALUE, 3082 applicability); 3083 case -1041594966: 3084 /* propertyGroup */ return new Property("propertyGroup", "", 3085 "Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply.", 3086 0, java.lang.Integer.MAX_VALUE, propertyGroup); 3087 default: 3088 return super.getNamedProperty(_hash, _name, _checkValid); 3089 } 3090 3091 } 3092 3093 @Override 3094 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 3095 switch (hash) { 3096 case 116079: 3097 /* url */ return this.url == null ? new Base[0] : new Base[] { this.url }; // UriType 3098 case -1618432855: 3099 /* identifier */ return this.identifier == null ? new Base[0] 3100 : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 3101 case 351608024: 3102 /* version */ return this.version == null ? new Base[0] : new Base[] { this.version }; // StringType 3103 case 110371416: 3104 /* title */ return this.title == null ? new Base[0] : new Base[] { this.title }; // StringType 3105 case -1076333435: 3106 /* derivedFromUri */ return this.derivedFromUri == null ? new Base[0] 3107 : this.derivedFromUri.toArray(new Base[this.derivedFromUri.size()]); // UriType 3108 case -995410646: 3109 /* partOf */ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // CanonicalType 3110 case -430332865: 3111 /* replaces */ return this.replaces == null ? new Base[0] : this.replaces.toArray(new Base[this.replaces.size()]); // CanonicalType 3112 case -892481550: 3113 /* status */ return this.status == null ? new Base[0] : new Base[] { this.status }; // Enumeration<PublicationStatus> 3114 case -404562712: 3115 /* experimental */ return this.experimental == null ? new Base[0] : new Base[] { this.experimental }; // BooleanType 3116 case 3076014: 3117 /* date */ return this.date == null ? new Base[0] : new Base[] { this.date }; // DateTimeType 3118 case 1447404028: 3119 /* publisher */ return this.publisher == null ? new Base[0] : new Base[] { this.publisher }; // StringType 3120 case 951526432: 3121 /* contact */ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 3122 case -1724546052: 3123 /* description */ return this.description == null ? new Base[0] : new Base[] { this.description }; // MarkdownType 3124 case -669707736: 3125 /* useContext */ return this.useContext == null ? new Base[0] 3126 : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 3127 case -507075711: 3128 /* jurisdiction */ return this.jurisdiction == null ? new Base[0] 3129 : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 3130 case 1522889671: 3131 /* copyright */ return this.copyright == null ? new Base[0] : new Base[] { this.copyright }; // MarkdownType 3132 case 223539345: 3133 /* approvalDate */ return this.approvalDate == null ? new Base[0] : new Base[] { this.approvalDate }; // DateType 3134 case -1687512484: 3135 /* lastReviewDate */ return this.lastReviewDate == null ? new Base[0] : new Base[] { this.lastReviewDate }; // DateType 3136 case -403934648: 3137 /* effectivePeriod */ return this.effectivePeriod == null ? new Base[0] : new Base[] { this.effectivePeriod }; // Period 3138 case 3059181: 3139 /* code */ return this.code == null ? new Base[0] : new Base[] { this.code }; // CodeableConcept 3140 case 555127957: 3141 /* instance */ return this.instance == null ? new Base[0] : this.instance.toArray(new Base[this.instance.size()]); // Reference 3142 case -1526770491: 3143 /* applicability */ return this.applicability == null ? new Base[0] 3144 : this.applicability.toArray(new Base[this.applicability.size()]); // ChargeItemDefinitionApplicabilityComponent 3145 case -1041594966: 3146 /* propertyGroup */ return this.propertyGroup == null ? new Base[0] 3147 : this.propertyGroup.toArray(new Base[this.propertyGroup.size()]); // ChargeItemDefinitionPropertyGroupComponent 3148 default: 3149 return super.getProperty(hash, name, checkValid); 3150 } 3151 3152 } 3153 3154 @Override 3155 public Base setProperty(int hash, String name, Base value) throws FHIRException { 3156 switch (hash) { 3157 case 116079: // url 3158 this.url = castToUri(value); // UriType 3159 return value; 3160 case -1618432855: // identifier 3161 this.getIdentifier().add(castToIdentifier(value)); // Identifier 3162 return value; 3163 case 351608024: // version 3164 this.version = castToString(value); // StringType 3165 return value; 3166 case 110371416: // title 3167 this.title = castToString(value); // StringType 3168 return value; 3169 case -1076333435: // derivedFromUri 3170 this.getDerivedFromUri().add(castToUri(value)); // UriType 3171 return value; 3172 case -995410646: // partOf 3173 this.getPartOf().add(castToCanonical(value)); // CanonicalType 3174 return value; 3175 case -430332865: // replaces 3176 this.getReplaces().add(castToCanonical(value)); // CanonicalType 3177 return value; 3178 case -892481550: // status 3179 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 3180 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3181 return value; 3182 case -404562712: // experimental 3183 this.experimental = castToBoolean(value); // BooleanType 3184 return value; 3185 case 3076014: // date 3186 this.date = castToDateTime(value); // DateTimeType 3187 return value; 3188 case 1447404028: // publisher 3189 this.publisher = castToString(value); // StringType 3190 return value; 3191 case 951526432: // contact 3192 this.getContact().add(castToContactDetail(value)); // ContactDetail 3193 return value; 3194 case -1724546052: // description 3195 this.description = castToMarkdown(value); // MarkdownType 3196 return value; 3197 case -669707736: // useContext 3198 this.getUseContext().add(castToUsageContext(value)); // UsageContext 3199 return value; 3200 case -507075711: // jurisdiction 3201 this.getJurisdiction().add(castToCodeableConcept(value)); // CodeableConcept 3202 return value; 3203 case 1522889671: // copyright 3204 this.copyright = castToMarkdown(value); // MarkdownType 3205 return value; 3206 case 223539345: // approvalDate 3207 this.approvalDate = castToDate(value); // DateType 3208 return value; 3209 case -1687512484: // lastReviewDate 3210 this.lastReviewDate = castToDate(value); // DateType 3211 return value; 3212 case -403934648: // effectivePeriod 3213 this.effectivePeriod = castToPeriod(value); // Period 3214 return value; 3215 case 3059181: // code 3216 this.code = castToCodeableConcept(value); // CodeableConcept 3217 return value; 3218 case 555127957: // instance 3219 this.getInstance().add(castToReference(value)); // Reference 3220 return value; 3221 case -1526770491: // applicability 3222 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); // ChargeItemDefinitionApplicabilityComponent 3223 return value; 3224 case -1041594966: // propertyGroup 3225 this.getPropertyGroup().add((ChargeItemDefinitionPropertyGroupComponent) value); // ChargeItemDefinitionPropertyGroupComponent 3226 return value; 3227 default: 3228 return super.setProperty(hash, name, value); 3229 } 3230 3231 } 3232 3233 @Override 3234 public Base setProperty(String name, Base value) throws FHIRException { 3235 if (name.equals("url")) { 3236 this.url = castToUri(value); // UriType 3237 } else if (name.equals("identifier")) { 3238 this.getIdentifier().add(castToIdentifier(value)); 3239 } else if (name.equals("version")) { 3240 this.version = castToString(value); // StringType 3241 } else if (name.equals("title")) { 3242 this.title = castToString(value); // StringType 3243 } else if (name.equals("derivedFromUri")) { 3244 this.getDerivedFromUri().add(castToUri(value)); 3245 } else if (name.equals("partOf")) { 3246 this.getPartOf().add(castToCanonical(value)); 3247 } else if (name.equals("replaces")) { 3248 this.getReplaces().add(castToCanonical(value)); 3249 } else if (name.equals("status")) { 3250 value = new PublicationStatusEnumFactory().fromType(castToCode(value)); 3251 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 3252 } else if (name.equals("experimental")) { 3253 this.experimental = castToBoolean(value); // BooleanType 3254 } else if (name.equals("date")) { 3255 this.date = castToDateTime(value); // DateTimeType 3256 } else if (name.equals("publisher")) { 3257 this.publisher = castToString(value); // StringType 3258 } else if (name.equals("contact")) { 3259 this.getContact().add(castToContactDetail(value)); 3260 } else if (name.equals("description")) { 3261 this.description = castToMarkdown(value); // MarkdownType 3262 } else if (name.equals("useContext")) { 3263 this.getUseContext().add(castToUsageContext(value)); 3264 } else if (name.equals("jurisdiction")) { 3265 this.getJurisdiction().add(castToCodeableConcept(value)); 3266 } else if (name.equals("copyright")) { 3267 this.copyright = castToMarkdown(value); // MarkdownType 3268 } else if (name.equals("approvalDate")) { 3269 this.approvalDate = castToDate(value); // DateType 3270 } else if (name.equals("lastReviewDate")) { 3271 this.lastReviewDate = castToDate(value); // DateType 3272 } else if (name.equals("effectivePeriod")) { 3273 this.effectivePeriod = castToPeriod(value); // Period 3274 } else if (name.equals("code")) { 3275 this.code = castToCodeableConcept(value); // CodeableConcept 3276 } else if (name.equals("instance")) { 3277 this.getInstance().add(castToReference(value)); 3278 } else if (name.equals("applicability")) { 3279 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); 3280 } else if (name.equals("propertyGroup")) { 3281 this.getPropertyGroup().add((ChargeItemDefinitionPropertyGroupComponent) value); 3282 } else 3283 return super.setProperty(name, value); 3284 return value; 3285 } 3286 3287 @Override 3288 public void removeChild(String name, Base value) throws FHIRException { 3289 if (name.equals("url")) { 3290 this.url = null; 3291 } else if (name.equals("identifier")) { 3292 this.getIdentifier().remove(castToIdentifier(value)); 3293 } else if (name.equals("version")) { 3294 this.version = null; 3295 } else if (name.equals("title")) { 3296 this.title = null; 3297 } else if (name.equals("derivedFromUri")) { 3298 this.getDerivedFromUri().remove(castToUri(value)); 3299 } else if (name.equals("partOf")) { 3300 this.getPartOf().remove(castToCanonical(value)); 3301 } else if (name.equals("replaces")) { 3302 this.getReplaces().remove(castToCanonical(value)); 3303 } else if (name.equals("status")) { 3304 this.status = null; 3305 } else if (name.equals("experimental")) { 3306 this.experimental = null; 3307 } else if (name.equals("date")) { 3308 this.date = null; 3309 } else if (name.equals("publisher")) { 3310 this.publisher = null; 3311 } else if (name.equals("contact")) { 3312 this.getContact().remove(castToContactDetail(value)); 3313 } else if (name.equals("description")) { 3314 this.description = null; 3315 } else if (name.equals("useContext")) { 3316 this.getUseContext().remove(castToUsageContext(value)); 3317 } else if (name.equals("jurisdiction")) { 3318 this.getJurisdiction().remove(castToCodeableConcept(value)); 3319 } else if (name.equals("copyright")) { 3320 this.copyright = null; 3321 } else if (name.equals("approvalDate")) { 3322 this.approvalDate = null; 3323 } else if (name.equals("lastReviewDate")) { 3324 this.lastReviewDate = null; 3325 } else if (name.equals("effectivePeriod")) { 3326 this.effectivePeriod = null; 3327 } else if (name.equals("code")) { 3328 this.code = null; 3329 } else if (name.equals("instance")) { 3330 this.getInstance().remove(castToReference(value)); 3331 } else if (name.equals("applicability")) { 3332 this.getApplicability().remove((ChargeItemDefinitionApplicabilityComponent) value); 3333 } else if (name.equals("propertyGroup")) { 3334 this.getPropertyGroup().remove((ChargeItemDefinitionPropertyGroupComponent) value); 3335 } else 3336 super.removeChild(name, value); 3337 3338 } 3339 3340 @Override 3341 public Base makeProperty(int hash, String name) throws FHIRException { 3342 switch (hash) { 3343 case 116079: 3344 return getUrlElement(); 3345 case -1618432855: 3346 return addIdentifier(); 3347 case 351608024: 3348 return getVersionElement(); 3349 case 110371416: 3350 return getTitleElement(); 3351 case -1076333435: 3352 return addDerivedFromUriElement(); 3353 case -995410646: 3354 return addPartOfElement(); 3355 case -430332865: 3356 return addReplacesElement(); 3357 case -892481550: 3358 return getStatusElement(); 3359 case -404562712: 3360 return getExperimentalElement(); 3361 case 3076014: 3362 return getDateElement(); 3363 case 1447404028: 3364 return getPublisherElement(); 3365 case 951526432: 3366 return addContact(); 3367 case -1724546052: 3368 return getDescriptionElement(); 3369 case -669707736: 3370 return addUseContext(); 3371 case -507075711: 3372 return addJurisdiction(); 3373 case 1522889671: 3374 return getCopyrightElement(); 3375 case 223539345: 3376 return getApprovalDateElement(); 3377 case -1687512484: 3378 return getLastReviewDateElement(); 3379 case -403934648: 3380 return getEffectivePeriod(); 3381 case 3059181: 3382 return getCode(); 3383 case 555127957: 3384 return addInstance(); 3385 case -1526770491: 3386 return addApplicability(); 3387 case -1041594966: 3388 return addPropertyGroup(); 3389 default: 3390 return super.makeProperty(hash, name); 3391 } 3392 3393 } 3394 3395 @Override 3396 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 3397 switch (hash) { 3398 case 116079: 3399 /* url */ return new String[] { "uri" }; 3400 case -1618432855: 3401 /* identifier */ return new String[] { "Identifier" }; 3402 case 351608024: 3403 /* version */ return new String[] { "string" }; 3404 case 110371416: 3405 /* title */ return new String[] { "string" }; 3406 case -1076333435: 3407 /* derivedFromUri */ return new String[] { "uri" }; 3408 case -995410646: 3409 /* partOf */ return new String[] { "canonical" }; 3410 case -430332865: 3411 /* replaces */ return new String[] { "canonical" }; 3412 case -892481550: 3413 /* status */ return new String[] { "code" }; 3414 case -404562712: 3415 /* experimental */ return new String[] { "boolean" }; 3416 case 3076014: 3417 /* date */ return new String[] { "dateTime" }; 3418 case 1447404028: 3419 /* publisher */ return new String[] { "string" }; 3420 case 951526432: 3421 /* contact */ return new String[] { "ContactDetail" }; 3422 case -1724546052: 3423 /* description */ return new String[] { "markdown" }; 3424 case -669707736: 3425 /* useContext */ return new String[] { "UsageContext" }; 3426 case -507075711: 3427 /* jurisdiction */ return new String[] { "CodeableConcept" }; 3428 case 1522889671: 3429 /* copyright */ return new String[] { "markdown" }; 3430 case 223539345: 3431 /* approvalDate */ return new String[] { "date" }; 3432 case -1687512484: 3433 /* lastReviewDate */ return new String[] { "date" }; 3434 case -403934648: 3435 /* effectivePeriod */ return new String[] { "Period" }; 3436 case 3059181: 3437 /* code */ return new String[] { "CodeableConcept" }; 3438 case 555127957: 3439 /* instance */ return new String[] { "Reference" }; 3440 case -1526770491: 3441 /* applicability */ return new String[] {}; 3442 case -1041594966: 3443 /* propertyGroup */ return new String[] {}; 3444 default: 3445 return super.getTypesForProperty(hash, name); 3446 } 3447 3448 } 3449 3450 @Override 3451 public Base addChild(String name) throws FHIRException { 3452 if (name.equals("url")) { 3453 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.url"); 3454 } else if (name.equals("identifier")) { 3455 return addIdentifier(); 3456 } else if (name.equals("version")) { 3457 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.version"); 3458 } else if (name.equals("title")) { 3459 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.title"); 3460 } else if (name.equals("derivedFromUri")) { 3461 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.derivedFromUri"); 3462 } else if (name.equals("partOf")) { 3463 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.partOf"); 3464 } else if (name.equals("replaces")) { 3465 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.replaces"); 3466 } else if (name.equals("status")) { 3467 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.status"); 3468 } else if (name.equals("experimental")) { 3469 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.experimental"); 3470 } else if (name.equals("date")) { 3471 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.date"); 3472 } else if (name.equals("publisher")) { 3473 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.publisher"); 3474 } else if (name.equals("contact")) { 3475 return addContact(); 3476 } else if (name.equals("description")) { 3477 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.description"); 3478 } else if (name.equals("useContext")) { 3479 return addUseContext(); 3480 } else if (name.equals("jurisdiction")) { 3481 return addJurisdiction(); 3482 } else if (name.equals("copyright")) { 3483 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.copyright"); 3484 } else if (name.equals("approvalDate")) { 3485 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.approvalDate"); 3486 } else if (name.equals("lastReviewDate")) { 3487 throw new FHIRException("Cannot call addChild on a singleton property ChargeItemDefinition.lastReviewDate"); 3488 } else if (name.equals("effectivePeriod")) { 3489 this.effectivePeriod = new Period(); 3490 return this.effectivePeriod; 3491 } else if (name.equals("code")) { 3492 this.code = new CodeableConcept(); 3493 return this.code; 3494 } else if (name.equals("instance")) { 3495 return addInstance(); 3496 } else if (name.equals("applicability")) { 3497 return addApplicability(); 3498 } else if (name.equals("propertyGroup")) { 3499 return addPropertyGroup(); 3500 } else 3501 return super.addChild(name); 3502 } 3503 3504 public String fhirType() { 3505 return "ChargeItemDefinition"; 3506 3507 } 3508 3509 public ChargeItemDefinition copy() { 3510 ChargeItemDefinition dst = new ChargeItemDefinition(); 3511 copyValues(dst); 3512 return dst; 3513 } 3514 3515 public void copyValues(ChargeItemDefinition dst) { 3516 super.copyValues(dst); 3517 dst.url = url == null ? null : url.copy(); 3518 if (identifier != null) { 3519 dst.identifier = new ArrayList<Identifier>(); 3520 for (Identifier i : identifier) 3521 dst.identifier.add(i.copy()); 3522 } 3523 ; 3524 dst.version = version == null ? null : version.copy(); 3525 dst.title = title == null ? null : title.copy(); 3526 if (derivedFromUri != null) { 3527 dst.derivedFromUri = new ArrayList<UriType>(); 3528 for (UriType i : derivedFromUri) 3529 dst.derivedFromUri.add(i.copy()); 3530 } 3531 ; 3532 if (partOf != null) { 3533 dst.partOf = new ArrayList<CanonicalType>(); 3534 for (CanonicalType i : partOf) 3535 dst.partOf.add(i.copy()); 3536 } 3537 ; 3538 if (replaces != null) { 3539 dst.replaces = new ArrayList<CanonicalType>(); 3540 for (CanonicalType i : replaces) 3541 dst.replaces.add(i.copy()); 3542 } 3543 ; 3544 dst.status = status == null ? null : status.copy(); 3545 dst.experimental = experimental == null ? null : experimental.copy(); 3546 dst.date = date == null ? null : date.copy(); 3547 dst.publisher = publisher == null ? null : publisher.copy(); 3548 if (contact != null) { 3549 dst.contact = new ArrayList<ContactDetail>(); 3550 for (ContactDetail i : contact) 3551 dst.contact.add(i.copy()); 3552 } 3553 ; 3554 dst.description = description == null ? null : description.copy(); 3555 if (useContext != null) { 3556 dst.useContext = new ArrayList<UsageContext>(); 3557 for (UsageContext i : useContext) 3558 dst.useContext.add(i.copy()); 3559 } 3560 ; 3561 if (jurisdiction != null) { 3562 dst.jurisdiction = new ArrayList<CodeableConcept>(); 3563 for (CodeableConcept i : jurisdiction) 3564 dst.jurisdiction.add(i.copy()); 3565 } 3566 ; 3567 dst.copyright = copyright == null ? null : copyright.copy(); 3568 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 3569 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 3570 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 3571 dst.code = code == null ? null : code.copy(); 3572 if (instance != null) { 3573 dst.instance = new ArrayList<Reference>(); 3574 for (Reference i : instance) 3575 dst.instance.add(i.copy()); 3576 } 3577 ; 3578 if (applicability != null) { 3579 dst.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 3580 for (ChargeItemDefinitionApplicabilityComponent i : applicability) 3581 dst.applicability.add(i.copy()); 3582 } 3583 ; 3584 if (propertyGroup != null) { 3585 dst.propertyGroup = new ArrayList<ChargeItemDefinitionPropertyGroupComponent>(); 3586 for (ChargeItemDefinitionPropertyGroupComponent i : propertyGroup) 3587 dst.propertyGroup.add(i.copy()); 3588 } 3589 ; 3590 } 3591 3592 protected ChargeItemDefinition typedCopy() { 3593 return copy(); 3594 } 3595 3596 @Override 3597 public boolean equalsDeep(Base other_) { 3598 if (!super.equalsDeep(other_)) 3599 return false; 3600 if (!(other_ instanceof ChargeItemDefinition)) 3601 return false; 3602 ChargeItemDefinition o = (ChargeItemDefinition) other_; 3603 return compareDeep(identifier, o.identifier, true) && compareDeep(derivedFromUri, o.derivedFromUri, true) 3604 && compareDeep(partOf, o.partOf, true) && compareDeep(replaces, o.replaces, true) 3605 && compareDeep(copyright, o.copyright, true) && compareDeep(approvalDate, o.approvalDate, true) 3606 && compareDeep(lastReviewDate, o.lastReviewDate, true) && compareDeep(effectivePeriod, o.effectivePeriod, true) 3607 && compareDeep(code, o.code, true) && compareDeep(instance, o.instance, true) 3608 && compareDeep(applicability, o.applicability, true) && compareDeep(propertyGroup, o.propertyGroup, true); 3609 } 3610 3611 @Override 3612 public boolean equalsShallow(Base other_) { 3613 if (!super.equalsShallow(other_)) 3614 return false; 3615 if (!(other_ instanceof ChargeItemDefinition)) 3616 return false; 3617 ChargeItemDefinition o = (ChargeItemDefinition) other_; 3618 return compareValues(derivedFromUri, o.derivedFromUri, true) && compareValues(copyright, o.copyright, true) 3619 && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true); 3620 } 3621 3622 public boolean isEmpty() { 3623 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, derivedFromUri, partOf, replaces, 3624 copyright, approvalDate, lastReviewDate, effectivePeriod, code, instance, applicability, propertyGroup); 3625 } 3626 3627 @Override 3628 public ResourceType getResourceType() { 3629 return ResourceType.ChargeItemDefinition; 3630 } 3631 3632 /** 3633 * Search parameter: <b>date</b> 3634 * <p> 3635 * Description: <b>The charge item definition publication date</b><br> 3636 * Type: <b>date</b><br> 3637 * Path: <b>ChargeItemDefinition.date</b><br> 3638 * </p> 3639 */ 3640 @SearchParamDefinition(name = "date", path = "ChargeItemDefinition.date", description = "The charge item definition publication date", type = "date") 3641 public static final String SP_DATE = "date"; 3642 /** 3643 * <b>Fluent Client</b> search parameter constant for <b>date</b> 3644 * <p> 3645 * Description: <b>The charge item definition publication date</b><br> 3646 * Type: <b>date</b><br> 3647 * Path: <b>ChargeItemDefinition.date</b><br> 3648 * </p> 3649 */ 3650 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam( 3651 SP_DATE); 3652 3653 /** 3654 * Search parameter: <b>identifier</b> 3655 * <p> 3656 * Description: <b>External identifier for the charge item definition</b><br> 3657 * Type: <b>token</b><br> 3658 * Path: <b>ChargeItemDefinition.identifier</b><br> 3659 * </p> 3660 */ 3661 @SearchParamDefinition(name = "identifier", path = "ChargeItemDefinition.identifier", description = "External identifier for the charge item definition", type = "token") 3662 public static final String SP_IDENTIFIER = "identifier"; 3663 /** 3664 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 3665 * <p> 3666 * Description: <b>External identifier for the charge item definition</b><br> 3667 * Type: <b>token</b><br> 3668 * Path: <b>ChargeItemDefinition.identifier</b><br> 3669 * </p> 3670 */ 3671 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3672 SP_IDENTIFIER); 3673 3674 /** 3675 * Search parameter: <b>context-type-value</b> 3676 * <p> 3677 * Description: <b>A use context type and value assigned to the charge item 3678 * definition</b><br> 3679 * Type: <b>composite</b><br> 3680 * Path: <b></b><br> 3681 * </p> 3682 */ 3683 @SearchParamDefinition(name = "context-type-value", path = "ChargeItemDefinition.useContext", description = "A use context type and value assigned to the charge item definition", type = "composite", compositeOf = { 3684 "context-type", "context" }) 3685 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 3686 /** 3687 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 3688 * <p> 3689 * Description: <b>A use context type and value assigned to the charge item 3690 * definition</b><br> 3691 * Type: <b>composite</b><br> 3692 * Path: <b></b><br> 3693 * </p> 3694 */ 3695 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>( 3696 SP_CONTEXT_TYPE_VALUE); 3697 3698 /** 3699 * Search parameter: <b>jurisdiction</b> 3700 * <p> 3701 * Description: <b>Intended jurisdiction for the charge item definition</b><br> 3702 * Type: <b>token</b><br> 3703 * Path: <b>ChargeItemDefinition.jurisdiction</b><br> 3704 * </p> 3705 */ 3706 @SearchParamDefinition(name = "jurisdiction", path = "ChargeItemDefinition.jurisdiction", description = "Intended jurisdiction for the charge item definition", type = "token") 3707 public static final String SP_JURISDICTION = "jurisdiction"; 3708 /** 3709 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 3710 * <p> 3711 * Description: <b>Intended jurisdiction for the charge item definition</b><br> 3712 * Type: <b>token</b><br> 3713 * Path: <b>ChargeItemDefinition.jurisdiction</b><br> 3714 * </p> 3715 */ 3716 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3717 SP_JURISDICTION); 3718 3719 /** 3720 * Search parameter: <b>description</b> 3721 * <p> 3722 * Description: <b>The description of the charge item definition</b><br> 3723 * Type: <b>string</b><br> 3724 * Path: <b>ChargeItemDefinition.description</b><br> 3725 * </p> 3726 */ 3727 @SearchParamDefinition(name = "description", path = "ChargeItemDefinition.description", description = "The description of the charge item definition", type = "string") 3728 public static final String SP_DESCRIPTION = "description"; 3729 /** 3730 * <b>Fluent Client</b> search parameter constant for <b>description</b> 3731 * <p> 3732 * Description: <b>The description of the charge item definition</b><br> 3733 * Type: <b>string</b><br> 3734 * Path: <b>ChargeItemDefinition.description</b><br> 3735 * </p> 3736 */ 3737 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam( 3738 SP_DESCRIPTION); 3739 3740 /** 3741 * Search parameter: <b>context-type</b> 3742 * <p> 3743 * Description: <b>A type of use context assigned to the charge item 3744 * definition</b><br> 3745 * Type: <b>token</b><br> 3746 * Path: <b>ChargeItemDefinition.useContext.code</b><br> 3747 * </p> 3748 */ 3749 @SearchParamDefinition(name = "context-type", path = "ChargeItemDefinition.useContext.code", description = "A type of use context assigned to the charge item definition", type = "token") 3750 public static final String SP_CONTEXT_TYPE = "context-type"; 3751 /** 3752 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 3753 * <p> 3754 * Description: <b>A type of use context assigned to the charge item 3755 * definition</b><br> 3756 * Type: <b>token</b><br> 3757 * Path: <b>ChargeItemDefinition.useContext.code</b><br> 3758 * </p> 3759 */ 3760 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3761 SP_CONTEXT_TYPE); 3762 3763 /** 3764 * Search parameter: <b>title</b> 3765 * <p> 3766 * Description: <b>The human-friendly name of the charge item definition</b><br> 3767 * Type: <b>string</b><br> 3768 * Path: <b>ChargeItemDefinition.title</b><br> 3769 * </p> 3770 */ 3771 @SearchParamDefinition(name = "title", path = "ChargeItemDefinition.title", description = "The human-friendly name of the charge item definition", type = "string") 3772 public static final String SP_TITLE = "title"; 3773 /** 3774 * <b>Fluent Client</b> search parameter constant for <b>title</b> 3775 * <p> 3776 * Description: <b>The human-friendly name of the charge item definition</b><br> 3777 * Type: <b>string</b><br> 3778 * Path: <b>ChargeItemDefinition.title</b><br> 3779 * </p> 3780 */ 3781 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam( 3782 SP_TITLE); 3783 3784 /** 3785 * Search parameter: <b>version</b> 3786 * <p> 3787 * Description: <b>The business version of the charge item definition</b><br> 3788 * Type: <b>token</b><br> 3789 * Path: <b>ChargeItemDefinition.version</b><br> 3790 * </p> 3791 */ 3792 @SearchParamDefinition(name = "version", path = "ChargeItemDefinition.version", description = "The business version of the charge item definition", type = "token") 3793 public static final String SP_VERSION = "version"; 3794 /** 3795 * <b>Fluent Client</b> search parameter constant for <b>version</b> 3796 * <p> 3797 * Description: <b>The business version of the charge item definition</b><br> 3798 * Type: <b>token</b><br> 3799 * Path: <b>ChargeItemDefinition.version</b><br> 3800 * </p> 3801 */ 3802 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3803 SP_VERSION); 3804 3805 /** 3806 * Search parameter: <b>url</b> 3807 * <p> 3808 * Description: <b>The uri that identifies the charge item definition</b><br> 3809 * Type: <b>uri</b><br> 3810 * Path: <b>ChargeItemDefinition.url</b><br> 3811 * </p> 3812 */ 3813 @SearchParamDefinition(name = "url", path = "ChargeItemDefinition.url", description = "The uri that identifies the charge item definition", type = "uri") 3814 public static final String SP_URL = "url"; 3815 /** 3816 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3817 * <p> 3818 * Description: <b>The uri that identifies the charge item definition</b><br> 3819 * Type: <b>uri</b><br> 3820 * Path: <b>ChargeItemDefinition.url</b><br> 3821 * </p> 3822 */ 3823 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3824 3825 /** 3826 * Search parameter: <b>context-quantity</b> 3827 * <p> 3828 * Description: <b>A quantity- or range-valued use context assigned to the 3829 * charge item definition</b><br> 3830 * Type: <b>quantity</b><br> 3831 * Path: <b>ChargeItemDefinition.useContext.valueQuantity, 3832 * ChargeItemDefinition.useContext.valueRange</b><br> 3833 * </p> 3834 */ 3835 @SearchParamDefinition(name = "context-quantity", path = "(ChargeItemDefinition.useContext.value as Quantity) | (ChargeItemDefinition.useContext.value as Range)", description = "A quantity- or range-valued use context assigned to the charge item definition", type = "quantity") 3836 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 3837 /** 3838 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 3839 * <p> 3840 * Description: <b>A quantity- or range-valued use context assigned to the 3841 * charge item definition</b><br> 3842 * Type: <b>quantity</b><br> 3843 * Path: <b>ChargeItemDefinition.useContext.valueQuantity, 3844 * ChargeItemDefinition.useContext.valueRange</b><br> 3845 * </p> 3846 */ 3847 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam( 3848 SP_CONTEXT_QUANTITY); 3849 3850 /** 3851 * Search parameter: <b>effective</b> 3852 * <p> 3853 * Description: <b>The time during which the charge item definition is intended 3854 * to be in use</b><br> 3855 * Type: <b>date</b><br> 3856 * Path: <b>ChargeItemDefinition.effectivePeriod</b><br> 3857 * </p> 3858 */ 3859 @SearchParamDefinition(name = "effective", path = "ChargeItemDefinition.effectivePeriod", description = "The time during which the charge item definition is intended to be in use", type = "date") 3860 public static final String SP_EFFECTIVE = "effective"; 3861 /** 3862 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 3863 * <p> 3864 * Description: <b>The time during which the charge item definition is intended 3865 * to be in use</b><br> 3866 * Type: <b>date</b><br> 3867 * Path: <b>ChargeItemDefinition.effectivePeriod</b><br> 3868 * </p> 3869 */ 3870 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam( 3871 SP_EFFECTIVE); 3872 3873 /** 3874 * Search parameter: <b>context</b> 3875 * <p> 3876 * Description: <b>A use context assigned to the charge item definition</b><br> 3877 * Type: <b>token</b><br> 3878 * Path: <b>ChargeItemDefinition.useContext.valueCodeableConcept</b><br> 3879 * </p> 3880 */ 3881 @SearchParamDefinition(name = "context", path = "(ChargeItemDefinition.useContext.value as CodeableConcept)", description = "A use context assigned to the charge item definition", type = "token") 3882 public static final String SP_CONTEXT = "context"; 3883 /** 3884 * <b>Fluent Client</b> search parameter constant for <b>context</b> 3885 * <p> 3886 * Description: <b>A use context assigned to the charge item definition</b><br> 3887 * Type: <b>token</b><br> 3888 * Path: <b>ChargeItemDefinition.useContext.valueCodeableConcept</b><br> 3889 * </p> 3890 */ 3891 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3892 SP_CONTEXT); 3893 3894 /** 3895 * Search parameter: <b>publisher</b> 3896 * <p> 3897 * Description: <b>Name of the publisher of the charge item definition</b><br> 3898 * Type: <b>string</b><br> 3899 * Path: <b>ChargeItemDefinition.publisher</b><br> 3900 * </p> 3901 */ 3902 @SearchParamDefinition(name = "publisher", path = "ChargeItemDefinition.publisher", description = "Name of the publisher of the charge item definition", type = "string") 3903 public static final String SP_PUBLISHER = "publisher"; 3904 /** 3905 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3906 * <p> 3907 * Description: <b>Name of the publisher of the charge item definition</b><br> 3908 * Type: <b>string</b><br> 3909 * Path: <b>ChargeItemDefinition.publisher</b><br> 3910 * </p> 3911 */ 3912 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam( 3913 SP_PUBLISHER); 3914 3915 /** 3916 * Search parameter: <b>context-type-quantity</b> 3917 * <p> 3918 * Description: <b>A use context type and quantity- or range-based value 3919 * assigned to the charge item definition</b><br> 3920 * Type: <b>composite</b><br> 3921 * Path: <b></b><br> 3922 * </p> 3923 */ 3924 @SearchParamDefinition(name = "context-type-quantity", path = "ChargeItemDefinition.useContext", description = "A use context type and quantity- or range-based value assigned to the charge item definition", type = "composite", compositeOf = { 3925 "context-type", "context-quantity" }) 3926 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 3927 /** 3928 * <b>Fluent Client</b> search parameter constant for 3929 * <b>context-type-quantity</b> 3930 * <p> 3931 * Description: <b>A use context type and quantity- or range-based value 3932 * assigned to the charge item definition</b><br> 3933 * Type: <b>composite</b><br> 3934 * Path: <b></b><br> 3935 * </p> 3936 */ 3937 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>( 3938 SP_CONTEXT_TYPE_QUANTITY); 3939 3940 /** 3941 * Search parameter: <b>status</b> 3942 * <p> 3943 * Description: <b>The current status of the charge item definition</b><br> 3944 * Type: <b>token</b><br> 3945 * Path: <b>ChargeItemDefinition.status</b><br> 3946 * </p> 3947 */ 3948 @SearchParamDefinition(name = "status", path = "ChargeItemDefinition.status", description = "The current status of the charge item definition", type = "token") 3949 public static final String SP_STATUS = "status"; 3950 /** 3951 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3952 * <p> 3953 * Description: <b>The current status of the charge item definition</b><br> 3954 * Type: <b>token</b><br> 3955 * Path: <b>ChargeItemDefinition.status</b><br> 3956 * </p> 3957 */ 3958 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam( 3959 SP_STATUS); 3960 3961}