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