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