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