001package org.hl7.fhir.r4.model; 002 003import java.math.BigDecimal; 004 005/*- 006 * #%L 007 * org.hl7.fhir.r4 008 * %% 009 * Copyright (C) 2014 - 2019 Health Level 7 010 * %% 011 * Licensed under the Apache License, Version 2.0 (the "License"); 012 * you may not use this file except in compliance with the License. 013 * You may obtain a copy of the License at 014 * 015 * http://www.apache.org/licenses/LICENSE-2.0 016 * 017 * Unless required by applicable law or agreed to in writing, software 018 * distributed under the License is distributed on an "AS IS" BASIS, 019 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 020 * See the License for the specific language governing permissions and 021 * limitations under the License. 022 * #L% 023 */ 024 025/* 026 Copyright (c) 2011+, HL7, Inc. 027 All rights reserved. 028 029 Redistribution and use in source and binary forms, with or without modification, 030 are permitted provided that the following conditions are met: 031 032 * Redistributions of source code must retain the above copyright notice, this 033 list of conditions and the following disclaimer. 034 * Redistributions in binary form must reproduce the above copyright notice, 035 this list of conditions and the following disclaimer in the documentation 036 and/or other materials provided with the distribution. 037 * Neither the name of HL7 nor the names of its contributors may be used to 038 endorse or promote products derived from this software without specific 039 prior written permission. 040 041 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 042 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 043 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 044 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 045 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 046 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 047 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 048 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 049 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 050 POSSIBILITY OF SUCH DAMAGE. 051 052*/ 053 054// Generated on Thu, Dec 13, 2018 14:07+1100 for FHIR v4.0.0 055import java.util.ArrayList; 056import java.util.Date; 057import java.util.List; 058 059import org.hl7.fhir.exceptions.FHIRException; 060import org.hl7.fhir.instance.model.api.IBaseBackboneElement; 061import org.hl7.fhir.utilities.Utilities; 062 063import ca.uhn.fhir.model.api.annotation.Block; 064import ca.uhn.fhir.model.api.annotation.Child; 065import ca.uhn.fhir.model.api.annotation.Description; 066import ca.uhn.fhir.model.api.annotation.ResourceDef; 067import ca.uhn.fhir.model.api.annotation.SearchParamDefinition; 068/** 069 * The resource ChargeItem describes the provision of healthcare provider products for a certain patient, therefore referring not only to the product, but containing in addition details of the provision, like date, time, amounts and participating organizations and persons. Main Usage of the ChargeItem is to enable the billing process and internal cost allocation. 070 */ 071@ResourceDef(name="ChargeItem", profile="http://hl7.org/fhir/StructureDefinition/ChargeItem") 072public class ChargeItem extends DomainResource { 073 074 public enum ChargeItemStatus { 075 /** 076 * The charge item has been entered, but the charged service is not yet complete, so it shall not be billed yet but might be used in the context of pre-authorization. 077 */ 078 PLANNED, 079 /** 080 * The charge item is ready for billing. 081 */ 082 BILLABLE, 083 /** 084 * The charge item has been determined to be not billable (e.g. due to rules associated with the billing code). 085 */ 086 NOTBILLABLE, 087 /** 088 * The processing of the charge was aborted. 089 */ 090 ABORTED, 091 /** 092 * The charge item has been billed (e.g. a billing engine has generated financial transactions by applying the associated ruled for the charge item to the context of the Encounter, and placed them into Claims/Invoices. 093 */ 094 BILLED, 095 /** 096 * The charge item has been entered in error and should not be processed for billing. 097 */ 098 ENTEREDINERROR, 099 /** 100 * The authoring system does not know which of the status values currently applies for this charge item Note: This concept is not to be used for "other" - one of the listed statuses is presumed to apply, it's just not known which one. 101 */ 102 UNKNOWN, 103 /** 104 * added to help the parsers with the generic types 105 */ 106 NULL; 107 public static ChargeItemStatus fromCode(String codeString) throws FHIRException { 108 if (codeString == null || "".equals(codeString)) 109 return null; 110 if ("planned".equals(codeString)) 111 return PLANNED; 112 if ("billable".equals(codeString)) 113 return BILLABLE; 114 if ("not-billable".equals(codeString)) 115 return NOTBILLABLE; 116 if ("aborted".equals(codeString)) 117 return ABORTED; 118 if ("billed".equals(codeString)) 119 return BILLED; 120 if ("entered-in-error".equals(codeString)) 121 return ENTEREDINERROR; 122 if ("unknown".equals(codeString)) 123 return UNKNOWN; 124 if (Configuration.isAcceptInvalidEnums()) 125 return null; 126 else 127 throw new FHIRException("Unknown ChargeItemStatus code '"+codeString+"'"); 128 } 129 public String toCode() { 130 switch (this) { 131 case PLANNED: return "planned"; 132 case BILLABLE: return "billable"; 133 case NOTBILLABLE: return "not-billable"; 134 case ABORTED: return "aborted"; 135 case BILLED: return "billed"; 136 case ENTEREDINERROR: return "entered-in-error"; 137 case UNKNOWN: return "unknown"; 138 default: return "?"; 139 } 140 } 141 public String getSystem() { 142 switch (this) { 143 case PLANNED: return "http://hl7.org/fhir/chargeitem-status"; 144 case BILLABLE: return "http://hl7.org/fhir/chargeitem-status"; 145 case NOTBILLABLE: return "http://hl7.org/fhir/chargeitem-status"; 146 case ABORTED: return "http://hl7.org/fhir/chargeitem-status"; 147 case BILLED: return "http://hl7.org/fhir/chargeitem-status"; 148 case ENTEREDINERROR: return "http://hl7.org/fhir/chargeitem-status"; 149 case UNKNOWN: return "http://hl7.org/fhir/chargeitem-status"; 150 default: return "?"; 151 } 152 } 153 public String getDefinition() { 154 switch (this) { 155 case PLANNED: return "The charge item has been entered, but the charged service is not yet complete, so it shall not be billed yet but might be used in the context of pre-authorization."; 156 case BILLABLE: return "The charge item is ready for billing."; 157 case NOTBILLABLE: return "The charge item has been determined to be not billable (e.g. due to rules associated with the billing code)."; 158 case ABORTED: return "The processing of the charge was aborted."; 159 case BILLED: return "The charge item has been billed (e.g. a billing engine has generated financial transactions by applying the associated ruled for the charge item to the context of the Encounter, and placed them into Claims/Invoices."; 160 case ENTEREDINERROR: return "The charge item has been entered in error and should not be processed for billing."; 161 case UNKNOWN: return "The authoring system does not know which of the status values currently applies for this charge item Note: This concept is not to be used for \"other\" - one of the listed statuses is presumed to apply, it's just not known which one."; 162 default: return "?"; 163 } 164 } 165 public String getDisplay() { 166 switch (this) { 167 case PLANNED: return "Planned"; 168 case BILLABLE: return "Billable"; 169 case NOTBILLABLE: return "Not billable"; 170 case ABORTED: return "Aborted"; 171 case BILLED: return "Billed"; 172 case ENTEREDINERROR: return "Entered in Error"; 173 case UNKNOWN: return "Unknown"; 174 default: return "?"; 175 } 176 } 177 } 178 179 public static class ChargeItemStatusEnumFactory implements EnumFactory<ChargeItemStatus> { 180 public ChargeItemStatus fromCode(String codeString) throws IllegalArgumentException { 181 if (codeString == null || "".equals(codeString)) 182 if (codeString == null || "".equals(codeString)) 183 return null; 184 if ("planned".equals(codeString)) 185 return ChargeItemStatus.PLANNED; 186 if ("billable".equals(codeString)) 187 return ChargeItemStatus.BILLABLE; 188 if ("not-billable".equals(codeString)) 189 return ChargeItemStatus.NOTBILLABLE; 190 if ("aborted".equals(codeString)) 191 return ChargeItemStatus.ABORTED; 192 if ("billed".equals(codeString)) 193 return ChargeItemStatus.BILLED; 194 if ("entered-in-error".equals(codeString)) 195 return ChargeItemStatus.ENTEREDINERROR; 196 if ("unknown".equals(codeString)) 197 return ChargeItemStatus.UNKNOWN; 198 throw new IllegalArgumentException("Unknown ChargeItemStatus code '"+codeString+"'"); 199 } 200 public Enumeration<ChargeItemStatus> fromType(Base code) throws FHIRException { 201 if (code == null) 202 return null; 203 if (code.isEmpty()) 204 return new Enumeration<ChargeItemStatus>(this); 205 String codeString = ((PrimitiveType) code).asStringValue(); 206 if (codeString == null || "".equals(codeString)) 207 return null; 208 if ("planned".equals(codeString)) 209 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.PLANNED); 210 if ("billable".equals(codeString)) 211 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.BILLABLE); 212 if ("not-billable".equals(codeString)) 213 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.NOTBILLABLE); 214 if ("aborted".equals(codeString)) 215 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.ABORTED); 216 if ("billed".equals(codeString)) 217 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.BILLED); 218 if ("entered-in-error".equals(codeString)) 219 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.ENTEREDINERROR); 220 if ("unknown".equals(codeString)) 221 return new Enumeration<ChargeItemStatus>(this, ChargeItemStatus.UNKNOWN); 222 throw new FHIRException("Unknown ChargeItemStatus code '"+codeString+"'"); 223 } 224 public String toCode(ChargeItemStatus code) { 225 if (code == ChargeItemStatus.PLANNED) 226 return "planned"; 227 if (code == ChargeItemStatus.BILLABLE) 228 return "billable"; 229 if (code == ChargeItemStatus.NOTBILLABLE) 230 return "not-billable"; 231 if (code == ChargeItemStatus.ABORTED) 232 return "aborted"; 233 if (code == ChargeItemStatus.BILLED) 234 return "billed"; 235 if (code == ChargeItemStatus.ENTEREDINERROR) 236 return "entered-in-error"; 237 if (code == ChargeItemStatus.UNKNOWN) 238 return "unknown"; 239 return "?"; 240 } 241 public String toSystem(ChargeItemStatus code) { 242 return code.getSystem(); 243 } 244 } 245 246 @Block() 247 public static class ChargeItemPerformerComponent extends BackboneElement implements IBaseBackboneElement { 248 /** 249 * Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.). 250 */ 251 @Child(name = "function", type = {CodeableConcept.class}, order=1, min=0, max=1, modifier=false, summary=false) 252 @Description(shortDefinition="What type of performance was done", formalDefinition="Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.)." ) 253 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/performer-role") 254 protected CodeableConcept function; 255 256 /** 257 * The device, practitioner, etc. who performed or participated in the service. 258 */ 259 @Child(name = "actor", type = {Practitioner.class, PractitionerRole.class, Organization.class, CareTeam.class, Patient.class, Device.class, RelatedPerson.class}, order=2, min=1, max=1, modifier=false, summary=false) 260 @Description(shortDefinition="Individual who was performing", formalDefinition="The device, practitioner, etc. who performed or participated in the service." ) 261 protected Reference actor; 262 263 /** 264 * The actual object that is the target of the reference (The device, practitioner, etc. who performed or participated in the service.) 265 */ 266 protected Resource actorTarget; 267 268 private static final long serialVersionUID = 1424001049L; 269 270 /** 271 * Constructor 272 */ 273 public ChargeItemPerformerComponent() { 274 super(); 275 } 276 277 /** 278 * Constructor 279 */ 280 public ChargeItemPerformerComponent(Reference actor) { 281 super(); 282 this.actor = actor; 283 } 284 285 /** 286 * @return {@link #function} (Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).) 287 */ 288 public CodeableConcept getFunction() { 289 if (this.function == null) 290 if (Configuration.errorOnAutoCreate()) 291 throw new Error("Attempt to auto-create ChargeItemPerformerComponent.function"); 292 else if (Configuration.doAutoCreate()) 293 this.function = new CodeableConcept(); // cc 294 return this.function; 295 } 296 297 public boolean hasFunction() { 298 return this.function != null && !this.function.isEmpty(); 299 } 300 301 /** 302 * @param value {@link #function} (Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).) 303 */ 304 public ChargeItemPerformerComponent setFunction(CodeableConcept value) { 305 this.function = value; 306 return this; 307 } 308 309 /** 310 * @return {@link #actor} (The device, practitioner, etc. who performed or participated in the service.) 311 */ 312 public Reference getActor() { 313 if (this.actor == null) 314 if (Configuration.errorOnAutoCreate()) 315 throw new Error("Attempt to auto-create ChargeItemPerformerComponent.actor"); 316 else if (Configuration.doAutoCreate()) 317 this.actor = new Reference(); // cc 318 return this.actor; 319 } 320 321 public boolean hasActor() { 322 return this.actor != null && !this.actor.isEmpty(); 323 } 324 325 /** 326 * @param value {@link #actor} (The device, practitioner, etc. who performed or participated in the service.) 327 */ 328 public ChargeItemPerformerComponent setActor(Reference value) { 329 this.actor = value; 330 return this; 331 } 332 333 /** 334 * @return {@link #actor} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The device, practitioner, etc. who performed or participated in the service.) 335 */ 336 public Resource getActorTarget() { 337 return this.actorTarget; 338 } 339 340 /** 341 * @param value {@link #actor} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The device, practitioner, etc. who performed or participated in the service.) 342 */ 343 public ChargeItemPerformerComponent setActorTarget(Resource value) { 344 this.actorTarget = value; 345 return this; 346 } 347 348 protected void listChildren(List<Property> children) { 349 super.listChildren(children); 350 children.add(new Property("function", "CodeableConcept", "Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).", 0, 1, function)); 351 children.add(new Property("actor", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "The device, practitioner, etc. who performed or participated in the service.", 0, 1, actor)); 352 } 353 354 @Override 355 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 356 switch (_hash) { 357 case 1380938712: /*function*/ return new Property("function", "CodeableConcept", "Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.).", 0, 1, function); 358 case 92645877: /*actor*/ return new Property("actor", "Reference(Practitioner|PractitionerRole|Organization|CareTeam|Patient|Device|RelatedPerson)", "The device, practitioner, etc. who performed or participated in the service.", 0, 1, actor); 359 default: return super.getNamedProperty(_hash, _name, _checkValid); 360 } 361 362 } 363 364 @Override 365 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 366 switch (hash) { 367 case 1380938712: /*function*/ return this.function == null ? new Base[0] : new Base[] {this.function}; // CodeableConcept 368 case 92645877: /*actor*/ return this.actor == null ? new Base[0] : new Base[] {this.actor}; // Reference 369 default: return super.getProperty(hash, name, checkValid); 370 } 371 372 } 373 374 @Override 375 public Base setProperty(int hash, String name, Base value) throws FHIRException { 376 switch (hash) { 377 case 1380938712: // function 378 this.function = castToCodeableConcept(value); // CodeableConcept 379 return value; 380 case 92645877: // actor 381 this.actor = castToReference(value); // Reference 382 return value; 383 default: return super.setProperty(hash, name, value); 384 } 385 386 } 387 388 @Override 389 public Base setProperty(String name, Base value) throws FHIRException { 390 if (name.equals("function")) { 391 this.function = castToCodeableConcept(value); // CodeableConcept 392 } else if (name.equals("actor")) { 393 this.actor = castToReference(value); // Reference 394 } else 395 return super.setProperty(name, value); 396 return value; 397 } 398 399 @Override 400 public Base makeProperty(int hash, String name) throws FHIRException { 401 switch (hash) { 402 case 1380938712: return getFunction(); 403 case 92645877: return getActor(); 404 default: return super.makeProperty(hash, name); 405 } 406 407 } 408 409 @Override 410 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 411 switch (hash) { 412 case 1380938712: /*function*/ return new String[] {"CodeableConcept"}; 413 case 92645877: /*actor*/ return new String[] {"Reference"}; 414 default: return super.getTypesForProperty(hash, name); 415 } 416 417 } 418 419 @Override 420 public Base addChild(String name) throws FHIRException { 421 if (name.equals("function")) { 422 this.function = new CodeableConcept(); 423 return this.function; 424 } 425 else if (name.equals("actor")) { 426 this.actor = new Reference(); 427 return this.actor; 428 } 429 else 430 return super.addChild(name); 431 } 432 433 public ChargeItemPerformerComponent copy() { 434 ChargeItemPerformerComponent dst = new ChargeItemPerformerComponent(); 435 copyValues(dst); 436 dst.function = function == null ? null : function.copy(); 437 dst.actor = actor == null ? null : actor.copy(); 438 return dst; 439 } 440 441 @Override 442 public boolean equalsDeep(Base other_) { 443 if (!super.equalsDeep(other_)) 444 return false; 445 if (!(other_ instanceof ChargeItemPerformerComponent)) 446 return false; 447 ChargeItemPerformerComponent o = (ChargeItemPerformerComponent) other_; 448 return compareDeep(function, o.function, true) && compareDeep(actor, o.actor, true); 449 } 450 451 @Override 452 public boolean equalsShallow(Base other_) { 453 if (!super.equalsShallow(other_)) 454 return false; 455 if (!(other_ instanceof ChargeItemPerformerComponent)) 456 return false; 457 ChargeItemPerformerComponent o = (ChargeItemPerformerComponent) other_; 458 return true; 459 } 460 461 public boolean isEmpty() { 462 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(function, actor); 463 } 464 465 public String fhirType() { 466 return "ChargeItem.performer"; 467 468 } 469 470 } 471 472 /** 473 * Identifiers assigned to this event performer or other systems. 474 */ 475 @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 476 @Description(shortDefinition="Business Identifier for item", formalDefinition="Identifiers assigned to this event performer or other systems." ) 477 protected List<Identifier> identifier; 478 479 /** 480 * References the (external) source of pricing information, rules of application for the code this ChargeItem uses. 481 */ 482 @Child(name = "definitionUri", type = {UriType.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 483 @Description(shortDefinition="Defining information about the code of this charge item", formalDefinition="References the (external) source of pricing information, rules of application for the code this ChargeItem uses." ) 484 protected List<UriType> definitionUri; 485 486 /** 487 * References the source of pricing information, rules of application for the code this ChargeItem uses. 488 */ 489 @Child(name = "definitionCanonical", type = {CanonicalType.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 490 @Description(shortDefinition="Resource defining the code of this ChargeItem", formalDefinition="References the source of pricing information, rules of application for the code this ChargeItem uses." ) 491 protected List<CanonicalType> definitionCanonical; 492 493 /** 494 * The current state of the ChargeItem. 495 */ 496 @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true) 497 @Description(shortDefinition="planned | billable | not-billable | aborted | billed | entered-in-error | unknown", formalDefinition="The current state of the ChargeItem." ) 498 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/chargeitem-status") 499 protected Enumeration<ChargeItemStatus> status; 500 501 /** 502 * ChargeItems can be grouped to larger ChargeItems covering the whole set. 503 */ 504 @Child(name = "partOf", type = {ChargeItem.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 505 @Description(shortDefinition="Part of referenced ChargeItem", formalDefinition="ChargeItems can be grouped to larger ChargeItems covering the whole set." ) 506 protected List<Reference> partOf; 507 /** 508 * The actual objects that are the target of the reference (ChargeItems can be grouped to larger ChargeItems covering the whole set.) 509 */ 510 protected List<ChargeItem> partOfTarget; 511 512 513 /** 514 * A code that identifies the charge, like a billing code. 515 */ 516 @Child(name = "code", type = {CodeableConcept.class}, order=5, min=1, max=1, modifier=false, summary=true) 517 @Description(shortDefinition="A code that identifies the charge, like a billing code", formalDefinition="A code that identifies the charge, like a billing code." ) 518 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/chargeitem-billingcodes") 519 protected CodeableConcept code; 520 521 /** 522 * The individual or set of individuals the action is being or was performed on. 523 */ 524 @Child(name = "subject", type = {Patient.class, Group.class}, order=6, min=1, max=1, modifier=false, summary=true) 525 @Description(shortDefinition="Individual service was done for/to", formalDefinition="The individual or set of individuals the action is being or was performed on." ) 526 protected Reference subject; 527 528 /** 529 * The actual object that is the target of the reference (The individual or set of individuals the action is being or was performed on.) 530 */ 531 protected Resource subjectTarget; 532 533 /** 534 * The encounter or episode of care that establishes the context for this event. 535 */ 536 @Child(name = "context", type = {Encounter.class, EpisodeOfCare.class}, order=7, min=0, max=1, modifier=false, summary=true) 537 @Description(shortDefinition="Encounter / Episode associated with event", formalDefinition="The encounter or episode of care that establishes the context for this event." ) 538 protected Reference context; 539 540 /** 541 * The actual object that is the target of the reference (The encounter or episode of care that establishes the context for this event.) 542 */ 543 protected Resource contextTarget; 544 545 /** 546 * Date/time(s) or duration when the charged service was applied. 547 */ 548 @Child(name = "occurrence", type = {DateTimeType.class, Period.class, Timing.class}, order=8, min=0, max=1, modifier=false, summary=true) 549 @Description(shortDefinition="When the charged service was applied", formalDefinition="Date/time(s) or duration when the charged service was applied." ) 550 protected Type occurrence; 551 552 /** 553 * Indicates who or what performed or participated in the charged service. 554 */ 555 @Child(name = "performer", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 556 @Description(shortDefinition="Who performed charged service", formalDefinition="Indicates who or what performed or participated in the charged service." ) 557 protected List<ChargeItemPerformerComponent> performer; 558 559 /** 560 * The organization requesting the service. 561 */ 562 @Child(name = "performingOrganization", type = {Organization.class}, order=10, min=0, max=1, modifier=false, summary=false) 563 @Description(shortDefinition="Organization providing the charged service", formalDefinition="The organization requesting the service." ) 564 protected Reference performingOrganization; 565 566 /** 567 * The actual object that is the target of the reference (The organization requesting the service.) 568 */ 569 protected Organization performingOrganizationTarget; 570 571 /** 572 * The organization performing the service. 573 */ 574 @Child(name = "requestingOrganization", type = {Organization.class}, order=11, min=0, max=1, modifier=false, summary=false) 575 @Description(shortDefinition="Organization requesting the charged service", formalDefinition="The organization performing the service." ) 576 protected Reference requestingOrganization; 577 578 /** 579 * The actual object that is the target of the reference (The organization performing the service.) 580 */ 581 protected Organization requestingOrganizationTarget; 582 583 /** 584 * The financial cost center permits the tracking of charge attribution. 585 */ 586 @Child(name = "costCenter", type = {Organization.class}, order=12, min=0, max=1, modifier=false, summary=false) 587 @Description(shortDefinition="Organization that has ownership of the (potential, future) revenue", formalDefinition="The financial cost center permits the tracking of charge attribution." ) 588 protected Reference costCenter; 589 590 /** 591 * The actual object that is the target of the reference (The financial cost center permits the tracking of charge attribution.) 592 */ 593 protected Organization costCenterTarget; 594 595 /** 596 * Quantity of which the charge item has been serviced. 597 */ 598 @Child(name = "quantity", type = {Quantity.class}, order=13, min=0, max=1, modifier=false, summary=true) 599 @Description(shortDefinition="Quantity of which the charge item has been serviced", formalDefinition="Quantity of which the charge item has been serviced." ) 600 protected Quantity quantity; 601 602 /** 603 * The anatomical location where the related service has been applied. 604 */ 605 @Child(name = "bodysite", type = {CodeableConcept.class}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 606 @Description(shortDefinition="Anatomical location, if relevant", formalDefinition="The anatomical location where the related service has been applied." ) 607 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/body-site") 608 protected List<CodeableConcept> bodysite; 609 610 /** 611 * Factor overriding the factor determined by the rules associated with the code. 612 */ 613 @Child(name = "factorOverride", type = {DecimalType.class}, order=15, min=0, max=1, modifier=false, summary=false) 614 @Description(shortDefinition="Factor overriding the associated rules", formalDefinition="Factor overriding the factor determined by the rules associated with the code." ) 615 protected DecimalType factorOverride; 616 617 /** 618 * Total price of the charge overriding the list price associated with the code. 619 */ 620 @Child(name = "priceOverride", type = {Money.class}, order=16, min=0, max=1, modifier=false, summary=false) 621 @Description(shortDefinition="Price overriding the associated rules", formalDefinition="Total price of the charge overriding the list price associated with the code." ) 622 protected Money priceOverride; 623 624 /** 625 * If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action. 626 */ 627 @Child(name = "overrideReason", type = {StringType.class}, order=17, min=0, max=1, modifier=false, summary=false) 628 @Description(shortDefinition="Reason for overriding the list price/factor", formalDefinition="If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action." ) 629 protected StringType overrideReason; 630 631 /** 632 * The device, practitioner, etc. who entered the charge item. 633 */ 634 @Child(name = "enterer", type = {Practitioner.class, PractitionerRole.class, Organization.class, Patient.class, Device.class, RelatedPerson.class}, order=18, min=0, max=1, modifier=false, summary=true) 635 @Description(shortDefinition="Individual who was entering", formalDefinition="The device, practitioner, etc. who entered the charge item." ) 636 protected Reference enterer; 637 638 /** 639 * The actual object that is the target of the reference (The device, practitioner, etc. who entered the charge item.) 640 */ 641 protected Resource entererTarget; 642 643 /** 644 * Date the charge item was entered. 645 */ 646 @Child(name = "enteredDate", type = {DateTimeType.class}, order=19, min=0, max=1, modifier=false, summary=true) 647 @Description(shortDefinition="Date the charge item was entered", formalDefinition="Date the charge item was entered." ) 648 protected DateTimeType enteredDate; 649 650 /** 651 * Describes why the event occurred in coded or textual form. 652 */ 653 @Child(name = "reason", type = {CodeableConcept.class}, order=20, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 654 @Description(shortDefinition="Why was the charged service rendered?", formalDefinition="Describes why the event occurred in coded or textual form." ) 655 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/icd-10") 656 protected List<CodeableConcept> reason; 657 658 /** 659 * Indicated the rendered service that caused this charge. 660 */ 661 @Child(name = "service", type = {DiagnosticReport.class, ImagingStudy.class, Immunization.class, MedicationAdministration.class, MedicationDispense.class, Observation.class, Procedure.class, SupplyDelivery.class}, order=21, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 662 @Description(shortDefinition="Which rendered service is being charged?", formalDefinition="Indicated the rendered service that caused this charge." ) 663 protected List<Reference> service; 664 /** 665 * The actual objects that are the target of the reference (Indicated the rendered service that caused this charge.) 666 */ 667 protected List<Resource> serviceTarget; 668 669 670 /** 671 * Identifies the device, food, drug or other product being charged either by type code or reference to an instance. 672 */ 673 @Child(name = "product", type = {Device.class, Medication.class, Substance.class, CodeableConcept.class}, order=22, min=0, max=1, modifier=false, summary=false) 674 @Description(shortDefinition="Product charged", formalDefinition="Identifies the device, food, drug or other product being charged either by type code or reference to an instance." ) 675 @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/device-kind") 676 protected Type product; 677 678 /** 679 * Account into which this ChargeItems belongs. 680 */ 681 @Child(name = "account", type = {Account.class}, order=23, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true) 682 @Description(shortDefinition="Account to place this charge", formalDefinition="Account into which this ChargeItems belongs." ) 683 protected List<Reference> account; 684 /** 685 * The actual objects that are the target of the reference (Account into which this ChargeItems belongs.) 686 */ 687 protected List<Account> accountTarget; 688 689 690 /** 691 * Comments made about the event by the performer, subject or other participants. 692 */ 693 @Child(name = "note", type = {Annotation.class}, order=24, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 694 @Description(shortDefinition="Comments made about the ChargeItem", formalDefinition="Comments made about the event by the performer, subject or other participants." ) 695 protected List<Annotation> note; 696 697 /** 698 * Further information supporting this charge. 699 */ 700 @Child(name = "supportingInformation", type = {Reference.class}, order=25, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false) 701 @Description(shortDefinition="Further information supporting this charge", formalDefinition="Further information supporting this charge." ) 702 protected List<Reference> supportingInformation; 703 /** 704 * The actual objects that are the target of the reference (Further information supporting this charge.) 705 */ 706 protected List<Resource> supportingInformationTarget; 707 708 709 private static final long serialVersionUID = 1748644267L; 710 711 /** 712 * Constructor 713 */ 714 public ChargeItem() { 715 super(); 716 } 717 718 /** 719 * Constructor 720 */ 721 public ChargeItem(Enumeration<ChargeItemStatus> status, CodeableConcept code, Reference subject) { 722 super(); 723 this.status = status; 724 this.code = code; 725 this.subject = subject; 726 } 727 728 /** 729 * @return {@link #identifier} (Identifiers assigned to this event performer or other systems.) 730 */ 731 public List<Identifier> getIdentifier() { 732 if (this.identifier == null) 733 this.identifier = new ArrayList<Identifier>(); 734 return this.identifier; 735 } 736 737 /** 738 * @return Returns a reference to <code>this</code> for easy method chaining 739 */ 740 public ChargeItem setIdentifier(List<Identifier> theIdentifier) { 741 this.identifier = theIdentifier; 742 return this; 743 } 744 745 public boolean hasIdentifier() { 746 if (this.identifier == null) 747 return false; 748 for (Identifier item : this.identifier) 749 if (!item.isEmpty()) 750 return true; 751 return false; 752 } 753 754 public Identifier addIdentifier() { //3 755 Identifier t = new Identifier(); 756 if (this.identifier == null) 757 this.identifier = new ArrayList<Identifier>(); 758 this.identifier.add(t); 759 return t; 760 } 761 762 public ChargeItem addIdentifier(Identifier t) { //3 763 if (t == null) 764 return this; 765 if (this.identifier == null) 766 this.identifier = new ArrayList<Identifier>(); 767 this.identifier.add(t); 768 return this; 769 } 770 771 /** 772 * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist 773 */ 774 public Identifier getIdentifierFirstRep() { 775 if (getIdentifier().isEmpty()) { 776 addIdentifier(); 777 } 778 return getIdentifier().get(0); 779 } 780 781 /** 782 * @return {@link #definitionUri} (References the (external) source of pricing information, rules of application for the code this ChargeItem uses.) 783 */ 784 public List<UriType> getDefinitionUri() { 785 if (this.definitionUri == null) 786 this.definitionUri = new ArrayList<UriType>(); 787 return this.definitionUri; 788 } 789 790 /** 791 * @return Returns a reference to <code>this</code> for easy method chaining 792 */ 793 public ChargeItem setDefinitionUri(List<UriType> theDefinitionUri) { 794 this.definitionUri = theDefinitionUri; 795 return this; 796 } 797 798 public boolean hasDefinitionUri() { 799 if (this.definitionUri == null) 800 return false; 801 for (UriType item : this.definitionUri) 802 if (!item.isEmpty()) 803 return true; 804 return false; 805 } 806 807 /** 808 * @return {@link #definitionUri} (References the (external) source of pricing information, rules of application for the code this ChargeItem uses.) 809 */ 810 public UriType addDefinitionUriElement() {//2 811 UriType t = new UriType(); 812 if (this.definitionUri == null) 813 this.definitionUri = new ArrayList<UriType>(); 814 this.definitionUri.add(t); 815 return t; 816 } 817 818 /** 819 * @param value {@link #definitionUri} (References the (external) source of pricing information, rules of application for the code this ChargeItem uses.) 820 */ 821 public ChargeItem addDefinitionUri(String value) { //1 822 UriType t = new UriType(); 823 t.setValue(value); 824 if (this.definitionUri == null) 825 this.definitionUri = new ArrayList<UriType>(); 826 this.definitionUri.add(t); 827 return this; 828 } 829 830 /** 831 * @param value {@link #definitionUri} (References the (external) source of pricing information, rules of application for the code this ChargeItem uses.) 832 */ 833 public boolean hasDefinitionUri(String value) { 834 if (this.definitionUri == null) 835 return false; 836 for (UriType v : this.definitionUri) 837 if (v.getValue().equals(value)) // uri 838 return true; 839 return false; 840 } 841 842 /** 843 * @return {@link #definitionCanonical} (References the source of pricing information, rules of application for the code this ChargeItem uses.) 844 */ 845 public List<CanonicalType> getDefinitionCanonical() { 846 if (this.definitionCanonical == null) 847 this.definitionCanonical = new ArrayList<CanonicalType>(); 848 return this.definitionCanonical; 849 } 850 851 /** 852 * @return Returns a reference to <code>this</code> for easy method chaining 853 */ 854 public ChargeItem setDefinitionCanonical(List<CanonicalType> theDefinitionCanonical) { 855 this.definitionCanonical = theDefinitionCanonical; 856 return this; 857 } 858 859 public boolean hasDefinitionCanonical() { 860 if (this.definitionCanonical == null) 861 return false; 862 for (CanonicalType item : this.definitionCanonical) 863 if (!item.isEmpty()) 864 return true; 865 return false; 866 } 867 868 /** 869 * @return {@link #definitionCanonical} (References the source of pricing information, rules of application for the code this ChargeItem uses.) 870 */ 871 public CanonicalType addDefinitionCanonicalElement() {//2 872 CanonicalType t = new CanonicalType(); 873 if (this.definitionCanonical == null) 874 this.definitionCanonical = new ArrayList<CanonicalType>(); 875 this.definitionCanonical.add(t); 876 return t; 877 } 878 879 /** 880 * @param value {@link #definitionCanonical} (References the source of pricing information, rules of application for the code this ChargeItem uses.) 881 */ 882 public ChargeItem addDefinitionCanonical(String value) { //1 883 CanonicalType t = new CanonicalType(); 884 t.setValue(value); 885 if (this.definitionCanonical == null) 886 this.definitionCanonical = new ArrayList<CanonicalType>(); 887 this.definitionCanonical.add(t); 888 return this; 889 } 890 891 /** 892 * @param value {@link #definitionCanonical} (References the source of pricing information, rules of application for the code this ChargeItem uses.) 893 */ 894 public boolean hasDefinitionCanonical(String value) { 895 if (this.definitionCanonical == null) 896 return false; 897 for (CanonicalType v : this.definitionCanonical) 898 if (v.getValue().equals(value)) // canonical(ChargeItemDefinition) 899 return true; 900 return false; 901 } 902 903 /** 904 * @return {@link #status} (The current state of the ChargeItem.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 905 */ 906 public Enumeration<ChargeItemStatus> getStatusElement() { 907 if (this.status == null) 908 if (Configuration.errorOnAutoCreate()) 909 throw new Error("Attempt to auto-create ChargeItem.status"); 910 else if (Configuration.doAutoCreate()) 911 this.status = new Enumeration<ChargeItemStatus>(new ChargeItemStatusEnumFactory()); // bb 912 return this.status; 913 } 914 915 public boolean hasStatusElement() { 916 return this.status != null && !this.status.isEmpty(); 917 } 918 919 public boolean hasStatus() { 920 return this.status != null && !this.status.isEmpty(); 921 } 922 923 /** 924 * @param value {@link #status} (The current state of the ChargeItem.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value 925 */ 926 public ChargeItem setStatusElement(Enumeration<ChargeItemStatus> value) { 927 this.status = value; 928 return this; 929 } 930 931 /** 932 * @return The current state of the ChargeItem. 933 */ 934 public ChargeItemStatus getStatus() { 935 return this.status == null ? null : this.status.getValue(); 936 } 937 938 /** 939 * @param value The current state of the ChargeItem. 940 */ 941 public ChargeItem setStatus(ChargeItemStatus value) { 942 if (this.status == null) 943 this.status = new Enumeration<ChargeItemStatus>(new ChargeItemStatusEnumFactory()); 944 this.status.setValue(value); 945 return this; 946 } 947 948 /** 949 * @return {@link #partOf} (ChargeItems can be grouped to larger ChargeItems covering the whole set.) 950 */ 951 public List<Reference> getPartOf() { 952 if (this.partOf == null) 953 this.partOf = new ArrayList<Reference>(); 954 return this.partOf; 955 } 956 957 /** 958 * @return Returns a reference to <code>this</code> for easy method chaining 959 */ 960 public ChargeItem setPartOf(List<Reference> thePartOf) { 961 this.partOf = thePartOf; 962 return this; 963 } 964 965 public boolean hasPartOf() { 966 if (this.partOf == null) 967 return false; 968 for (Reference item : this.partOf) 969 if (!item.isEmpty()) 970 return true; 971 return false; 972 } 973 974 public Reference addPartOf() { //3 975 Reference t = new Reference(); 976 if (this.partOf == null) 977 this.partOf = new ArrayList<Reference>(); 978 this.partOf.add(t); 979 return t; 980 } 981 982 public ChargeItem addPartOf(Reference t) { //3 983 if (t == null) 984 return this; 985 if (this.partOf == null) 986 this.partOf = new ArrayList<Reference>(); 987 this.partOf.add(t); 988 return this; 989 } 990 991 /** 992 * @return The first repetition of repeating field {@link #partOf}, creating it if it does not already exist 993 */ 994 public Reference getPartOfFirstRep() { 995 if (getPartOf().isEmpty()) { 996 addPartOf(); 997 } 998 return getPartOf().get(0); 999 } 1000 1001 /** 1002 * @deprecated Use Reference#setResource(IBaseResource) instead 1003 */ 1004 @Deprecated 1005 public List<ChargeItem> getPartOfTarget() { 1006 if (this.partOfTarget == null) 1007 this.partOfTarget = new ArrayList<ChargeItem>(); 1008 return this.partOfTarget; 1009 } 1010 1011 /** 1012 * @deprecated Use Reference#setResource(IBaseResource) instead 1013 */ 1014 @Deprecated 1015 public ChargeItem addPartOfTarget() { 1016 ChargeItem r = new ChargeItem(); 1017 if (this.partOfTarget == null) 1018 this.partOfTarget = new ArrayList<ChargeItem>(); 1019 this.partOfTarget.add(r); 1020 return r; 1021 } 1022 1023 /** 1024 * @return {@link #code} (A code that identifies the charge, like a billing code.) 1025 */ 1026 public CodeableConcept getCode() { 1027 if (this.code == null) 1028 if (Configuration.errorOnAutoCreate()) 1029 throw new Error("Attempt to auto-create ChargeItem.code"); 1030 else if (Configuration.doAutoCreate()) 1031 this.code = new CodeableConcept(); // cc 1032 return this.code; 1033 } 1034 1035 public boolean hasCode() { 1036 return this.code != null && !this.code.isEmpty(); 1037 } 1038 1039 /** 1040 * @param value {@link #code} (A code that identifies the charge, like a billing code.) 1041 */ 1042 public ChargeItem setCode(CodeableConcept value) { 1043 this.code = value; 1044 return this; 1045 } 1046 1047 /** 1048 * @return {@link #subject} (The individual or set of individuals the action is being or was performed on.) 1049 */ 1050 public Reference getSubject() { 1051 if (this.subject == null) 1052 if (Configuration.errorOnAutoCreate()) 1053 throw new Error("Attempt to auto-create ChargeItem.subject"); 1054 else if (Configuration.doAutoCreate()) 1055 this.subject = new Reference(); // cc 1056 return this.subject; 1057 } 1058 1059 public boolean hasSubject() { 1060 return this.subject != null && !this.subject.isEmpty(); 1061 } 1062 1063 /** 1064 * @param value {@link #subject} (The individual or set of individuals the action is being or was performed on.) 1065 */ 1066 public ChargeItem setSubject(Reference value) { 1067 this.subject = value; 1068 return this; 1069 } 1070 1071 /** 1072 * @return {@link #subject} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The individual or set of individuals the action is being or was performed on.) 1073 */ 1074 public Resource getSubjectTarget() { 1075 return this.subjectTarget; 1076 } 1077 1078 /** 1079 * @param value {@link #subject} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The individual or set of individuals the action is being or was performed on.) 1080 */ 1081 public ChargeItem setSubjectTarget(Resource value) { 1082 this.subjectTarget = value; 1083 return this; 1084 } 1085 1086 /** 1087 * @return {@link #context} (The encounter or episode of care that establishes the context for this event.) 1088 */ 1089 public Reference getContext() { 1090 if (this.context == null) 1091 if (Configuration.errorOnAutoCreate()) 1092 throw new Error("Attempt to auto-create ChargeItem.context"); 1093 else if (Configuration.doAutoCreate()) 1094 this.context = new Reference(); // cc 1095 return this.context; 1096 } 1097 1098 public boolean hasContext() { 1099 return this.context != null && !this.context.isEmpty(); 1100 } 1101 1102 /** 1103 * @param value {@link #context} (The encounter or episode of care that establishes the context for this event.) 1104 */ 1105 public ChargeItem setContext(Reference value) { 1106 this.context = value; 1107 return this; 1108 } 1109 1110 /** 1111 * @return {@link #context} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The encounter or episode of care that establishes the context for this event.) 1112 */ 1113 public Resource getContextTarget() { 1114 return this.contextTarget; 1115 } 1116 1117 /** 1118 * @param value {@link #context} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The encounter or episode of care that establishes the context for this event.) 1119 */ 1120 public ChargeItem setContextTarget(Resource value) { 1121 this.contextTarget = value; 1122 return this; 1123 } 1124 1125 /** 1126 * @return {@link #occurrence} (Date/time(s) or duration when the charged service was applied.) 1127 */ 1128 public Type getOccurrence() { 1129 return this.occurrence; 1130 } 1131 1132 /** 1133 * @return {@link #occurrence} (Date/time(s) or duration when the charged service was applied.) 1134 */ 1135 public DateTimeType getOccurrenceDateTimeType() throws FHIRException { 1136 if (this.occurrence == null) 1137 this.occurrence = new DateTimeType(); 1138 if (!(this.occurrence instanceof DateTimeType)) 1139 throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1140 return (DateTimeType) this.occurrence; 1141 } 1142 1143 public boolean hasOccurrenceDateTimeType() { 1144 return this != null && this.occurrence instanceof DateTimeType; 1145 } 1146 1147 /** 1148 * @return {@link #occurrence} (Date/time(s) or duration when the charged service was applied.) 1149 */ 1150 public Period getOccurrencePeriod() throws FHIRException { 1151 if (this.occurrence == null) 1152 this.occurrence = new Period(); 1153 if (!(this.occurrence instanceof Period)) 1154 throw new FHIRException("Type mismatch: the type Period was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1155 return (Period) this.occurrence; 1156 } 1157 1158 public boolean hasOccurrencePeriod() { 1159 return this != null && this.occurrence instanceof Period; 1160 } 1161 1162 /** 1163 * @return {@link #occurrence} (Date/time(s) or duration when the charged service was applied.) 1164 */ 1165 public Timing getOccurrenceTiming() throws FHIRException { 1166 if (this.occurrence == null) 1167 this.occurrence = new Timing(); 1168 if (!(this.occurrence instanceof Timing)) 1169 throw new FHIRException("Type mismatch: the type Timing was expected, but "+this.occurrence.getClass().getName()+" was encountered"); 1170 return (Timing) this.occurrence; 1171 } 1172 1173 public boolean hasOccurrenceTiming() { 1174 return this != null && this.occurrence instanceof Timing; 1175 } 1176 1177 public boolean hasOccurrence() { 1178 return this.occurrence != null && !this.occurrence.isEmpty(); 1179 } 1180 1181 /** 1182 * @param value {@link #occurrence} (Date/time(s) or duration when the charged service was applied.) 1183 */ 1184 public ChargeItem setOccurrence(Type value) { 1185 if (value != null && !(value instanceof DateTimeType || value instanceof Period || value instanceof Timing)) 1186 throw new Error("Not the right type for ChargeItem.occurrence[x]: "+value.fhirType()); 1187 this.occurrence = value; 1188 return this; 1189 } 1190 1191 /** 1192 * @return {@link #performer} (Indicates who or what performed or participated in the charged service.) 1193 */ 1194 public List<ChargeItemPerformerComponent> getPerformer() { 1195 if (this.performer == null) 1196 this.performer = new ArrayList<ChargeItemPerformerComponent>(); 1197 return this.performer; 1198 } 1199 1200 /** 1201 * @return Returns a reference to <code>this</code> for easy method chaining 1202 */ 1203 public ChargeItem setPerformer(List<ChargeItemPerformerComponent> thePerformer) { 1204 this.performer = thePerformer; 1205 return this; 1206 } 1207 1208 public boolean hasPerformer() { 1209 if (this.performer == null) 1210 return false; 1211 for (ChargeItemPerformerComponent item : this.performer) 1212 if (!item.isEmpty()) 1213 return true; 1214 return false; 1215 } 1216 1217 public ChargeItemPerformerComponent addPerformer() { //3 1218 ChargeItemPerformerComponent t = new ChargeItemPerformerComponent(); 1219 if (this.performer == null) 1220 this.performer = new ArrayList<ChargeItemPerformerComponent>(); 1221 this.performer.add(t); 1222 return t; 1223 } 1224 1225 public ChargeItem addPerformer(ChargeItemPerformerComponent t) { //3 1226 if (t == null) 1227 return this; 1228 if (this.performer == null) 1229 this.performer = new ArrayList<ChargeItemPerformerComponent>(); 1230 this.performer.add(t); 1231 return this; 1232 } 1233 1234 /** 1235 * @return The first repetition of repeating field {@link #performer}, creating it if it does not already exist 1236 */ 1237 public ChargeItemPerformerComponent getPerformerFirstRep() { 1238 if (getPerformer().isEmpty()) { 1239 addPerformer(); 1240 } 1241 return getPerformer().get(0); 1242 } 1243 1244 /** 1245 * @return {@link #performingOrganization} (The organization requesting the service.) 1246 */ 1247 public Reference getPerformingOrganization() { 1248 if (this.performingOrganization == null) 1249 if (Configuration.errorOnAutoCreate()) 1250 throw new Error("Attempt to auto-create ChargeItem.performingOrganization"); 1251 else if (Configuration.doAutoCreate()) 1252 this.performingOrganization = new Reference(); // cc 1253 return this.performingOrganization; 1254 } 1255 1256 public boolean hasPerformingOrganization() { 1257 return this.performingOrganization != null && !this.performingOrganization.isEmpty(); 1258 } 1259 1260 /** 1261 * @param value {@link #performingOrganization} (The organization requesting the service.) 1262 */ 1263 public ChargeItem setPerformingOrganization(Reference value) { 1264 this.performingOrganization = value; 1265 return this; 1266 } 1267 1268 /** 1269 * @return {@link #performingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization requesting the service.) 1270 */ 1271 public Organization getPerformingOrganizationTarget() { 1272 if (this.performingOrganizationTarget == null) 1273 if (Configuration.errorOnAutoCreate()) 1274 throw new Error("Attempt to auto-create ChargeItem.performingOrganization"); 1275 else if (Configuration.doAutoCreate()) 1276 this.performingOrganizationTarget = new Organization(); // aa 1277 return this.performingOrganizationTarget; 1278 } 1279 1280 /** 1281 * @param value {@link #performingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization requesting the service.) 1282 */ 1283 public ChargeItem setPerformingOrganizationTarget(Organization value) { 1284 this.performingOrganizationTarget = value; 1285 return this; 1286 } 1287 1288 /** 1289 * @return {@link #requestingOrganization} (The organization performing the service.) 1290 */ 1291 public Reference getRequestingOrganization() { 1292 if (this.requestingOrganization == null) 1293 if (Configuration.errorOnAutoCreate()) 1294 throw new Error("Attempt to auto-create ChargeItem.requestingOrganization"); 1295 else if (Configuration.doAutoCreate()) 1296 this.requestingOrganization = new Reference(); // cc 1297 return this.requestingOrganization; 1298 } 1299 1300 public boolean hasRequestingOrganization() { 1301 return this.requestingOrganization != null && !this.requestingOrganization.isEmpty(); 1302 } 1303 1304 /** 1305 * @param value {@link #requestingOrganization} (The organization performing the service.) 1306 */ 1307 public ChargeItem setRequestingOrganization(Reference value) { 1308 this.requestingOrganization = value; 1309 return this; 1310 } 1311 1312 /** 1313 * @return {@link #requestingOrganization} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The organization performing the service.) 1314 */ 1315 public Organization getRequestingOrganizationTarget() { 1316 if (this.requestingOrganizationTarget == null) 1317 if (Configuration.errorOnAutoCreate()) 1318 throw new Error("Attempt to auto-create ChargeItem.requestingOrganization"); 1319 else if (Configuration.doAutoCreate()) 1320 this.requestingOrganizationTarget = new Organization(); // aa 1321 return this.requestingOrganizationTarget; 1322 } 1323 1324 /** 1325 * @param value {@link #requestingOrganization} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The organization performing the service.) 1326 */ 1327 public ChargeItem setRequestingOrganizationTarget(Organization value) { 1328 this.requestingOrganizationTarget = value; 1329 return this; 1330 } 1331 1332 /** 1333 * @return {@link #costCenter} (The financial cost center permits the tracking of charge attribution.) 1334 */ 1335 public Reference getCostCenter() { 1336 if (this.costCenter == null) 1337 if (Configuration.errorOnAutoCreate()) 1338 throw new Error("Attempt to auto-create ChargeItem.costCenter"); 1339 else if (Configuration.doAutoCreate()) 1340 this.costCenter = new Reference(); // cc 1341 return this.costCenter; 1342 } 1343 1344 public boolean hasCostCenter() { 1345 return this.costCenter != null && !this.costCenter.isEmpty(); 1346 } 1347 1348 /** 1349 * @param value {@link #costCenter} (The financial cost center permits the tracking of charge attribution.) 1350 */ 1351 public ChargeItem setCostCenter(Reference value) { 1352 this.costCenter = value; 1353 return this; 1354 } 1355 1356 /** 1357 * @return {@link #costCenter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The financial cost center permits the tracking of charge attribution.) 1358 */ 1359 public Organization getCostCenterTarget() { 1360 if (this.costCenterTarget == null) 1361 if (Configuration.errorOnAutoCreate()) 1362 throw new Error("Attempt to auto-create ChargeItem.costCenter"); 1363 else if (Configuration.doAutoCreate()) 1364 this.costCenterTarget = new Organization(); // aa 1365 return this.costCenterTarget; 1366 } 1367 1368 /** 1369 * @param value {@link #costCenter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The financial cost center permits the tracking of charge attribution.) 1370 */ 1371 public ChargeItem setCostCenterTarget(Organization value) { 1372 this.costCenterTarget = value; 1373 return this; 1374 } 1375 1376 /** 1377 * @return {@link #quantity} (Quantity of which the charge item has been serviced.) 1378 */ 1379 public Quantity getQuantity() { 1380 if (this.quantity == null) 1381 if (Configuration.errorOnAutoCreate()) 1382 throw new Error("Attempt to auto-create ChargeItem.quantity"); 1383 else if (Configuration.doAutoCreate()) 1384 this.quantity = new Quantity(); // cc 1385 return this.quantity; 1386 } 1387 1388 public boolean hasQuantity() { 1389 return this.quantity != null && !this.quantity.isEmpty(); 1390 } 1391 1392 /** 1393 * @param value {@link #quantity} (Quantity of which the charge item has been serviced.) 1394 */ 1395 public ChargeItem setQuantity(Quantity value) { 1396 this.quantity = value; 1397 return this; 1398 } 1399 1400 /** 1401 * @return {@link #bodysite} (The anatomical location where the related service has been applied.) 1402 */ 1403 public List<CodeableConcept> getBodysite() { 1404 if (this.bodysite == null) 1405 this.bodysite = new ArrayList<CodeableConcept>(); 1406 return this.bodysite; 1407 } 1408 1409 /** 1410 * @return Returns a reference to <code>this</code> for easy method chaining 1411 */ 1412 public ChargeItem setBodysite(List<CodeableConcept> theBodysite) { 1413 this.bodysite = theBodysite; 1414 return this; 1415 } 1416 1417 public boolean hasBodysite() { 1418 if (this.bodysite == null) 1419 return false; 1420 for (CodeableConcept item : this.bodysite) 1421 if (!item.isEmpty()) 1422 return true; 1423 return false; 1424 } 1425 1426 public CodeableConcept addBodysite() { //3 1427 CodeableConcept t = new CodeableConcept(); 1428 if (this.bodysite == null) 1429 this.bodysite = new ArrayList<CodeableConcept>(); 1430 this.bodysite.add(t); 1431 return t; 1432 } 1433 1434 public ChargeItem addBodysite(CodeableConcept t) { //3 1435 if (t == null) 1436 return this; 1437 if (this.bodysite == null) 1438 this.bodysite = new ArrayList<CodeableConcept>(); 1439 this.bodysite.add(t); 1440 return this; 1441 } 1442 1443 /** 1444 * @return The first repetition of repeating field {@link #bodysite}, creating it if it does not already exist 1445 */ 1446 public CodeableConcept getBodysiteFirstRep() { 1447 if (getBodysite().isEmpty()) { 1448 addBodysite(); 1449 } 1450 return getBodysite().get(0); 1451 } 1452 1453 /** 1454 * @return {@link #factorOverride} (Factor overriding the factor determined by the rules associated with the code.). This is the underlying object with id, value and extensions. The accessor "getFactorOverride" gives direct access to the value 1455 */ 1456 public DecimalType getFactorOverrideElement() { 1457 if (this.factorOverride == null) 1458 if (Configuration.errorOnAutoCreate()) 1459 throw new Error("Attempt to auto-create ChargeItem.factorOverride"); 1460 else if (Configuration.doAutoCreate()) 1461 this.factorOverride = new DecimalType(); // bb 1462 return this.factorOverride; 1463 } 1464 1465 public boolean hasFactorOverrideElement() { 1466 return this.factorOverride != null && !this.factorOverride.isEmpty(); 1467 } 1468 1469 public boolean hasFactorOverride() { 1470 return this.factorOverride != null && !this.factorOverride.isEmpty(); 1471 } 1472 1473 /** 1474 * @param value {@link #factorOverride} (Factor overriding the factor determined by the rules associated with the code.). This is the underlying object with id, value and extensions. The accessor "getFactorOverride" gives direct access to the value 1475 */ 1476 public ChargeItem setFactorOverrideElement(DecimalType value) { 1477 this.factorOverride = value; 1478 return this; 1479 } 1480 1481 /** 1482 * @return Factor overriding the factor determined by the rules associated with the code. 1483 */ 1484 public BigDecimal getFactorOverride() { 1485 return this.factorOverride == null ? null : this.factorOverride.getValue(); 1486 } 1487 1488 /** 1489 * @param value Factor overriding the factor determined by the rules associated with the code. 1490 */ 1491 public ChargeItem setFactorOverride(BigDecimal value) { 1492 if (value == null) 1493 this.factorOverride = null; 1494 else { 1495 if (this.factorOverride == null) 1496 this.factorOverride = new DecimalType(); 1497 this.factorOverride.setValue(value); 1498 } 1499 return this; 1500 } 1501 1502 /** 1503 * @param value Factor overriding the factor determined by the rules associated with the code. 1504 */ 1505 public ChargeItem setFactorOverride(long value) { 1506 this.factorOverride = new DecimalType(); 1507 this.factorOverride.setValue(value); 1508 return this; 1509 } 1510 1511 /** 1512 * @param value Factor overriding the factor determined by the rules associated with the code. 1513 */ 1514 public ChargeItem setFactorOverride(double value) { 1515 this.factorOverride = new DecimalType(); 1516 this.factorOverride.setValue(value); 1517 return this; 1518 } 1519 1520 /** 1521 * @return {@link #priceOverride} (Total price of the charge overriding the list price associated with the code.) 1522 */ 1523 public Money getPriceOverride() { 1524 if (this.priceOverride == null) 1525 if (Configuration.errorOnAutoCreate()) 1526 throw new Error("Attempt to auto-create ChargeItem.priceOverride"); 1527 else if (Configuration.doAutoCreate()) 1528 this.priceOverride = new Money(); // cc 1529 return this.priceOverride; 1530 } 1531 1532 public boolean hasPriceOverride() { 1533 return this.priceOverride != null && !this.priceOverride.isEmpty(); 1534 } 1535 1536 /** 1537 * @param value {@link #priceOverride} (Total price of the charge overriding the list price associated with the code.) 1538 */ 1539 public ChargeItem setPriceOverride(Money value) { 1540 this.priceOverride = value; 1541 return this; 1542 } 1543 1544 /** 1545 * @return {@link #overrideReason} (If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.). This is the underlying object with id, value and extensions. The accessor "getOverrideReason" gives direct access to the value 1546 */ 1547 public StringType getOverrideReasonElement() { 1548 if (this.overrideReason == null) 1549 if (Configuration.errorOnAutoCreate()) 1550 throw new Error("Attempt to auto-create ChargeItem.overrideReason"); 1551 else if (Configuration.doAutoCreate()) 1552 this.overrideReason = new StringType(); // bb 1553 return this.overrideReason; 1554 } 1555 1556 public boolean hasOverrideReasonElement() { 1557 return this.overrideReason != null && !this.overrideReason.isEmpty(); 1558 } 1559 1560 public boolean hasOverrideReason() { 1561 return this.overrideReason != null && !this.overrideReason.isEmpty(); 1562 } 1563 1564 /** 1565 * @param value {@link #overrideReason} (If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.). This is the underlying object with id, value and extensions. The accessor "getOverrideReason" gives direct access to the value 1566 */ 1567 public ChargeItem setOverrideReasonElement(StringType value) { 1568 this.overrideReason = value; 1569 return this; 1570 } 1571 1572 /** 1573 * @return If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action. 1574 */ 1575 public String getOverrideReason() { 1576 return this.overrideReason == null ? null : this.overrideReason.getValue(); 1577 } 1578 1579 /** 1580 * @param value If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action. 1581 */ 1582 public ChargeItem setOverrideReason(String value) { 1583 if (Utilities.noString(value)) 1584 this.overrideReason = null; 1585 else { 1586 if (this.overrideReason == null) 1587 this.overrideReason = new StringType(); 1588 this.overrideReason.setValue(value); 1589 } 1590 return this; 1591 } 1592 1593 /** 1594 * @return {@link #enterer} (The device, practitioner, etc. who entered the charge item.) 1595 */ 1596 public Reference getEnterer() { 1597 if (this.enterer == null) 1598 if (Configuration.errorOnAutoCreate()) 1599 throw new Error("Attempt to auto-create ChargeItem.enterer"); 1600 else if (Configuration.doAutoCreate()) 1601 this.enterer = new Reference(); // cc 1602 return this.enterer; 1603 } 1604 1605 public boolean hasEnterer() { 1606 return this.enterer != null && !this.enterer.isEmpty(); 1607 } 1608 1609 /** 1610 * @param value {@link #enterer} (The device, practitioner, etc. who entered the charge item.) 1611 */ 1612 public ChargeItem setEnterer(Reference value) { 1613 this.enterer = value; 1614 return this; 1615 } 1616 1617 /** 1618 * @return {@link #enterer} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The device, practitioner, etc. who entered the charge item.) 1619 */ 1620 public Resource getEntererTarget() { 1621 return this.entererTarget; 1622 } 1623 1624 /** 1625 * @param value {@link #enterer} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The device, practitioner, etc. who entered the charge item.) 1626 */ 1627 public ChargeItem setEntererTarget(Resource value) { 1628 this.entererTarget = value; 1629 return this; 1630 } 1631 1632 /** 1633 * @return {@link #enteredDate} (Date the charge item was entered.). This is the underlying object with id, value and extensions. The accessor "getEnteredDate" gives direct access to the value 1634 */ 1635 public DateTimeType getEnteredDateElement() { 1636 if (this.enteredDate == null) 1637 if (Configuration.errorOnAutoCreate()) 1638 throw new Error("Attempt to auto-create ChargeItem.enteredDate"); 1639 else if (Configuration.doAutoCreate()) 1640 this.enteredDate = new DateTimeType(); // bb 1641 return this.enteredDate; 1642 } 1643 1644 public boolean hasEnteredDateElement() { 1645 return this.enteredDate != null && !this.enteredDate.isEmpty(); 1646 } 1647 1648 public boolean hasEnteredDate() { 1649 return this.enteredDate != null && !this.enteredDate.isEmpty(); 1650 } 1651 1652 /** 1653 * @param value {@link #enteredDate} (Date the charge item was entered.). This is the underlying object with id, value and extensions. The accessor "getEnteredDate" gives direct access to the value 1654 */ 1655 public ChargeItem setEnteredDateElement(DateTimeType value) { 1656 this.enteredDate = value; 1657 return this; 1658 } 1659 1660 /** 1661 * @return Date the charge item was entered. 1662 */ 1663 public Date getEnteredDate() { 1664 return this.enteredDate == null ? null : this.enteredDate.getValue(); 1665 } 1666 1667 /** 1668 * @param value Date the charge item was entered. 1669 */ 1670 public ChargeItem setEnteredDate(Date value) { 1671 if (value == null) 1672 this.enteredDate = null; 1673 else { 1674 if (this.enteredDate == null) 1675 this.enteredDate = new DateTimeType(); 1676 this.enteredDate.setValue(value); 1677 } 1678 return this; 1679 } 1680 1681 /** 1682 * @return {@link #reason} (Describes why the event occurred in coded or textual form.) 1683 */ 1684 public List<CodeableConcept> getReason() { 1685 if (this.reason == null) 1686 this.reason = new ArrayList<CodeableConcept>(); 1687 return this.reason; 1688 } 1689 1690 /** 1691 * @return Returns a reference to <code>this</code> for easy method chaining 1692 */ 1693 public ChargeItem setReason(List<CodeableConcept> theReason) { 1694 this.reason = theReason; 1695 return this; 1696 } 1697 1698 public boolean hasReason() { 1699 if (this.reason == null) 1700 return false; 1701 for (CodeableConcept item : this.reason) 1702 if (!item.isEmpty()) 1703 return true; 1704 return false; 1705 } 1706 1707 public CodeableConcept addReason() { //3 1708 CodeableConcept t = new CodeableConcept(); 1709 if (this.reason == null) 1710 this.reason = new ArrayList<CodeableConcept>(); 1711 this.reason.add(t); 1712 return t; 1713 } 1714 1715 public ChargeItem addReason(CodeableConcept t) { //3 1716 if (t == null) 1717 return this; 1718 if (this.reason == null) 1719 this.reason = new ArrayList<CodeableConcept>(); 1720 this.reason.add(t); 1721 return this; 1722 } 1723 1724 /** 1725 * @return The first repetition of repeating field {@link #reason}, creating it if it does not already exist 1726 */ 1727 public CodeableConcept getReasonFirstRep() { 1728 if (getReason().isEmpty()) { 1729 addReason(); 1730 } 1731 return getReason().get(0); 1732 } 1733 1734 /** 1735 * @return {@link #service} (Indicated the rendered service that caused this charge.) 1736 */ 1737 public List<Reference> getService() { 1738 if (this.service == null) 1739 this.service = new ArrayList<Reference>(); 1740 return this.service; 1741 } 1742 1743 /** 1744 * @return Returns a reference to <code>this</code> for easy method chaining 1745 */ 1746 public ChargeItem setService(List<Reference> theService) { 1747 this.service = theService; 1748 return this; 1749 } 1750 1751 public boolean hasService() { 1752 if (this.service == null) 1753 return false; 1754 for (Reference item : this.service) 1755 if (!item.isEmpty()) 1756 return true; 1757 return false; 1758 } 1759 1760 public Reference addService() { //3 1761 Reference t = new Reference(); 1762 if (this.service == null) 1763 this.service = new ArrayList<Reference>(); 1764 this.service.add(t); 1765 return t; 1766 } 1767 1768 public ChargeItem addService(Reference t) { //3 1769 if (t == null) 1770 return this; 1771 if (this.service == null) 1772 this.service = new ArrayList<Reference>(); 1773 this.service.add(t); 1774 return this; 1775 } 1776 1777 /** 1778 * @return The first repetition of repeating field {@link #service}, creating it if it does not already exist 1779 */ 1780 public Reference getServiceFirstRep() { 1781 if (getService().isEmpty()) { 1782 addService(); 1783 } 1784 return getService().get(0); 1785 } 1786 1787 /** 1788 * @deprecated Use Reference#setResource(IBaseResource) instead 1789 */ 1790 @Deprecated 1791 public List<Resource> getServiceTarget() { 1792 if (this.serviceTarget == null) 1793 this.serviceTarget = new ArrayList<Resource>(); 1794 return this.serviceTarget; 1795 } 1796 1797 /** 1798 * @return {@link #product} (Identifies the device, food, drug or other product being charged either by type code or reference to an instance.) 1799 */ 1800 public Type getProduct() { 1801 return this.product; 1802 } 1803 1804 /** 1805 * @return {@link #product} (Identifies the device, food, drug or other product being charged either by type code or reference to an instance.) 1806 */ 1807 public Reference getProductReference() throws FHIRException { 1808 if (this.product == null) 1809 this.product = new Reference(); 1810 if (!(this.product instanceof Reference)) 1811 throw new FHIRException("Type mismatch: the type Reference was expected, but "+this.product.getClass().getName()+" was encountered"); 1812 return (Reference) this.product; 1813 } 1814 1815 public boolean hasProductReference() { 1816 return this != null && this.product instanceof Reference; 1817 } 1818 1819 /** 1820 * @return {@link #product} (Identifies the device, food, drug or other product being charged either by type code or reference to an instance.) 1821 */ 1822 public CodeableConcept getProductCodeableConcept() throws FHIRException { 1823 if (this.product == null) 1824 this.product = new CodeableConcept(); 1825 if (!(this.product instanceof CodeableConcept)) 1826 throw new FHIRException("Type mismatch: the type CodeableConcept was expected, but "+this.product.getClass().getName()+" was encountered"); 1827 return (CodeableConcept) this.product; 1828 } 1829 1830 public boolean hasProductCodeableConcept() { 1831 return this != null && this.product instanceof CodeableConcept; 1832 } 1833 1834 public boolean hasProduct() { 1835 return this.product != null && !this.product.isEmpty(); 1836 } 1837 1838 /** 1839 * @param value {@link #product} (Identifies the device, food, drug or other product being charged either by type code or reference to an instance.) 1840 */ 1841 public ChargeItem setProduct(Type value) { 1842 if (value != null && !(value instanceof Reference || value instanceof CodeableConcept)) 1843 throw new Error("Not the right type for ChargeItem.product[x]: "+value.fhirType()); 1844 this.product = value; 1845 return this; 1846 } 1847 1848 /** 1849 * @return {@link #account} (Account into which this ChargeItems belongs.) 1850 */ 1851 public List<Reference> getAccount() { 1852 if (this.account == null) 1853 this.account = new ArrayList<Reference>(); 1854 return this.account; 1855 } 1856 1857 /** 1858 * @return Returns a reference to <code>this</code> for easy method chaining 1859 */ 1860 public ChargeItem setAccount(List<Reference> theAccount) { 1861 this.account = theAccount; 1862 return this; 1863 } 1864 1865 public boolean hasAccount() { 1866 if (this.account == null) 1867 return false; 1868 for (Reference item : this.account) 1869 if (!item.isEmpty()) 1870 return true; 1871 return false; 1872 } 1873 1874 public Reference addAccount() { //3 1875 Reference t = new Reference(); 1876 if (this.account == null) 1877 this.account = new ArrayList<Reference>(); 1878 this.account.add(t); 1879 return t; 1880 } 1881 1882 public ChargeItem addAccount(Reference t) { //3 1883 if (t == null) 1884 return this; 1885 if (this.account == null) 1886 this.account = new ArrayList<Reference>(); 1887 this.account.add(t); 1888 return this; 1889 } 1890 1891 /** 1892 * @return The first repetition of repeating field {@link #account}, creating it if it does not already exist 1893 */ 1894 public Reference getAccountFirstRep() { 1895 if (getAccount().isEmpty()) { 1896 addAccount(); 1897 } 1898 return getAccount().get(0); 1899 } 1900 1901 /** 1902 * @deprecated Use Reference#setResource(IBaseResource) instead 1903 */ 1904 @Deprecated 1905 public List<Account> getAccountTarget() { 1906 if (this.accountTarget == null) 1907 this.accountTarget = new ArrayList<Account>(); 1908 return this.accountTarget; 1909 } 1910 1911 /** 1912 * @deprecated Use Reference#setResource(IBaseResource) instead 1913 */ 1914 @Deprecated 1915 public Account addAccountTarget() { 1916 Account r = new Account(); 1917 if (this.accountTarget == null) 1918 this.accountTarget = new ArrayList<Account>(); 1919 this.accountTarget.add(r); 1920 return r; 1921 } 1922 1923 /** 1924 * @return {@link #note} (Comments made about the event by the performer, subject or other participants.) 1925 */ 1926 public List<Annotation> getNote() { 1927 if (this.note == null) 1928 this.note = new ArrayList<Annotation>(); 1929 return this.note; 1930 } 1931 1932 /** 1933 * @return Returns a reference to <code>this</code> for easy method chaining 1934 */ 1935 public ChargeItem setNote(List<Annotation> theNote) { 1936 this.note = theNote; 1937 return this; 1938 } 1939 1940 public boolean hasNote() { 1941 if (this.note == null) 1942 return false; 1943 for (Annotation item : this.note) 1944 if (!item.isEmpty()) 1945 return true; 1946 return false; 1947 } 1948 1949 public Annotation addNote() { //3 1950 Annotation t = new Annotation(); 1951 if (this.note == null) 1952 this.note = new ArrayList<Annotation>(); 1953 this.note.add(t); 1954 return t; 1955 } 1956 1957 public ChargeItem addNote(Annotation t) { //3 1958 if (t == null) 1959 return this; 1960 if (this.note == null) 1961 this.note = new ArrayList<Annotation>(); 1962 this.note.add(t); 1963 return this; 1964 } 1965 1966 /** 1967 * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist 1968 */ 1969 public Annotation getNoteFirstRep() { 1970 if (getNote().isEmpty()) { 1971 addNote(); 1972 } 1973 return getNote().get(0); 1974 } 1975 1976 /** 1977 * @return {@link #supportingInformation} (Further information supporting this charge.) 1978 */ 1979 public List<Reference> getSupportingInformation() { 1980 if (this.supportingInformation == null) 1981 this.supportingInformation = new ArrayList<Reference>(); 1982 return this.supportingInformation; 1983 } 1984 1985 /** 1986 * @return Returns a reference to <code>this</code> for easy method chaining 1987 */ 1988 public ChargeItem setSupportingInformation(List<Reference> theSupportingInformation) { 1989 this.supportingInformation = theSupportingInformation; 1990 return this; 1991 } 1992 1993 public boolean hasSupportingInformation() { 1994 if (this.supportingInformation == null) 1995 return false; 1996 for (Reference item : this.supportingInformation) 1997 if (!item.isEmpty()) 1998 return true; 1999 return false; 2000 } 2001 2002 public Reference addSupportingInformation() { //3 2003 Reference t = new Reference(); 2004 if (this.supportingInformation == null) 2005 this.supportingInformation = new ArrayList<Reference>(); 2006 this.supportingInformation.add(t); 2007 return t; 2008 } 2009 2010 public ChargeItem addSupportingInformation(Reference t) { //3 2011 if (t == null) 2012 return this; 2013 if (this.supportingInformation == null) 2014 this.supportingInformation = new ArrayList<Reference>(); 2015 this.supportingInformation.add(t); 2016 return this; 2017 } 2018 2019 /** 2020 * @return The first repetition of repeating field {@link #supportingInformation}, creating it if it does not already exist 2021 */ 2022 public Reference getSupportingInformationFirstRep() { 2023 if (getSupportingInformation().isEmpty()) { 2024 addSupportingInformation(); 2025 } 2026 return getSupportingInformation().get(0); 2027 } 2028 2029 /** 2030 * @deprecated Use Reference#setResource(IBaseResource) instead 2031 */ 2032 @Deprecated 2033 public List<Resource> getSupportingInformationTarget() { 2034 if (this.supportingInformationTarget == null) 2035 this.supportingInformationTarget = new ArrayList<Resource>(); 2036 return this.supportingInformationTarget; 2037 } 2038 2039 protected void listChildren(List<Property> children) { 2040 super.listChildren(children); 2041 children.add(new Property("identifier", "Identifier", "Identifiers assigned to this event performer or other systems.", 0, java.lang.Integer.MAX_VALUE, identifier)); 2042 children.add(new Property("definitionUri", "uri", "References the (external) source of pricing information, rules of application for the code this ChargeItem uses.", 0, java.lang.Integer.MAX_VALUE, definitionUri)); 2043 children.add(new Property("definitionCanonical", "canonical(ChargeItemDefinition)", "References the source of pricing information, rules of application for the code this ChargeItem uses.", 0, java.lang.Integer.MAX_VALUE, definitionCanonical)); 2044 children.add(new Property("status", "code", "The current state of the ChargeItem.", 0, 1, status)); 2045 children.add(new Property("partOf", "Reference(ChargeItem)", "ChargeItems can be grouped to larger ChargeItems covering the whole set.", 0, java.lang.Integer.MAX_VALUE, partOf)); 2046 children.add(new Property("code", "CodeableConcept", "A code that identifies the charge, like a billing code.", 0, 1, code)); 2047 children.add(new Property("subject", "Reference(Patient|Group)", "The individual or set of individuals the action is being or was performed on.", 0, 1, subject)); 2048 children.add(new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode of care that establishes the context for this event.", 0, 1, context)); 2049 children.add(new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence)); 2050 children.add(new Property("performer", "", "Indicates who or what performed or participated in the charged service.", 0, java.lang.Integer.MAX_VALUE, performer)); 2051 children.add(new Property("performingOrganization", "Reference(Organization)", "The organization requesting the service.", 0, 1, performingOrganization)); 2052 children.add(new Property("requestingOrganization", "Reference(Organization)", "The organization performing the service.", 0, 1, requestingOrganization)); 2053 children.add(new Property("costCenter", "Reference(Organization)", "The financial cost center permits the tracking of charge attribution.", 0, 1, costCenter)); 2054 children.add(new Property("quantity", "Quantity", "Quantity of which the charge item has been serviced.", 0, 1, quantity)); 2055 children.add(new Property("bodysite", "CodeableConcept", "The anatomical location where the related service has been applied.", 0, java.lang.Integer.MAX_VALUE, bodysite)); 2056 children.add(new Property("factorOverride", "decimal", "Factor overriding the factor determined by the rules associated with the code.", 0, 1, factorOverride)); 2057 children.add(new Property("priceOverride", "Money", "Total price of the charge overriding the list price associated with the code.", 0, 1, priceOverride)); 2058 children.add(new Property("overrideReason", "string", "If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.", 0, 1, overrideReason)); 2059 children.add(new Property("enterer", "Reference(Practitioner|PractitionerRole|Organization|Patient|Device|RelatedPerson)", "The device, practitioner, etc. who entered the charge item.", 0, 1, enterer)); 2060 children.add(new Property("enteredDate", "dateTime", "Date the charge item was entered.", 0, 1, enteredDate)); 2061 children.add(new Property("reason", "CodeableConcept", "Describes why the event occurred in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reason)); 2062 children.add(new Property("service", "Reference(DiagnosticReport|ImagingStudy|Immunization|MedicationAdministration|MedicationDispense|Observation|Procedure|SupplyDelivery)", "Indicated the rendered service that caused this charge.", 0, java.lang.Integer.MAX_VALUE, service)); 2063 children.add(new Property("product[x]", "Reference(Device|Medication|Substance)|CodeableConcept", "Identifies the device, food, drug or other product being charged either by type code or reference to an instance.", 0, 1, product)); 2064 children.add(new Property("account", "Reference(Account)", "Account into which this ChargeItems belongs.", 0, java.lang.Integer.MAX_VALUE, account)); 2065 children.add(new Property("note", "Annotation", "Comments made about the event by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note)); 2066 children.add(new Property("supportingInformation", "Reference(Any)", "Further information supporting this charge.", 0, java.lang.Integer.MAX_VALUE, supportingInformation)); 2067 } 2068 2069 @Override 2070 public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException { 2071 switch (_hash) { 2072 case -1618432855: /*identifier*/ return new Property("identifier", "Identifier", "Identifiers assigned to this event performer or other systems.", 0, java.lang.Integer.MAX_VALUE, identifier); 2073 case -1139428583: /*definitionUri*/ return new Property("definitionUri", "uri", "References the (external) source of pricing information, rules of application for the code this ChargeItem uses.", 0, java.lang.Integer.MAX_VALUE, definitionUri); 2074 case 933485793: /*definitionCanonical*/ return new Property("definitionCanonical", "canonical(ChargeItemDefinition)", "References the source of pricing information, rules of application for the code this ChargeItem uses.", 0, java.lang.Integer.MAX_VALUE, definitionCanonical); 2075 case -892481550: /*status*/ return new Property("status", "code", "The current state of the ChargeItem.", 0, 1, status); 2076 case -995410646: /*partOf*/ return new Property("partOf", "Reference(ChargeItem)", "ChargeItems can be grouped to larger ChargeItems covering the whole set.", 0, java.lang.Integer.MAX_VALUE, partOf); 2077 case 3059181: /*code*/ return new Property("code", "CodeableConcept", "A code that identifies the charge, like a billing code.", 0, 1, code); 2078 case -1867885268: /*subject*/ return new Property("subject", "Reference(Patient|Group)", "The individual or set of individuals the action is being or was performed on.", 0, 1, subject); 2079 case 951530927: /*context*/ return new Property("context", "Reference(Encounter|EpisodeOfCare)", "The encounter or episode of care that establishes the context for this event.", 0, 1, context); 2080 case -2022646513: /*occurrence[x]*/ return new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence); 2081 case 1687874001: /*occurrence*/ return new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence); 2082 case -298443636: /*occurrenceDateTime*/ return new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence); 2083 case 1397156594: /*occurrencePeriod*/ return new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence); 2084 case 1515218299: /*occurrenceTiming*/ return new Property("occurrence[x]", "dateTime|Period|Timing", "Date/time(s) or duration when the charged service was applied.", 0, 1, occurrence); 2085 case 481140686: /*performer*/ return new Property("performer", "", "Indicates who or what performed or participated in the charged service.", 0, java.lang.Integer.MAX_VALUE, performer); 2086 case 1273192628: /*performingOrganization*/ return new Property("performingOrganization", "Reference(Organization)", "The organization requesting the service.", 0, 1, performingOrganization); 2087 case 1279054790: /*requestingOrganization*/ return new Property("requestingOrganization", "Reference(Organization)", "The organization performing the service.", 0, 1, requestingOrganization); 2088 case -593192318: /*costCenter*/ return new Property("costCenter", "Reference(Organization)", "The financial cost center permits the tracking of charge attribution.", 0, 1, costCenter); 2089 case -1285004149: /*quantity*/ return new Property("quantity", "Quantity", "Quantity of which the charge item has been serviced.", 0, 1, quantity); 2090 case 1703573481: /*bodysite*/ return new Property("bodysite", "CodeableConcept", "The anatomical location where the related service has been applied.", 0, java.lang.Integer.MAX_VALUE, bodysite); 2091 case -451233221: /*factorOverride*/ return new Property("factorOverride", "decimal", "Factor overriding the factor determined by the rules associated with the code.", 0, 1, factorOverride); 2092 case -216803275: /*priceOverride*/ return new Property("priceOverride", "Money", "Total price of the charge overriding the list price associated with the code.", 0, 1, priceOverride); 2093 case -742878928: /*overrideReason*/ return new Property("overrideReason", "string", "If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action.", 0, 1, overrideReason); 2094 case -1591951995: /*enterer*/ return new Property("enterer", "Reference(Practitioner|PractitionerRole|Organization|Patient|Device|RelatedPerson)", "The device, practitioner, etc. who entered the charge item.", 0, 1, enterer); 2095 case 555978181: /*enteredDate*/ return new Property("enteredDate", "dateTime", "Date the charge item was entered.", 0, 1, enteredDate); 2096 case -934964668: /*reason*/ return new Property("reason", "CodeableConcept", "Describes why the event occurred in coded or textual form.", 0, java.lang.Integer.MAX_VALUE, reason); 2097 case 1984153269: /*service*/ return new Property("service", "Reference(DiagnosticReport|ImagingStudy|Immunization|MedicationAdministration|MedicationDispense|Observation|Procedure|SupplyDelivery)", "Indicated the rendered service that caused this charge.", 0, java.lang.Integer.MAX_VALUE, service); 2098 case 1753005361: /*product[x]*/ return new Property("product[x]", "Reference(Device|Medication|Substance)|CodeableConcept", "Identifies the device, food, drug or other product being charged either by type code or reference to an instance.", 0, 1, product); 2099 case -309474065: /*product*/ return new Property("product[x]", "Reference(Device|Medication|Substance)|CodeableConcept", "Identifies the device, food, drug or other product being charged either by type code or reference to an instance.", 0, 1, product); 2100 case -669667556: /*productReference*/ return new Property("product[x]", "Reference(Device|Medication|Substance)|CodeableConcept", "Identifies the device, food, drug or other product being charged either by type code or reference to an instance.", 0, 1, product); 2101 case 906854066: /*productCodeableConcept*/ return new Property("product[x]", "Reference(Device|Medication|Substance)|CodeableConcept", "Identifies the device, food, drug or other product being charged either by type code or reference to an instance.", 0, 1, product); 2102 case -1177318867: /*account*/ return new Property("account", "Reference(Account)", "Account into which this ChargeItems belongs.", 0, java.lang.Integer.MAX_VALUE, account); 2103 case 3387378: /*note*/ return new Property("note", "Annotation", "Comments made about the event by the performer, subject or other participants.", 0, java.lang.Integer.MAX_VALUE, note); 2104 case -1248768647: /*supportingInformation*/ return new Property("supportingInformation", "Reference(Any)", "Further information supporting this charge.", 0, java.lang.Integer.MAX_VALUE, supportingInformation); 2105 default: return super.getNamedProperty(_hash, _name, _checkValid); 2106 } 2107 2108 } 2109 2110 @Override 2111 public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException { 2112 switch (hash) { 2113 case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier 2114 case -1139428583: /*definitionUri*/ return this.definitionUri == null ? new Base[0] : this.definitionUri.toArray(new Base[this.definitionUri.size()]); // UriType 2115 case 933485793: /*definitionCanonical*/ return this.definitionCanonical == null ? new Base[0] : this.definitionCanonical.toArray(new Base[this.definitionCanonical.size()]); // CanonicalType 2116 case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ChargeItemStatus> 2117 case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : this.partOf.toArray(new Base[this.partOf.size()]); // Reference 2118 case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept 2119 case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference 2120 case 951530927: /*context*/ return this.context == null ? new Base[0] : new Base[] {this.context}; // Reference 2121 case 1687874001: /*occurrence*/ return this.occurrence == null ? new Base[0] : new Base[] {this.occurrence}; // Type 2122 case 481140686: /*performer*/ return this.performer == null ? new Base[0] : this.performer.toArray(new Base[this.performer.size()]); // ChargeItemPerformerComponent 2123 case 1273192628: /*performingOrganization*/ return this.performingOrganization == null ? new Base[0] : new Base[] {this.performingOrganization}; // Reference 2124 case 1279054790: /*requestingOrganization*/ return this.requestingOrganization == null ? new Base[0] : new Base[] {this.requestingOrganization}; // Reference 2125 case -593192318: /*costCenter*/ return this.costCenter == null ? new Base[0] : new Base[] {this.costCenter}; // Reference 2126 case -1285004149: /*quantity*/ return this.quantity == null ? new Base[0] : new Base[] {this.quantity}; // Quantity 2127 case 1703573481: /*bodysite*/ return this.bodysite == null ? new Base[0] : this.bodysite.toArray(new Base[this.bodysite.size()]); // CodeableConcept 2128 case -451233221: /*factorOverride*/ return this.factorOverride == null ? new Base[0] : new Base[] {this.factorOverride}; // DecimalType 2129 case -216803275: /*priceOverride*/ return this.priceOverride == null ? new Base[0] : new Base[] {this.priceOverride}; // Money 2130 case -742878928: /*overrideReason*/ return this.overrideReason == null ? new Base[0] : new Base[] {this.overrideReason}; // StringType 2131 case -1591951995: /*enterer*/ return this.enterer == null ? new Base[0] : new Base[] {this.enterer}; // Reference 2132 case 555978181: /*enteredDate*/ return this.enteredDate == null ? new Base[0] : new Base[] {this.enteredDate}; // DateTimeType 2133 case -934964668: /*reason*/ return this.reason == null ? new Base[0] : this.reason.toArray(new Base[this.reason.size()]); // CodeableConcept 2134 case 1984153269: /*service*/ return this.service == null ? new Base[0] : this.service.toArray(new Base[this.service.size()]); // Reference 2135 case -309474065: /*product*/ return this.product == null ? new Base[0] : new Base[] {this.product}; // Type 2136 case -1177318867: /*account*/ return this.account == null ? new Base[0] : this.account.toArray(new Base[this.account.size()]); // Reference 2137 case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation 2138 case -1248768647: /*supportingInformation*/ return this.supportingInformation == null ? new Base[0] : this.supportingInformation.toArray(new Base[this.supportingInformation.size()]); // Reference 2139 default: return super.getProperty(hash, name, checkValid); 2140 } 2141 2142 } 2143 2144 @Override 2145 public Base setProperty(int hash, String name, Base value) throws FHIRException { 2146 switch (hash) { 2147 case -1618432855: // identifier 2148 this.getIdentifier().add(castToIdentifier(value)); // Identifier 2149 return value; 2150 case -1139428583: // definitionUri 2151 this.getDefinitionUri().add(castToUri(value)); // UriType 2152 return value; 2153 case 933485793: // definitionCanonical 2154 this.getDefinitionCanonical().add(castToCanonical(value)); // CanonicalType 2155 return value; 2156 case -892481550: // status 2157 value = new ChargeItemStatusEnumFactory().fromType(castToCode(value)); 2158 this.status = (Enumeration) value; // Enumeration<ChargeItemStatus> 2159 return value; 2160 case -995410646: // partOf 2161 this.getPartOf().add(castToReference(value)); // Reference 2162 return value; 2163 case 3059181: // code 2164 this.code = castToCodeableConcept(value); // CodeableConcept 2165 return value; 2166 case -1867885268: // subject 2167 this.subject = castToReference(value); // Reference 2168 return value; 2169 case 951530927: // context 2170 this.context = castToReference(value); // Reference 2171 return value; 2172 case 1687874001: // occurrence 2173 this.occurrence = castToType(value); // Type 2174 return value; 2175 case 481140686: // performer 2176 this.getPerformer().add((ChargeItemPerformerComponent) value); // ChargeItemPerformerComponent 2177 return value; 2178 case 1273192628: // performingOrganization 2179 this.performingOrganization = castToReference(value); // Reference 2180 return value; 2181 case 1279054790: // requestingOrganization 2182 this.requestingOrganization = castToReference(value); // Reference 2183 return value; 2184 case -593192318: // costCenter 2185 this.costCenter = castToReference(value); // Reference 2186 return value; 2187 case -1285004149: // quantity 2188 this.quantity = castToQuantity(value); // Quantity 2189 return value; 2190 case 1703573481: // bodysite 2191 this.getBodysite().add(castToCodeableConcept(value)); // CodeableConcept 2192 return value; 2193 case -451233221: // factorOverride 2194 this.factorOverride = castToDecimal(value); // DecimalType 2195 return value; 2196 case -216803275: // priceOverride 2197 this.priceOverride = castToMoney(value); // Money 2198 return value; 2199 case -742878928: // overrideReason 2200 this.overrideReason = castToString(value); // StringType 2201 return value; 2202 case -1591951995: // enterer 2203 this.enterer = castToReference(value); // Reference 2204 return value; 2205 case 555978181: // enteredDate 2206 this.enteredDate = castToDateTime(value); // DateTimeType 2207 return value; 2208 case -934964668: // reason 2209 this.getReason().add(castToCodeableConcept(value)); // CodeableConcept 2210 return value; 2211 case 1984153269: // service 2212 this.getService().add(castToReference(value)); // Reference 2213 return value; 2214 case -309474065: // product 2215 this.product = castToType(value); // Type 2216 return value; 2217 case -1177318867: // account 2218 this.getAccount().add(castToReference(value)); // Reference 2219 return value; 2220 case 3387378: // note 2221 this.getNote().add(castToAnnotation(value)); // Annotation 2222 return value; 2223 case -1248768647: // supportingInformation 2224 this.getSupportingInformation().add(castToReference(value)); // Reference 2225 return value; 2226 default: return super.setProperty(hash, name, value); 2227 } 2228 2229 } 2230 2231 @Override 2232 public Base setProperty(String name, Base value) throws FHIRException { 2233 if (name.equals("identifier")) { 2234 this.getIdentifier().add(castToIdentifier(value)); 2235 } else if (name.equals("definitionUri")) { 2236 this.getDefinitionUri().add(castToUri(value)); 2237 } else if (name.equals("definitionCanonical")) { 2238 this.getDefinitionCanonical().add(castToCanonical(value)); 2239 } else if (name.equals("status")) { 2240 value = new ChargeItemStatusEnumFactory().fromType(castToCode(value)); 2241 this.status = (Enumeration) value; // Enumeration<ChargeItemStatus> 2242 } else if (name.equals("partOf")) { 2243 this.getPartOf().add(castToReference(value)); 2244 } else if (name.equals("code")) { 2245 this.code = castToCodeableConcept(value); // CodeableConcept 2246 } else if (name.equals("subject")) { 2247 this.subject = castToReference(value); // Reference 2248 } else if (name.equals("context")) { 2249 this.context = castToReference(value); // Reference 2250 } else if (name.equals("occurrence[x]")) { 2251 this.occurrence = castToType(value); // Type 2252 } else if (name.equals("performer")) { 2253 this.getPerformer().add((ChargeItemPerformerComponent) value); 2254 } else if (name.equals("performingOrganization")) { 2255 this.performingOrganization = castToReference(value); // Reference 2256 } else if (name.equals("requestingOrganization")) { 2257 this.requestingOrganization = castToReference(value); // Reference 2258 } else if (name.equals("costCenter")) { 2259 this.costCenter = castToReference(value); // Reference 2260 } else if (name.equals("quantity")) { 2261 this.quantity = castToQuantity(value); // Quantity 2262 } else if (name.equals("bodysite")) { 2263 this.getBodysite().add(castToCodeableConcept(value)); 2264 } else if (name.equals("factorOverride")) { 2265 this.factorOverride = castToDecimal(value); // DecimalType 2266 } else if (name.equals("priceOverride")) { 2267 this.priceOverride = castToMoney(value); // Money 2268 } else if (name.equals("overrideReason")) { 2269 this.overrideReason = castToString(value); // StringType 2270 } else if (name.equals("enterer")) { 2271 this.enterer = castToReference(value); // Reference 2272 } else if (name.equals("enteredDate")) { 2273 this.enteredDate = castToDateTime(value); // DateTimeType 2274 } else if (name.equals("reason")) { 2275 this.getReason().add(castToCodeableConcept(value)); 2276 } else if (name.equals("service")) { 2277 this.getService().add(castToReference(value)); 2278 } else if (name.equals("product[x]")) { 2279 this.product = castToType(value); // Type 2280 } else if (name.equals("account")) { 2281 this.getAccount().add(castToReference(value)); 2282 } else if (name.equals("note")) { 2283 this.getNote().add(castToAnnotation(value)); 2284 } else if (name.equals("supportingInformation")) { 2285 this.getSupportingInformation().add(castToReference(value)); 2286 } else 2287 return super.setProperty(name, value); 2288 return value; 2289 } 2290 2291 @Override 2292 public Base makeProperty(int hash, String name) throws FHIRException { 2293 switch (hash) { 2294 case -1618432855: return addIdentifier(); 2295 case -1139428583: return addDefinitionUriElement(); 2296 case 933485793: return addDefinitionCanonicalElement(); 2297 case -892481550: return getStatusElement(); 2298 case -995410646: return addPartOf(); 2299 case 3059181: return getCode(); 2300 case -1867885268: return getSubject(); 2301 case 951530927: return getContext(); 2302 case -2022646513: return getOccurrence(); 2303 case 1687874001: return getOccurrence(); 2304 case 481140686: return addPerformer(); 2305 case 1273192628: return getPerformingOrganization(); 2306 case 1279054790: return getRequestingOrganization(); 2307 case -593192318: return getCostCenter(); 2308 case -1285004149: return getQuantity(); 2309 case 1703573481: return addBodysite(); 2310 case -451233221: return getFactorOverrideElement(); 2311 case -216803275: return getPriceOverride(); 2312 case -742878928: return getOverrideReasonElement(); 2313 case -1591951995: return getEnterer(); 2314 case 555978181: return getEnteredDateElement(); 2315 case -934964668: return addReason(); 2316 case 1984153269: return addService(); 2317 case 1753005361: return getProduct(); 2318 case -309474065: return getProduct(); 2319 case -1177318867: return addAccount(); 2320 case 3387378: return addNote(); 2321 case -1248768647: return addSupportingInformation(); 2322 default: return super.makeProperty(hash, name); 2323 } 2324 2325 } 2326 2327 @Override 2328 public String[] getTypesForProperty(int hash, String name) throws FHIRException { 2329 switch (hash) { 2330 case -1618432855: /*identifier*/ return new String[] {"Identifier"}; 2331 case -1139428583: /*definitionUri*/ return new String[] {"uri"}; 2332 case 933485793: /*definitionCanonical*/ return new String[] {"canonical"}; 2333 case -892481550: /*status*/ return new String[] {"code"}; 2334 case -995410646: /*partOf*/ return new String[] {"Reference"}; 2335 case 3059181: /*code*/ return new String[] {"CodeableConcept"}; 2336 case -1867885268: /*subject*/ return new String[] {"Reference"}; 2337 case 951530927: /*context*/ return new String[] {"Reference"}; 2338 case 1687874001: /*occurrence*/ return new String[] {"dateTime", "Period", "Timing"}; 2339 case 481140686: /*performer*/ return new String[] {}; 2340 case 1273192628: /*performingOrganization*/ return new String[] {"Reference"}; 2341 case 1279054790: /*requestingOrganization*/ return new String[] {"Reference"}; 2342 case -593192318: /*costCenter*/ return new String[] {"Reference"}; 2343 case -1285004149: /*quantity*/ return new String[] {"Quantity"}; 2344 case 1703573481: /*bodysite*/ return new String[] {"CodeableConcept"}; 2345 case -451233221: /*factorOverride*/ return new String[] {"decimal"}; 2346 case -216803275: /*priceOverride*/ return new String[] {"Money"}; 2347 case -742878928: /*overrideReason*/ return new String[] {"string"}; 2348 case -1591951995: /*enterer*/ return new String[] {"Reference"}; 2349 case 555978181: /*enteredDate*/ return new String[] {"dateTime"}; 2350 case -934964668: /*reason*/ return new String[] {"CodeableConcept"}; 2351 case 1984153269: /*service*/ return new String[] {"Reference"}; 2352 case -309474065: /*product*/ return new String[] {"Reference", "CodeableConcept"}; 2353 case -1177318867: /*account*/ return new String[] {"Reference"}; 2354 case 3387378: /*note*/ return new String[] {"Annotation"}; 2355 case -1248768647: /*supportingInformation*/ return new String[] {"Reference"}; 2356 default: return super.getTypesForProperty(hash, name); 2357 } 2358 2359 } 2360 2361 @Override 2362 public Base addChild(String name) throws FHIRException { 2363 if (name.equals("identifier")) { 2364 return addIdentifier(); 2365 } 2366 else if (name.equals("definitionUri")) { 2367 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.definitionUri"); 2368 } 2369 else if (name.equals("definitionCanonical")) { 2370 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.definitionCanonical"); 2371 } 2372 else if (name.equals("status")) { 2373 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.status"); 2374 } 2375 else if (name.equals("partOf")) { 2376 return addPartOf(); 2377 } 2378 else if (name.equals("code")) { 2379 this.code = new CodeableConcept(); 2380 return this.code; 2381 } 2382 else if (name.equals("subject")) { 2383 this.subject = new Reference(); 2384 return this.subject; 2385 } 2386 else if (name.equals("context")) { 2387 this.context = new Reference(); 2388 return this.context; 2389 } 2390 else if (name.equals("occurrenceDateTime")) { 2391 this.occurrence = new DateTimeType(); 2392 return this.occurrence; 2393 } 2394 else if (name.equals("occurrencePeriod")) { 2395 this.occurrence = new Period(); 2396 return this.occurrence; 2397 } 2398 else if (name.equals("occurrenceTiming")) { 2399 this.occurrence = new Timing(); 2400 return this.occurrence; 2401 } 2402 else if (name.equals("performer")) { 2403 return addPerformer(); 2404 } 2405 else if (name.equals("performingOrganization")) { 2406 this.performingOrganization = new Reference(); 2407 return this.performingOrganization; 2408 } 2409 else if (name.equals("requestingOrganization")) { 2410 this.requestingOrganization = new Reference(); 2411 return this.requestingOrganization; 2412 } 2413 else if (name.equals("costCenter")) { 2414 this.costCenter = new Reference(); 2415 return this.costCenter; 2416 } 2417 else if (name.equals("quantity")) { 2418 this.quantity = new Quantity(); 2419 return this.quantity; 2420 } 2421 else if (name.equals("bodysite")) { 2422 return addBodysite(); 2423 } 2424 else if (name.equals("factorOverride")) { 2425 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.factorOverride"); 2426 } 2427 else if (name.equals("priceOverride")) { 2428 this.priceOverride = new Money(); 2429 return this.priceOverride; 2430 } 2431 else if (name.equals("overrideReason")) { 2432 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.overrideReason"); 2433 } 2434 else if (name.equals("enterer")) { 2435 this.enterer = new Reference(); 2436 return this.enterer; 2437 } 2438 else if (name.equals("enteredDate")) { 2439 throw new FHIRException("Cannot call addChild on a primitive type ChargeItem.enteredDate"); 2440 } 2441 else if (name.equals("reason")) { 2442 return addReason(); 2443 } 2444 else if (name.equals("service")) { 2445 return addService(); 2446 } 2447 else if (name.equals("productReference")) { 2448 this.product = new Reference(); 2449 return this.product; 2450 } 2451 else if (name.equals("productCodeableConcept")) { 2452 this.product = new CodeableConcept(); 2453 return this.product; 2454 } 2455 else if (name.equals("account")) { 2456 return addAccount(); 2457 } 2458 else if (name.equals("note")) { 2459 return addNote(); 2460 } 2461 else if (name.equals("supportingInformation")) { 2462 return addSupportingInformation(); 2463 } 2464 else 2465 return super.addChild(name); 2466 } 2467 2468 public String fhirType() { 2469 return "ChargeItem"; 2470 2471 } 2472 2473 public ChargeItem copy() { 2474 ChargeItem dst = new ChargeItem(); 2475 copyValues(dst); 2476 if (identifier != null) { 2477 dst.identifier = new ArrayList<Identifier>(); 2478 for (Identifier i : identifier) 2479 dst.identifier.add(i.copy()); 2480 }; 2481 if (definitionUri != null) { 2482 dst.definitionUri = new ArrayList<UriType>(); 2483 for (UriType i : definitionUri) 2484 dst.definitionUri.add(i.copy()); 2485 }; 2486 if (definitionCanonical != null) { 2487 dst.definitionCanonical = new ArrayList<CanonicalType>(); 2488 for (CanonicalType i : definitionCanonical) 2489 dst.definitionCanonical.add(i.copy()); 2490 }; 2491 dst.status = status == null ? null : status.copy(); 2492 if (partOf != null) { 2493 dst.partOf = new ArrayList<Reference>(); 2494 for (Reference i : partOf) 2495 dst.partOf.add(i.copy()); 2496 }; 2497 dst.code = code == null ? null : code.copy(); 2498 dst.subject = subject == null ? null : subject.copy(); 2499 dst.context = context == null ? null : context.copy(); 2500 dst.occurrence = occurrence == null ? null : occurrence.copy(); 2501 if (performer != null) { 2502 dst.performer = new ArrayList<ChargeItemPerformerComponent>(); 2503 for (ChargeItemPerformerComponent i : performer) 2504 dst.performer.add(i.copy()); 2505 }; 2506 dst.performingOrganization = performingOrganization == null ? null : performingOrganization.copy(); 2507 dst.requestingOrganization = requestingOrganization == null ? null : requestingOrganization.copy(); 2508 dst.costCenter = costCenter == null ? null : costCenter.copy(); 2509 dst.quantity = quantity == null ? null : quantity.copy(); 2510 if (bodysite != null) { 2511 dst.bodysite = new ArrayList<CodeableConcept>(); 2512 for (CodeableConcept i : bodysite) 2513 dst.bodysite.add(i.copy()); 2514 }; 2515 dst.factorOverride = factorOverride == null ? null : factorOverride.copy(); 2516 dst.priceOverride = priceOverride == null ? null : priceOverride.copy(); 2517 dst.overrideReason = overrideReason == null ? null : overrideReason.copy(); 2518 dst.enterer = enterer == null ? null : enterer.copy(); 2519 dst.enteredDate = enteredDate == null ? null : enteredDate.copy(); 2520 if (reason != null) { 2521 dst.reason = new ArrayList<CodeableConcept>(); 2522 for (CodeableConcept i : reason) 2523 dst.reason.add(i.copy()); 2524 }; 2525 if (service != null) { 2526 dst.service = new ArrayList<Reference>(); 2527 for (Reference i : service) 2528 dst.service.add(i.copy()); 2529 }; 2530 dst.product = product == null ? null : product.copy(); 2531 if (account != null) { 2532 dst.account = new ArrayList<Reference>(); 2533 for (Reference i : account) 2534 dst.account.add(i.copy()); 2535 }; 2536 if (note != null) { 2537 dst.note = new ArrayList<Annotation>(); 2538 for (Annotation i : note) 2539 dst.note.add(i.copy()); 2540 }; 2541 if (supportingInformation != null) { 2542 dst.supportingInformation = new ArrayList<Reference>(); 2543 for (Reference i : supportingInformation) 2544 dst.supportingInformation.add(i.copy()); 2545 }; 2546 return dst; 2547 } 2548 2549 protected ChargeItem typedCopy() { 2550 return copy(); 2551 } 2552 2553 @Override 2554 public boolean equalsDeep(Base other_) { 2555 if (!super.equalsDeep(other_)) 2556 return false; 2557 if (!(other_ instanceof ChargeItem)) 2558 return false; 2559 ChargeItem o = (ChargeItem) other_; 2560 return compareDeep(identifier, o.identifier, true) && compareDeep(definitionUri, o.definitionUri, true) 2561 && compareDeep(definitionCanonical, o.definitionCanonical, true) && compareDeep(status, o.status, true) 2562 && compareDeep(partOf, o.partOf, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) 2563 && compareDeep(context, o.context, true) && compareDeep(occurrence, o.occurrence, true) && compareDeep(performer, o.performer, true) 2564 && compareDeep(performingOrganization, o.performingOrganization, true) && compareDeep(requestingOrganization, o.requestingOrganization, true) 2565 && compareDeep(costCenter, o.costCenter, true) && compareDeep(quantity, o.quantity, true) && compareDeep(bodysite, o.bodysite, true) 2566 && compareDeep(factorOverride, o.factorOverride, true) && compareDeep(priceOverride, o.priceOverride, true) 2567 && compareDeep(overrideReason, o.overrideReason, true) && compareDeep(enterer, o.enterer, true) 2568 && compareDeep(enteredDate, o.enteredDate, true) && compareDeep(reason, o.reason, true) && compareDeep(service, o.service, true) 2569 && compareDeep(product, o.product, true) && compareDeep(account, o.account, true) && compareDeep(note, o.note, true) 2570 && compareDeep(supportingInformation, o.supportingInformation, true); 2571 } 2572 2573 @Override 2574 public boolean equalsShallow(Base other_) { 2575 if (!super.equalsShallow(other_)) 2576 return false; 2577 if (!(other_ instanceof ChargeItem)) 2578 return false; 2579 ChargeItem o = (ChargeItem) other_; 2580 return compareValues(definitionUri, o.definitionUri, true) && compareValues(status, o.status, true) 2581 && compareValues(factorOverride, o.factorOverride, true) && compareValues(overrideReason, o.overrideReason, true) 2582 && compareValues(enteredDate, o.enteredDate, true); 2583 } 2584 2585 public boolean isEmpty() { 2586 return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, definitionUri 2587 , definitionCanonical, status, partOf, code, subject, context, occurrence, performer 2588 , performingOrganization, requestingOrganization, costCenter, quantity, bodysite, factorOverride 2589 , priceOverride, overrideReason, enterer, enteredDate, reason, service, product 2590 , account, note, supportingInformation); 2591 } 2592 2593 @Override 2594 public ResourceType getResourceType() { 2595 return ResourceType.ChargeItem; 2596 } 2597 2598 /** 2599 * Search parameter: <b>identifier</b> 2600 * <p> 2601 * Description: <b>Business Identifier for item</b><br> 2602 * Type: <b>token</b><br> 2603 * Path: <b>ChargeItem.identifier</b><br> 2604 * </p> 2605 */ 2606 @SearchParamDefinition(name="identifier", path="ChargeItem.identifier", description="Business Identifier for item", type="token" ) 2607 public static final String SP_IDENTIFIER = "identifier"; 2608 /** 2609 * <b>Fluent Client</b> search parameter constant for <b>identifier</b> 2610 * <p> 2611 * Description: <b>Business Identifier for item</b><br> 2612 * Type: <b>token</b><br> 2613 * Path: <b>ChargeItem.identifier</b><br> 2614 * </p> 2615 */ 2616 public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER); 2617 2618 /** 2619 * Search parameter: <b>performing-organization</b> 2620 * <p> 2621 * Description: <b>Organization providing the charged service</b><br> 2622 * Type: <b>reference</b><br> 2623 * Path: <b>ChargeItem.performingOrganization</b><br> 2624 * </p> 2625 */ 2626 @SearchParamDefinition(name="performing-organization", path="ChargeItem.performingOrganization", description="Organization providing the charged service", type="reference", target={Organization.class } ) 2627 public static final String SP_PERFORMING_ORGANIZATION = "performing-organization"; 2628 /** 2629 * <b>Fluent Client</b> search parameter constant for <b>performing-organization</b> 2630 * <p> 2631 * Description: <b>Organization providing the charged service</b><br> 2632 * Type: <b>reference</b><br> 2633 * Path: <b>ChargeItem.performingOrganization</b><br> 2634 * </p> 2635 */ 2636 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMING_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMING_ORGANIZATION); 2637 2638/** 2639 * Constant for fluent queries to be used to add include statements. Specifies 2640 * the path value of "<b>ChargeItem:performing-organization</b>". 2641 */ 2642 public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMING_ORGANIZATION = new ca.uhn.fhir.model.api.Include("ChargeItem:performing-organization").toLocked(); 2643 2644 /** 2645 * Search parameter: <b>code</b> 2646 * <p> 2647 * Description: <b>A code that identifies the charge, like a billing code</b><br> 2648 * Type: <b>token</b><br> 2649 * Path: <b>ChargeItem.code</b><br> 2650 * </p> 2651 */ 2652 @SearchParamDefinition(name="code", path="ChargeItem.code", description="A code that identifies the charge, like a billing code", type="token" ) 2653 public static final String SP_CODE = "code"; 2654 /** 2655 * <b>Fluent Client</b> search parameter constant for <b>code</b> 2656 * <p> 2657 * Description: <b>A code that identifies the charge, like a billing code</b><br> 2658 * Type: <b>token</b><br> 2659 * Path: <b>ChargeItem.code</b><br> 2660 * </p> 2661 */ 2662 public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE); 2663 2664 /** 2665 * Search parameter: <b>quantity</b> 2666 * <p> 2667 * Description: <b>Quantity of which the charge item has been serviced</b><br> 2668 * Type: <b>quantity</b><br> 2669 * Path: <b>ChargeItem.quantity</b><br> 2670 * </p> 2671 */ 2672 @SearchParamDefinition(name="quantity", path="ChargeItem.quantity", description="Quantity of which the charge item has been serviced", type="quantity" ) 2673 public static final String SP_QUANTITY = "quantity"; 2674 /** 2675 * <b>Fluent Client</b> search parameter constant for <b>quantity</b> 2676 * <p> 2677 * Description: <b>Quantity of which the charge item has been serviced</b><br> 2678 * Type: <b>quantity</b><br> 2679 * Path: <b>ChargeItem.quantity</b><br> 2680 * </p> 2681 */ 2682 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam QUANTITY = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_QUANTITY); 2683 2684 /** 2685 * Search parameter: <b>subject</b> 2686 * <p> 2687 * Description: <b>Individual service was done for/to</b><br> 2688 * Type: <b>reference</b><br> 2689 * Path: <b>ChargeItem.subject</b><br> 2690 * </p> 2691 */ 2692 @SearchParamDefinition(name="subject", path="ChargeItem.subject", description="Individual service was done for/to", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Patient") }, target={Group.class, Patient.class } ) 2693 public static final String SP_SUBJECT = "subject"; 2694 /** 2695 * <b>Fluent Client</b> search parameter constant for <b>subject</b> 2696 * <p> 2697 * Description: <b>Individual service was done for/to</b><br> 2698 * Type: <b>reference</b><br> 2699 * Path: <b>ChargeItem.subject</b><br> 2700 * </p> 2701 */ 2702 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT); 2703 2704/** 2705 * Constant for fluent queries to be used to add include statements. Specifies 2706 * the path value of "<b>ChargeItem:subject</b>". 2707 */ 2708 public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("ChargeItem:subject").toLocked(); 2709 2710 /** 2711 * Search parameter: <b>occurrence</b> 2712 * <p> 2713 * Description: <b>When the charged service was applied</b><br> 2714 * Type: <b>date</b><br> 2715 * Path: <b>ChargeItem.occurrence[x]</b><br> 2716 * </p> 2717 */ 2718 @SearchParamDefinition(name="occurrence", path="ChargeItem.occurrence", description="When the charged service was applied", type="date" ) 2719 public static final String SP_OCCURRENCE = "occurrence"; 2720 /** 2721 * <b>Fluent Client</b> search parameter constant for <b>occurrence</b> 2722 * <p> 2723 * Description: <b>When the charged service was applied</b><br> 2724 * Type: <b>date</b><br> 2725 * Path: <b>ChargeItem.occurrence[x]</b><br> 2726 * </p> 2727 */ 2728 public static final ca.uhn.fhir.rest.gclient.DateClientParam OCCURRENCE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_OCCURRENCE); 2729 2730 /** 2731 * Search parameter: <b>entered-date</b> 2732 * <p> 2733 * Description: <b>Date the charge item was entered</b><br> 2734 * Type: <b>date</b><br> 2735 * Path: <b>ChargeItem.enteredDate</b><br> 2736 * </p> 2737 */ 2738 @SearchParamDefinition(name="entered-date", path="ChargeItem.enteredDate", description="Date the charge item was entered", type="date" ) 2739 public static final String SP_ENTERED_DATE = "entered-date"; 2740 /** 2741 * <b>Fluent Client</b> search parameter constant for <b>entered-date</b> 2742 * <p> 2743 * Description: <b>Date the charge item was entered</b><br> 2744 * Type: <b>date</b><br> 2745 * Path: <b>ChargeItem.enteredDate</b><br> 2746 * </p> 2747 */ 2748 public static final ca.uhn.fhir.rest.gclient.DateClientParam ENTERED_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_ENTERED_DATE); 2749 2750 /** 2751 * Search parameter: <b>performer-function</b> 2752 * <p> 2753 * Description: <b>What type of performance was done</b><br> 2754 * Type: <b>token</b><br> 2755 * Path: <b>ChargeItem.performer.function</b><br> 2756 * </p> 2757 */ 2758 @SearchParamDefinition(name="performer-function", path="ChargeItem.performer.function", description="What type of performance was done", type="token" ) 2759 public static final String SP_PERFORMER_FUNCTION = "performer-function"; 2760 /** 2761 * <b>Fluent Client</b> search parameter constant for <b>performer-function</b> 2762 * <p> 2763 * Description: <b>What type of performance was done</b><br> 2764 * Type: <b>token</b><br> 2765 * Path: <b>ChargeItem.performer.function</b><br> 2766 * </p> 2767 */ 2768 public static final ca.uhn.fhir.rest.gclient.TokenClientParam PERFORMER_FUNCTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PERFORMER_FUNCTION); 2769 2770 /** 2771 * Search parameter: <b>patient</b> 2772 * <p> 2773 * Description: <b>Individual service was done for/to</b><br> 2774 * Type: <b>reference</b><br> 2775 * Path: <b>ChargeItem.subject</b><br> 2776 * </p> 2777 */ 2778 @SearchParamDefinition(name="patient", path="ChargeItem.subject.where(resolve() is Patient)", description="Individual service was done for/to", type="reference", target={Patient.class } ) 2779 public static final String SP_PATIENT = "patient"; 2780 /** 2781 * <b>Fluent Client</b> search parameter constant for <b>patient</b> 2782 * <p> 2783 * Description: <b>Individual service was done for/to</b><br> 2784 * Type: <b>reference</b><br> 2785 * Path: <b>ChargeItem.subject</b><br> 2786 * </p> 2787 */ 2788 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT); 2789 2790/** 2791 * Constant for fluent queries to be used to add include statements. Specifies 2792 * the path value of "<b>ChargeItem:patient</b>". 2793 */ 2794 public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ChargeItem:patient").toLocked(); 2795 2796 /** 2797 * Search parameter: <b>factor-override</b> 2798 * <p> 2799 * Description: <b>Factor overriding the associated rules</b><br> 2800 * Type: <b>number</b><br> 2801 * Path: <b>ChargeItem.factorOverride</b><br> 2802 * </p> 2803 */ 2804 @SearchParamDefinition(name="factor-override", path="ChargeItem.factorOverride", description="Factor overriding the associated rules", type="number" ) 2805 public static final String SP_FACTOR_OVERRIDE = "factor-override"; 2806 /** 2807 * <b>Fluent Client</b> search parameter constant for <b>factor-override</b> 2808 * <p> 2809 * Description: <b>Factor overriding the associated rules</b><br> 2810 * Type: <b>number</b><br> 2811 * Path: <b>ChargeItem.factorOverride</b><br> 2812 * </p> 2813 */ 2814 public static final ca.uhn.fhir.rest.gclient.NumberClientParam FACTOR_OVERRIDE = new ca.uhn.fhir.rest.gclient.NumberClientParam(SP_FACTOR_OVERRIDE); 2815 2816 /** 2817 * Search parameter: <b>service</b> 2818 * <p> 2819 * Description: <b>Which rendered service is being charged?</b><br> 2820 * Type: <b>reference</b><br> 2821 * Path: <b>ChargeItem.service</b><br> 2822 * </p> 2823 */ 2824 @SearchParamDefinition(name="service", path="ChargeItem.service", description="Which rendered service is being charged?", type="reference", target={DiagnosticReport.class, ImagingStudy.class, Immunization.class, MedicationAdministration.class, MedicationDispense.class, Observation.class, Procedure.class, SupplyDelivery.class } ) 2825 public static final String SP_SERVICE = "service"; 2826 /** 2827 * <b>Fluent Client</b> search parameter constant for <b>service</b> 2828 * <p> 2829 * Description: <b>Which rendered service is being charged?</b><br> 2830 * Type: <b>reference</b><br> 2831 * Path: <b>ChargeItem.service</b><br> 2832 * </p> 2833 */ 2834 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE); 2835 2836/** 2837 * Constant for fluent queries to be used to add include statements. Specifies 2838 * the path value of "<b>ChargeItem:service</b>". 2839 */ 2840 public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE = new ca.uhn.fhir.model.api.Include("ChargeItem:service").toLocked(); 2841 2842 /** 2843 * Search parameter: <b>price-override</b> 2844 * <p> 2845 * Description: <b>Price overriding the associated rules</b><br> 2846 * Type: <b>quantity</b><br> 2847 * Path: <b>ChargeItem.priceOverride</b><br> 2848 * </p> 2849 */ 2850 @SearchParamDefinition(name="price-override", path="ChargeItem.priceOverride", description="Price overriding the associated rules", type="quantity" ) 2851 public static final String SP_PRICE_OVERRIDE = "price-override"; 2852 /** 2853 * <b>Fluent Client</b> search parameter constant for <b>price-override</b> 2854 * <p> 2855 * Description: <b>Price overriding the associated rules</b><br> 2856 * Type: <b>quantity</b><br> 2857 * Path: <b>ChargeItem.priceOverride</b><br> 2858 * </p> 2859 */ 2860 public static final ca.uhn.fhir.rest.gclient.QuantityClientParam PRICE_OVERRIDE = new ca.uhn.fhir.rest.gclient.QuantityClientParam(SP_PRICE_OVERRIDE); 2861 2862 /** 2863 * Search parameter: <b>context</b> 2864 * <p> 2865 * Description: <b>Encounter / Episode associated with event</b><br> 2866 * Type: <b>reference</b><br> 2867 * Path: <b>ChargeItem.context</b><br> 2868 * </p> 2869 */ 2870 @SearchParamDefinition(name="context", path="ChargeItem.context", description="Encounter / Episode associated with event", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Encounter") }, target={Encounter.class, EpisodeOfCare.class } ) 2871 public static final String SP_CONTEXT = "context"; 2872 /** 2873 * <b>Fluent Client</b> search parameter constant for <b>context</b> 2874 * <p> 2875 * Description: <b>Encounter / Episode associated with event</b><br> 2876 * Type: <b>reference</b><br> 2877 * Path: <b>ChargeItem.context</b><br> 2878 * </p> 2879 */ 2880 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam CONTEXT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_CONTEXT); 2881 2882/** 2883 * Constant for fluent queries to be used to add include statements. Specifies 2884 * the path value of "<b>ChargeItem:context</b>". 2885 */ 2886 public static final ca.uhn.fhir.model.api.Include INCLUDE_CONTEXT = new ca.uhn.fhir.model.api.Include("ChargeItem:context").toLocked(); 2887 2888 /** 2889 * Search parameter: <b>enterer</b> 2890 * <p> 2891 * Description: <b>Individual who was entering</b><br> 2892 * Type: <b>reference</b><br> 2893 * Path: <b>ChargeItem.enterer</b><br> 2894 * </p> 2895 */ 2896 @SearchParamDefinition(name="enterer", path="ChargeItem.enterer", description="Individual who was entering", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2897 public static final String SP_ENTERER = "enterer"; 2898 /** 2899 * <b>Fluent Client</b> search parameter constant for <b>enterer</b> 2900 * <p> 2901 * Description: <b>Individual who was entering</b><br> 2902 * Type: <b>reference</b><br> 2903 * Path: <b>ChargeItem.enterer</b><br> 2904 * </p> 2905 */ 2906 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENTERER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENTERER); 2907 2908/** 2909 * Constant for fluent queries to be used to add include statements. Specifies 2910 * the path value of "<b>ChargeItem:enterer</b>". 2911 */ 2912 public static final ca.uhn.fhir.model.api.Include INCLUDE_ENTERER = new ca.uhn.fhir.model.api.Include("ChargeItem:enterer").toLocked(); 2913 2914 /** 2915 * Search parameter: <b>performer-actor</b> 2916 * <p> 2917 * Description: <b>Individual who was performing</b><br> 2918 * Type: <b>reference</b><br> 2919 * Path: <b>ChargeItem.performer.actor</b><br> 2920 * </p> 2921 */ 2922 @SearchParamDefinition(name="performer-actor", path="ChargeItem.performer.actor", description="Individual who was performing", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Device"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="RelatedPerson") }, target={CareTeam.class, Device.class, Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } ) 2923 public static final String SP_PERFORMER_ACTOR = "performer-actor"; 2924 /** 2925 * <b>Fluent Client</b> search parameter constant for <b>performer-actor</b> 2926 * <p> 2927 * Description: <b>Individual who was performing</b><br> 2928 * Type: <b>reference</b><br> 2929 * Path: <b>ChargeItem.performer.actor</b><br> 2930 * </p> 2931 */ 2932 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PERFORMER_ACTOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PERFORMER_ACTOR); 2933 2934/** 2935 * Constant for fluent queries to be used to add include statements. Specifies 2936 * the path value of "<b>ChargeItem:performer-actor</b>". 2937 */ 2938 public static final ca.uhn.fhir.model.api.Include INCLUDE_PERFORMER_ACTOR = new ca.uhn.fhir.model.api.Include("ChargeItem:performer-actor").toLocked(); 2939 2940 /** 2941 * Search parameter: <b>account</b> 2942 * <p> 2943 * Description: <b>Account to place this charge</b><br> 2944 * Type: <b>reference</b><br> 2945 * Path: <b>ChargeItem.account</b><br> 2946 * </p> 2947 */ 2948 @SearchParamDefinition(name="account", path="ChargeItem.account", description="Account to place this charge", type="reference", target={Account.class } ) 2949 public static final String SP_ACCOUNT = "account"; 2950 /** 2951 * <b>Fluent Client</b> search parameter constant for <b>account</b> 2952 * <p> 2953 * Description: <b>Account to place this charge</b><br> 2954 * Type: <b>reference</b><br> 2955 * Path: <b>ChargeItem.account</b><br> 2956 * </p> 2957 */ 2958 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ACCOUNT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ACCOUNT); 2959 2960/** 2961 * Constant for fluent queries to be used to add include statements. Specifies 2962 * the path value of "<b>ChargeItem:account</b>". 2963 */ 2964 public static final ca.uhn.fhir.model.api.Include INCLUDE_ACCOUNT = new ca.uhn.fhir.model.api.Include("ChargeItem:account").toLocked(); 2965 2966 /** 2967 * Search parameter: <b>requesting-organization</b> 2968 * <p> 2969 * Description: <b>Organization requesting the charged service</b><br> 2970 * Type: <b>reference</b><br> 2971 * Path: <b>ChargeItem.requestingOrganization</b><br> 2972 * </p> 2973 */ 2974 @SearchParamDefinition(name="requesting-organization", path="ChargeItem.requestingOrganization", description="Organization requesting the charged service", type="reference", target={Organization.class } ) 2975 public static final String SP_REQUESTING_ORGANIZATION = "requesting-organization"; 2976 /** 2977 * <b>Fluent Client</b> search parameter constant for <b>requesting-organization</b> 2978 * <p> 2979 * Description: <b>Organization requesting the charged service</b><br> 2980 * Type: <b>reference</b><br> 2981 * Path: <b>ChargeItem.requestingOrganization</b><br> 2982 * </p> 2983 */ 2984 public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam REQUESTING_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_REQUESTING_ORGANIZATION); 2985 2986/** 2987 * Constant for fluent queries to be used to add include statements. Specifies 2988 * the path value of "<b>ChargeItem:requesting-organization</b>". 2989 */ 2990 public static final ca.uhn.fhir.model.api.Include INCLUDE_REQUESTING_ORGANIZATION = new ca.uhn.fhir.model.api.Include("ChargeItem:requesting-organization").toLocked(); 2991 2992 2993} 2994