001package org.hl7.fhir.r4b.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 Fri, Dec 31, 2021 05:58+1100 for FHIR v4.3.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.r4b.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 DomainResource { 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 codes or product types 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 protected void listChildren(List<Property> children) { 2326 super.listChildren(children); 2327 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)); 2328 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)); 2329 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)); 2330 children.add(new Property("title", "string", "A short, descriptive, user-friendly title for the charge item definition.", 0, 1, title)); 2331 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)); 2332 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)); 2333 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)); 2334 children.add(new Property("status", "code", "The current state of the ChargeItemDefinition.", 0, 1, status)); 2335 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)); 2336 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)); 2337 children.add(new Property("publisher", "string", "The name of the organization or individual that published the charge item definition.", 0, 1, publisher)); 2338 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)); 2339 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)); 2340 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)); 2341 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)); 2342 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)); 2343 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)); 2344 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)); 2345 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)); 2346 children.add(new Property("code", "CodeableConcept", "The defined billing details in this resource pertain to the given billing code.", 0, 1, code)); 2347 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)); 2348 children.add(new Property("applicability", "", "Expressions that describe applicability criteria for the billing code.", 0, java.lang.Integer.MAX_VALUE, applicability)); 2349 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)); 2350 } 2351 2352 @Override 2353 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2354 switch (_hash) { 2355 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); 2356 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); 2357 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); 2358 case 110371416: /*title*/ return new Property("title", "string", "A short, descriptive, user-friendly title for the charge item definition.", 0, 1, title); 2359 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); 2360 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); 2361 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); 2362 case -892481550: /*status*/ return new Property("status", "code", "The current state of the ChargeItemDefinition.", 0, 1, status); 2363 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); 2364 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); 2365 case 1447404028: /*publisher*/ return new Property("publisher", "string", "The name of the organization or individual that published the charge item definition.", 0, 1, publisher); 2366 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); 2367 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); 2368 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); 2369 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); 2370 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); 2371 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); 2372 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); 2373 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); 2374 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "The defined billing details in this resource pertain to the given billing code.", 0, 1, code); 2375 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); 2376 case -1526770491: /*applicability*/ return new Property("applicability", "", "Expressions that describe applicability criteria for the billing code.", 0, java.lang.Integer.MAX_VALUE, applicability); 2377 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); 2378 default: return super.getNamedProperty(_hash, _name, _checkValid); 2379 } 2380 2381 } 2382 2383 @Override 2384 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2385 switch (hash) { 2386 case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType 2387 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2388 case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType 2389 case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType 2390 case -1076333435: /*derivedFromUri*/ return this.derivedFromUri == null ? new Base[0] : this.derivedFromUri.toArray(new Base[this.derivedFromUri.size()]); // UriType 2391 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // CanonicalType 2392 case -430332865: /*replaces*/ return this.replaces == null ? new Base[0] : this.replaces.toArray(new Base[this.replaces.size()]); // CanonicalType 2393 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<PublicationStatus> 2394 case -404562712: /*experimental*/ return this.experimental == null ? new Base[0] : new Base[] {this.experimental}; // BooleanType 2395 case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType 2396 case 1447404028: /*publisher*/ return this.publisher == null ? new Base[0] : new Base[] {this.publisher}; // StringType 2397 case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ContactDetail 2398 case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType 2399 case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext 2400 case -507075711: /*jurisdiction*/ return this.jurisdiction == null ? new Base[0] : this.jurisdiction.toArray(new Base[this.jurisdiction.size()]); // CodeableConcept 2401 case 1522889671: /*copyright*/ return this.copyright == null ? new Base[0] : new Base[] {this.copyright}; // MarkdownType 2402 case 223539345: /*approvalDate*/ return this.approvalDate == null ? new Base[0] : new Base[] {this.approvalDate}; // DateType 2403 case -1687512484: /*lastReviewDate*/ return this.lastReviewDate == null ? new Base[0] : new Base[] {this.lastReviewDate}; // DateType 2404 case -403934648: /*effectivePeriod*/ return this.effectivePeriod == null ? new Base[0] : new Base[] {this.effectivePeriod}; // Period 2405 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2406 case 555127957: /*instance*/ return this.instance == null ? new Base[0] : this.instance.toArray(new Base[this.instance.size()]); // Reference 2407 case -1526770491: /*applicability*/ return this.applicability == null ? new Base[0] : this.applicability.toArray(new Base[this.applicability.size()]); // ChargeItemDefinitionApplicabilityComponent 2408 case -1041594966: /*propertyGroup*/ return this.propertyGroup == null ? new Base[0] : this.propertyGroup.toArray(new Base[this.propertyGroup.size()]); // ChargeItemDefinitionPropertyGroupComponent 2409 default: return super.getProperty(hash, name, checkValid); 2410 } 2411 2412 } 2413 2414 @Override 2415 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2416 switch (hash) { 2417 case 116079: // url 2418 this.url = TypeConvertor.castToUri(value); // UriType 2419 return value; 2420 case -1618432855: // identifier 2421 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier 2422 return value; 2423 case 351608024: // version 2424 this.version = TypeConvertor.castToString(value); // StringType 2425 return value; 2426 case 110371416: // title 2427 this.title = TypeConvertor.castToString(value); // StringType 2428 return value; 2429 case -1076333435: // derivedFromUri 2430 this.getDerivedFromUri().add(TypeConvertor.castToUri(value)); // UriType 2431 return value; 2432 case -995410646: // partOf 2433 this.getPartOf().add(TypeConvertor.castToCanonical(value)); // CanonicalType 2434 return value; 2435 case -430332865: // replaces 2436 this.getReplaces().add(TypeConvertor.castToCanonical(value)); // CanonicalType 2437 return value; 2438 case -892481550: // status 2439 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2440 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2441 return value; 2442 case -404562712: // experimental 2443 this.experimental = TypeConvertor.castToBoolean(value); // BooleanType 2444 return value; 2445 case 3076014: // date 2446 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 2447 return value; 2448 case 1447404028: // publisher 2449 this.publisher = TypeConvertor.castToString(value); // StringType 2450 return value; 2451 case 951526432: // contact 2452 this.getContact().add(TypeConvertor.castToContactDetail(value)); // ContactDetail 2453 return value; 2454 case -1724546052: // description 2455 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2456 return value; 2457 case -669707736: // useContext 2458 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext 2459 return value; 2460 case -507075711: // jurisdiction 2461 this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept 2462 return value; 2463 case 1522889671: // copyright 2464 this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType 2465 return value; 2466 case 223539345: // approvalDate 2467 this.approvalDate = TypeConvertor.castToDate(value); // DateType 2468 return value; 2469 case -1687512484: // lastReviewDate 2470 this.lastReviewDate = TypeConvertor.castToDate(value); // DateType 2471 return value; 2472 case -403934648: // effectivePeriod 2473 this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period 2474 return value; 2475 case 3059181: // code 2476 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2477 return value; 2478 case 555127957: // instance 2479 this.getInstance().add(TypeConvertor.castToReference(value)); // Reference 2480 return value; 2481 case -1526770491: // applicability 2482 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); // ChargeItemDefinitionApplicabilityComponent 2483 return value; 2484 case -1041594966: // propertyGroup 2485 this.getPropertyGroup().add((ChargeItemDefinitionPropertyGroupComponent) value); // ChargeItemDefinitionPropertyGroupComponent 2486 return value; 2487 default: return super.setProperty(hash, name, value); 2488 } 2489 2490 } 2491 2492 @Override 2493 public Base setProperty(String name, Base value) throws FHIRException { 2494 if (name.equals("url")) { 2495 this.url = TypeConvertor.castToUri(value); // UriType 2496 } else if (name.equals("identifier")) { 2497 this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); 2498 } else if (name.equals("version")) { 2499 this.version = TypeConvertor.castToString(value); // StringType 2500 } else if (name.equals("title")) { 2501 this.title = TypeConvertor.castToString(value); // StringType 2502 } else if (name.equals("derivedFromUri")) { 2503 this.getDerivedFromUri().add(TypeConvertor.castToUri(value)); 2504 } else if (name.equals("partOf")) { 2505 this.getPartOf().add(TypeConvertor.castToCanonical(value)); 2506 } else if (name.equals("replaces")) { 2507 this.getReplaces().add(TypeConvertor.castToCanonical(value)); 2508 } else if (name.equals("status")) { 2509 value = new PublicationStatusEnumFactory().fromType(TypeConvertor.castToCode(value)); 2510 this.status = (Enumeration) value; // Enumeration<PublicationStatus> 2511 } else if (name.equals("experimental")) { 2512 this.experimental = TypeConvertor.castToBoolean(value); // BooleanType 2513 } else if (name.equals("date")) { 2514 this.date = TypeConvertor.castToDateTime(value); // DateTimeType 2515 } else if (name.equals("publisher")) { 2516 this.publisher = TypeConvertor.castToString(value); // StringType 2517 } else if (name.equals("contact")) { 2518 this.getContact().add(TypeConvertor.castToContactDetail(value)); 2519 } else if (name.equals("description")) { 2520 this.description = TypeConvertor.castToMarkdown(value); // MarkdownType 2521 } else if (name.equals("useContext")) { 2522 this.getUseContext().add(TypeConvertor.castToUsageContext(value)); 2523 } else if (name.equals("jurisdiction")) { 2524 this.getJurisdiction().add(TypeConvertor.castToCodeableConcept(value)); 2525 } else if (name.equals("copyright")) { 2526 this.copyright = TypeConvertor.castToMarkdown(value); // MarkdownType 2527 } else if (name.equals("approvalDate")) { 2528 this.approvalDate = TypeConvertor.castToDate(value); // DateType 2529 } else if (name.equals("lastReviewDate")) { 2530 this.lastReviewDate = TypeConvertor.castToDate(value); // DateType 2531 } else if (name.equals("effectivePeriod")) { 2532 this.effectivePeriod = TypeConvertor.castToPeriod(value); // Period 2533 } else if (name.equals("code")) { 2534 this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept 2535 } else if (name.equals("instance")) { 2536 this.getInstance().add(TypeConvertor.castToReference(value)); 2537 } else if (name.equals("applicability")) { 2538 this.getApplicability().add((ChargeItemDefinitionApplicabilityComponent) value); 2539 } else if (name.equals("propertyGroup")) { 2540 this.getPropertyGroup().add((ChargeItemDefinitionPropertyGroupComponent) value); 2541 } else 2542 return super.setProperty(name, value); 2543 return value; 2544 } 2545 2546 @Override 2547 public Base makeProperty(int hash, String name) throws FHIRException { 2548 switch (hash) { 2549 case 116079: return getUrlElement(); 2550 case -1618432855: return addIdentifier(); 2551 case 351608024: return getVersionElement(); 2552 case 110371416: return getTitleElement(); 2553 case -1076333435: return addDerivedFromUriElement(); 2554 case -995410646: return addPartOfElement(); 2555 case -430332865: return addReplacesElement(); 2556 case -892481550: return getStatusElement(); 2557 case -404562712: return getExperimentalElement(); 2558 case 3076014: return getDateElement(); 2559 case 1447404028: return getPublisherElement(); 2560 case 951526432: return addContact(); 2561 case -1724546052: return getDescriptionElement(); 2562 case -669707736: return addUseContext(); 2563 case -507075711: return addJurisdiction(); 2564 case 1522889671: return getCopyrightElement(); 2565 case 223539345: return getApprovalDateElement(); 2566 case -1687512484: return getLastReviewDateElement(); 2567 case -403934648: return getEffectivePeriod(); 2568 case 3059181: return getCode(); 2569 case 555127957: return addInstance(); 2570 case -1526770491: return addApplicability(); 2571 case -1041594966: return addPropertyGroup(); 2572 default: return super.makeProperty(hash, name); 2573 } 2574 2575 } 2576 2577 @Override 2578 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2579 switch (hash) { 2580 case 116079: /*url*/ return new String[] {"uri"}; 2581 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2582 case 351608024: /*version*/ return new String[] {"string"}; 2583 case 110371416: /*title*/ return new String[] {"string"}; 2584 case -1076333435: /*derivedFromUri*/ return new String[] {"uri"}; 2585 case -995410646: /*partOf*/ return new String[] {"canonical"}; 2586 case -430332865: /*replaces*/ return new String[] {"canonical"}; 2587 case -892481550: /*status*/ return new String[] {"code"}; 2588 case -404562712: /*experimental*/ return new String[] {"boolean"}; 2589 case 3076014: /*date*/ return new String[] {"dateTime"}; 2590 case 1447404028: /*publisher*/ return new String[] {"string"}; 2591 case 951526432: /*contact*/ return new String[] {"ContactDetail"}; 2592 case -1724546052: /*description*/ return new String[] {"markdown"}; 2593 case -669707736: /*useContext*/ return new String[] {"UsageContext"}; 2594 case -507075711: /*jurisdiction*/ return new String[] {"CodeableConcept"}; 2595 case 1522889671: /*copyright*/ return new String[] {"markdown"}; 2596 case 223539345: /*approvalDate*/ return new String[] {"date"}; 2597 case -1687512484: /*lastReviewDate*/ return new String[] {"date"}; 2598 case -403934648: /*effectivePeriod*/ return new String[] {"Period"}; 2599 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2600 case 555127957: /*instance*/ return new String[] {"Reference"}; 2601 case -1526770491: /*applicability*/ return new String[] {}; 2602 case -1041594966: /*propertyGroup*/ return new String[] {}; 2603 default: return super.getTypesForProperty(hash, name); 2604 } 2605 2606 } 2607 2608 @Override 2609 public Base addChild(String name) throws FHIRException { 2610 if (name.equals("url")) { 2611 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.url"); 2612 } 2613 else if (name.equals("identifier")) { 2614 return addIdentifier(); 2615 } 2616 else if (name.equals("version")) { 2617 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.version"); 2618 } 2619 else if (name.equals("title")) { 2620 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.title"); 2621 } 2622 else if (name.equals("derivedFromUri")) { 2623 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.derivedFromUri"); 2624 } 2625 else if (name.equals("partOf")) { 2626 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.partOf"); 2627 } 2628 else if (name.equals("replaces")) { 2629 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.replaces"); 2630 } 2631 else if (name.equals("status")) { 2632 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.status"); 2633 } 2634 else if (name.equals("experimental")) { 2635 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.experimental"); 2636 } 2637 else if (name.equals("date")) { 2638 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.date"); 2639 } 2640 else if (name.equals("publisher")) { 2641 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.publisher"); 2642 } 2643 else if (name.equals("contact")) { 2644 return addContact(); 2645 } 2646 else if (name.equals("description")) { 2647 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.description"); 2648 } 2649 else if (name.equals("useContext")) { 2650 return addUseContext(); 2651 } 2652 else if (name.equals("jurisdiction")) { 2653 return addJurisdiction(); 2654 } 2655 else if (name.equals("copyright")) { 2656 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.copyright"); 2657 } 2658 else if (name.equals("approvalDate")) { 2659 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.approvalDate"); 2660 } 2661 else if (name.equals("lastReviewDate")) { 2662 throw new FHIRException("Cannot call addChild on a primitive type ChargeItemDefinition.lastReviewDate"); 2663 } 2664 else if (name.equals("effectivePeriod")) { 2665 this.effectivePeriod = new Period(); 2666 return this.effectivePeriod; 2667 } 2668 else if (name.equals("code")) { 2669 this.code = new CodeableConcept(); 2670 return this.code; 2671 } 2672 else if (name.equals("instance")) { 2673 return addInstance(); 2674 } 2675 else if (name.equals("applicability")) { 2676 return addApplicability(); 2677 } 2678 else if (name.equals("propertyGroup")) { 2679 return addPropertyGroup(); 2680 } 2681 else 2682 return super.addChild(name); 2683 } 2684 2685 public String fhirType() { 2686 return "ChargeItemDefinition"; 2687 2688 } 2689 2690 public ChargeItemDefinition copy() { 2691 ChargeItemDefinition dst = new ChargeItemDefinition(); 2692 copyValues(dst); 2693 return dst; 2694 } 2695 2696 public void copyValues(ChargeItemDefinition dst) { 2697 super.copyValues(dst); 2698 dst.url = url == null ? null : url.copy(); 2699 if (identifier != null) { 2700 dst.identifier = new ArrayList<Identifier>(); 2701 for (Identifier i : identifier) 2702 dst.identifier.add(i.copy()); 2703 }; 2704 dst.version = version == null ? null : version.copy(); 2705 dst.title = title == null ? null : title.copy(); 2706 if (derivedFromUri != null) { 2707 dst.derivedFromUri = new ArrayList<UriType>(); 2708 for (UriType i : derivedFromUri) 2709 dst.derivedFromUri.add(i.copy()); 2710 }; 2711 if (partOf != null) { 2712 dst.partOf = new ArrayList<CanonicalType>(); 2713 for (CanonicalType i : partOf) 2714 dst.partOf.add(i.copy()); 2715 }; 2716 if (replaces != null) { 2717 dst.replaces = new ArrayList<CanonicalType>(); 2718 for (CanonicalType i : replaces) 2719 dst.replaces.add(i.copy()); 2720 }; 2721 dst.status = status == null ? null : status.copy(); 2722 dst.experimental = experimental == null ? null : experimental.copy(); 2723 dst.date = date == null ? null : date.copy(); 2724 dst.publisher = publisher == null ? null : publisher.copy(); 2725 if (contact != null) { 2726 dst.contact = new ArrayList<ContactDetail>(); 2727 for (ContactDetail i : contact) 2728 dst.contact.add(i.copy()); 2729 }; 2730 dst.description = description == null ? null : description.copy(); 2731 if (useContext != null) { 2732 dst.useContext = new ArrayList<UsageContext>(); 2733 for (UsageContext i : useContext) 2734 dst.useContext.add(i.copy()); 2735 }; 2736 if (jurisdiction != null) { 2737 dst.jurisdiction = new ArrayList<CodeableConcept>(); 2738 for (CodeableConcept i : jurisdiction) 2739 dst.jurisdiction.add(i.copy()); 2740 }; 2741 dst.copyright = copyright == null ? null : copyright.copy(); 2742 dst.approvalDate = approvalDate == null ? null : approvalDate.copy(); 2743 dst.lastReviewDate = lastReviewDate == null ? null : lastReviewDate.copy(); 2744 dst.effectivePeriod = effectivePeriod == null ? null : effectivePeriod.copy(); 2745 dst.code = code == null ? null : code.copy(); 2746 if (instance != null) { 2747 dst.instance = new ArrayList<Reference>(); 2748 for (Reference i : instance) 2749 dst.instance.add(i.copy()); 2750 }; 2751 if (applicability != null) { 2752 dst.applicability = new ArrayList<ChargeItemDefinitionApplicabilityComponent>(); 2753 for (ChargeItemDefinitionApplicabilityComponent i : applicability) 2754 dst.applicability.add(i.copy()); 2755 }; 2756 if (propertyGroup != null) { 2757 dst.propertyGroup = new ArrayList<ChargeItemDefinitionPropertyGroupComponent>(); 2758 for (ChargeItemDefinitionPropertyGroupComponent i : propertyGroup) 2759 dst.propertyGroup.add(i.copy()); 2760 }; 2761 } 2762 2763 protected ChargeItemDefinition typedCopy() { 2764 return copy(); 2765 } 2766 2767 @Override 2768 public boolean equalsDeep(Base other_) { 2769 if (!super.equalsDeep(other_)) 2770 return false; 2771 if (!(other_ instanceof ChargeItemDefinition)) 2772 return false; 2773 ChargeItemDefinition o = (ChargeItemDefinition) other_; 2774 return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true) 2775 && compareDeep(title, o.title, true) && compareDeep(derivedFromUri, o.derivedFromUri, true) && compareDeep(partOf, o.partOf, true) 2776 && compareDeep(replaces, o.replaces, true) && compareDeep(status, o.status, true) && compareDeep(experimental, o.experimental, true) 2777 && compareDeep(date, o.date, true) && compareDeep(publisher, o.publisher, true) && compareDeep(contact, o.contact, true) 2778 && compareDeep(description, o.description, true) && compareDeep(useContext, o.useContext, true) 2779 && compareDeep(jurisdiction, o.jurisdiction, true) && compareDeep(copyright, o.copyright, true) 2780 && compareDeep(approvalDate, o.approvalDate, true) && compareDeep(lastReviewDate, o.lastReviewDate, true) 2781 && compareDeep(effectivePeriod, o.effectivePeriod, true) && compareDeep(code, o.code, true) && compareDeep(instance, o.instance, true) 2782 && compareDeep(applicability, o.applicability, true) && compareDeep(propertyGroup, o.propertyGroup, true) 2783 ; 2784 } 2785 2786 @Override 2787 public boolean equalsShallow(Base other_) { 2788 if (!super.equalsShallow(other_)) 2789 return false; 2790 if (!(other_ instanceof ChargeItemDefinition)) 2791 return false; 2792 ChargeItemDefinition o = (ChargeItemDefinition) other_; 2793 return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(title, o.title, true) 2794 && compareValues(derivedFromUri, o.derivedFromUri, true) && compareValues(partOf, o.partOf, true) && compareValues(replaces, o.replaces, true) 2795 && compareValues(status, o.status, true) && compareValues(experimental, o.experimental, true) && compareValues(date, o.date, true) 2796 && compareValues(publisher, o.publisher, true) && compareValues(description, o.description, true) && compareValues(copyright, o.copyright, true) 2797 && compareValues(approvalDate, o.approvalDate, true) && compareValues(lastReviewDate, o.lastReviewDate, true) 2798 ; 2799 } 2800 2801 public boolean isEmpty() { 2802 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version 2803 , title, derivedFromUri, partOf, replaces, status, experimental, date, publisher 2804 , contact, description, useContext, jurisdiction, copyright, approvalDate, lastReviewDate 2805 , effectivePeriod, code, instance, applicability, propertyGroup); 2806 } 2807 2808 @Override 2809 public ResourceType getResourceType() { 2810 return ResourceType.ChargeItemDefinition; 2811 } 2812 2813 /** 2814 * Search parameter: <b>context-quantity</b> 2815 * <p> 2816 * Description: <b>A quantity- or range-valued use context assigned to the charge item definition</b><br> 2817 * Type: <b>quantity</b><br> 2818 * Path: <b>(ChargeItemDefinition.useContext.value as Quantity) | (ChargeItemDefinition.useContext.value as Range)</b><br> 2819 * </p> 2820 */ 2821 @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" ) 2822 public static final String SP_CONTEXT_QUANTITY = "context-quantity"; 2823 /** 2824 * <b>Fluent Client</b> search parameter constant for <b>context-quantity</b> 2825 * <p> 2826 * Description: <b>A quantity- or range-valued use context assigned to the charge item definition</b><br> 2827 * Type: <b>quantity</b><br> 2828 * Path: <b>(ChargeItemDefinition.useContext.value as Quantity) | (ChargeItemDefinition.useContext.value as Range)</b><br> 2829 * </p> 2830 */ 2831 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam CONTEXT_QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_CONTEXT_QUANTITY); 2832 2833 /** 2834 * Search parameter: <b>context-type-quantity</b> 2835 * <p> 2836 * Description: <b>A use context type and quantity- or range-based value assigned to the charge item definition</b><br> 2837 * Type: <b>composite</b><br> 2838 * Path: <b>ChargeItemDefinition.useContext</b><br> 2839 * </p> 2840 */ 2841 @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"} ) 2842 public static final String SP_CONTEXT_TYPE_QUANTITY = "context-type-quantity"; 2843 /** 2844 * <b>Fluent Client</b> search parameter constant for <b>context-type-quantity</b> 2845 * <p> 2846 * Description: <b>A use context type and quantity- or range-based value assigned to the charge item definition</b><br> 2847 * Type: <b>composite</b><br> 2848 * Path: <b>ChargeItemDefinition.useContext</b><br> 2849 * </p> 2850 */ 2851 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); 2852 2853 /** 2854 * Search parameter: <b>context-type-value</b> 2855 * <p> 2856 * Description: <b>A use context type and value assigned to the charge item definition</b><br> 2857 * Type: <b>composite</b><br> 2858 * Path: <b>ChargeItemDefinition.useContext</b><br> 2859 * </p> 2860 */ 2861 @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"} ) 2862 public static final String SP_CONTEXT_TYPE_VALUE = "context-type-value"; 2863 /** 2864 * <b>Fluent Client</b> search parameter constant for <b>context-type-value</b> 2865 * <p> 2866 * Description: <b>A use context type and value assigned to the charge item definition</b><br> 2867 * Type: <b>composite</b><br> 2868 * Path: <b>ChargeItemDefinition.useContext</b><br> 2869 * </p> 2870 */ 2871 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); 2872 2873 /** 2874 * Search parameter: <b>context-type</b> 2875 * <p> 2876 * Description: <b>A type of use context assigned to the charge item definition</b><br> 2877 * Type: <b>token</b><br> 2878 * Path: <b>ChargeItemDefinition.useContext.code</b><br> 2879 * </p> 2880 */ 2881 @SearchParamDefinition(name="context-type", path="ChargeItemDefinition.useContext.code", description="A type of use context assigned to the charge item definition", type="token" ) 2882 public static final String SP_CONTEXT_TYPE = "context-type"; 2883 /** 2884 * <b>Fluent Client</b> search parameter constant for <b>context-type</b> 2885 * <p> 2886 * Description: <b>A type of use context assigned to the charge item definition</b><br> 2887 * Type: <b>token</b><br> 2888 * Path: <b>ChargeItemDefinition.useContext.code</b><br> 2889 * </p> 2890 */ 2891 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT_TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT_TYPE); 2892 2893 /** 2894 * Search parameter: <b>context</b> 2895 * <p> 2896 * Description: <b>A use context assigned to the charge item definition</b><br> 2897 * Type: <b>token</b><br> 2898 * Path: <b>(ChargeItemDefinition.useContext.value as CodeableConcept)</b><br> 2899 * </p> 2900 */ 2901 @SearchParamDefinition(name="context", path="(ChargeItemDefinition.useContext.value as CodeableConcept)", description="A use context assigned to the charge item definition", type="token" ) 2902 public static final String SP_CONTEXT = "context"; 2903 /** 2904 * <b>Fluent Client</b> search parameter constant for <b>context</b> 2905 * <p> 2906 * Description: <b>A use context assigned to the charge item definition</b><br> 2907 * Type: <b>token</b><br> 2908 * Path: <b>(ChargeItemDefinition.useContext.value as CodeableConcept)</b><br> 2909 * </p> 2910 */ 2911 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CONTEXT); 2912 2913 /** 2914 * Search parameter: <b>date</b> 2915 * <p> 2916 * Description: <b>The charge item definition publication date</b><br> 2917 * Type: <b>date</b><br> 2918 * Path: <b>ChargeItemDefinition.date</b><br> 2919 * </p> 2920 */ 2921 @SearchParamDefinition(name="date", path="ChargeItemDefinition.date", description="The charge item definition publication date", type="date" ) 2922 public static final String SP_DATE = "date"; 2923 /** 2924 * <b>Fluent Client</b> search parameter constant for <b>date</b> 2925 * <p> 2926 * Description: <b>The charge item definition publication date</b><br> 2927 * Type: <b>date</b><br> 2928 * Path: <b>ChargeItemDefinition.date</b><br> 2929 * </p> 2930 */ 2931 public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE); 2932 2933 /** 2934 * Search parameter: <b>description</b> 2935 * <p> 2936 * Description: <b>The description of the charge item definition</b><br> 2937 * Type: <b>string</b><br> 2938 * Path: <b>ChargeItemDefinition.description</b><br> 2939 * </p> 2940 */ 2941 @SearchParamDefinition(name="description", path="ChargeItemDefinition.description", description="The description of the charge item definition", type="string" ) 2942 public static final String SP_DESCRIPTION = "description"; 2943 /** 2944 * <b>Fluent Client</b> search parameter constant for <b>description</b> 2945 * <p> 2946 * Description: <b>The description of the charge item definition</b><br> 2947 * Type: <b>string</b><br> 2948 * Path: <b>ChargeItemDefinition.description</b><br> 2949 * </p> 2950 */ 2951 public static final ca.uhn.fhir.rest.gclient.StringClientParam DESCRIPTION = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_DESCRIPTION); 2952 2953 /** 2954 * Search parameter: <b>effective</b> 2955 * <p> 2956 * Description: <b>The time during which the charge item definition is intended to be in use</b><br> 2957 * Type: <b>date</b><br> 2958 * Path: <b>ChargeItemDefinition.effectivePeriod</b><br> 2959 * </p> 2960 */ 2961 @SearchParamDefinition(name="effective", path="ChargeItemDefinition.effectivePeriod", description="The time during which the charge item definition is intended to be in use", type="date" ) 2962 public static final String SP_EFFECTIVE = "effective"; 2963 /** 2964 * <b>Fluent Client</b> search parameter constant for <b>effective</b> 2965 * <p> 2966 * Description: <b>The time during which the charge item definition is intended to be in use</b><br> 2967 * Type: <b>date</b><br> 2968 * Path: <b>ChargeItemDefinition.effectivePeriod</b><br> 2969 * </p> 2970 */ 2971 public static final ca.uhn.fhir.rest.gclient.DateClientParam EFFECTIVE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_EFFECTIVE); 2972 2973 /** 2974 * Search parameter: <b>identifier</b> 2975 * <p> 2976 * Description: <b>External identifier for the charge item definition</b><br> 2977 * Type: <b>token</b><br> 2978 * Path: <b>ChargeItemDefinition.identifier</b><br> 2979 * </p> 2980 */ 2981 @SearchParamDefinition(name="identifier", path="ChargeItemDefinition.identifier", description="External identifier for the charge item definition", type="token" ) 2982 public static final String SP_IDENTIFIER = "identifier"; 2983 /** 2984 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2985 * <p> 2986 * Description: <b>External identifier for the charge item definition</b><br> 2987 * Type: <b>token</b><br> 2988 * Path: <b>ChargeItemDefinition.identifier</b><br> 2989 * </p> 2990 */ 2991 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2992 2993 /** 2994 * Search parameter: <b>jurisdiction</b> 2995 * <p> 2996 * Description: <b>Intended jurisdiction for the charge item definition</b><br> 2997 * Type: <b>token</b><br> 2998 * Path: <b>ChargeItemDefinition.jurisdiction</b><br> 2999 * </p> 3000 */ 3001 @SearchParamDefinition(name="jurisdiction", path="ChargeItemDefinition.jurisdiction", description="Intended jurisdiction for the charge item definition", type="token" ) 3002 public static final String SP_JURISDICTION = "jurisdiction"; 3003 /** 3004 * <b>Fluent Client</b> search parameter constant for <b>jurisdiction</b> 3005 * <p> 3006 * Description: <b>Intended jurisdiction for the charge item definition</b><br> 3007 * Type: <b>token</b><br> 3008 * Path: <b>ChargeItemDefinition.jurisdiction</b><br> 3009 * </p> 3010 */ 3011 public static final ca.uhn.fhir.rest.gclient.TokenClientParam JURISDICTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_JURISDICTION); 3012 3013 /** 3014 * Search parameter: <b>publisher</b> 3015 * <p> 3016 * Description: <b>Name of the publisher of the charge item definition</b><br> 3017 * Type: <b>string</b><br> 3018 * Path: <b>ChargeItemDefinition.publisher</b><br> 3019 * </p> 3020 */ 3021 @SearchParamDefinition(name="publisher", path="ChargeItemDefinition.publisher", description="Name of the publisher of the charge item definition", type="string" ) 3022 public static final String SP_PUBLISHER = "publisher"; 3023 /** 3024 * <b>Fluent Client</b> search parameter constant for <b>publisher</b> 3025 * <p> 3026 * Description: <b>Name of the publisher of the charge item definition</b><br> 3027 * Type: <b>string</b><br> 3028 * Path: <b>ChargeItemDefinition.publisher</b><br> 3029 * </p> 3030 */ 3031 public static final ca.uhn.fhir.rest.gclient.StringClientParam PUBLISHER = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PUBLISHER); 3032 3033 /** 3034 * Search parameter: <b>status</b> 3035 * <p> 3036 * Description: <b>The current status of the charge item definition</b><br> 3037 * Type: <b>token</b><br> 3038 * Path: <b>ChargeItemDefinition.status</b><br> 3039 * </p> 3040 */ 3041 @SearchParamDefinition(name="status", path="ChargeItemDefinition.status", description="The current status of the charge item definition", type="token" ) 3042 public static final String SP_STATUS = "status"; 3043 /** 3044 * <b>Fluent Client</b> search parameter constant for <b>status</b> 3045 * <p> 3046 * Description: <b>The current status of the charge item definition</b><br> 3047 * Type: <b>token</b><br> 3048 * Path: <b>ChargeItemDefinition.status</b><br> 3049 * </p> 3050 */ 3051 public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS); 3052 3053 /** 3054 * Search parameter: <b>title</b> 3055 * <p> 3056 * Description: <b>The human-friendly name of the charge item definition</b><br> 3057 * Type: <b>string</b><br> 3058 * Path: <b>ChargeItemDefinition.title</b><br> 3059 * </p> 3060 */ 3061 @SearchParamDefinition(name="title", path="ChargeItemDefinition.title", description="The human-friendly name of the charge item definition", type="string" ) 3062 public static final String SP_TITLE = "title"; 3063 /** 3064 * <b>Fluent Client</b> search parameter constant for <b>title</b> 3065 * <p> 3066 * Description: <b>The human-friendly name of the charge item definition</b><br> 3067 * Type: <b>string</b><br> 3068 * Path: <b>ChargeItemDefinition.title</b><br> 3069 * </p> 3070 */ 3071 public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE); 3072 3073 /** 3074 * Search parameter: <b>url</b> 3075 * <p> 3076 * Description: <b>The uri that identifies the charge item definition</b><br> 3077 * Type: <b>uri</b><br> 3078 * Path: <b>ChargeItemDefinition.url</b><br> 3079 * </p> 3080 */ 3081 @SearchParamDefinition(name="url", path="ChargeItemDefinition.url", description="The uri that identifies the charge item definition", type="uri" ) 3082 public static final String SP_URL = "url"; 3083 /** 3084 * <b>Fluent Client</b> search parameter constant for <b>url</b> 3085 * <p> 3086 * Description: <b>The uri that identifies the charge item definition</b><br> 3087 * Type: <b>uri</b><br> 3088 * Path: <b>ChargeItemDefinition.url</b><br> 3089 * </p> 3090 */ 3091 public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL); 3092 3093 /** 3094 * Search parameter: <b>version</b> 3095 * <p> 3096 * Description: <b>The business version of the charge item definition</b><br> 3097 * Type: <b>token</b><br> 3098 * Path: <b>ChargeItemDefinition.version</b><br> 3099 * </p> 3100 */ 3101 @SearchParamDefinition(name="version", path="ChargeItemDefinition.version", description="The business version of the charge item definition", type="token" ) 3102 public static final String SP_VERSION = "version"; 3103 /** 3104 * <b>Fluent Client</b> search parameter constant for <b>version</b> 3105 * <p> 3106 * Description: <b>The business version of the charge item definition</b><br> 3107 * Type: <b>token</b><br> 3108 * Path: <b>ChargeItemDefinition.version</b><br> 3109 * </p> 3110 */ 3111 public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION); 3112 3113 3114} 3115