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