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