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