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