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 * A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).
052 */
053@ResourceDef(name="Composition", profile="http://hl7.org/fhir/StructureDefinition/Composition")
054public class Composition extends DomainResource {
055
056    @Block()
057    public static class CompositionAttesterComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * The type of attestation the authenticator offers.
060         */
061        @Child(name = "mode", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
062        @Description(shortDefinition="personal | professional | legal | official", formalDefinition="The type of attestation the authenticator offers." )
063        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composition-attestation-mode")
064        protected CodeableConcept mode;
065
066        /**
067         * When the composition was attested by the party.
068         */
069        @Child(name = "time", type = {DateTimeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
070        @Description(shortDefinition="When the composition was attested", formalDefinition="When the composition was attested by the party." )
071        protected DateTimeType time;
072
073        /**
074         * Who attested the composition in the specified way.
075         */
076        @Child(name = "party", type = {Patient.class, RelatedPerson.class, Practitioner.class, PractitionerRole.class, Organization.class}, order=3, min=0, max=1, modifier=false, summary=false)
077        @Description(shortDefinition="Who attested the composition", formalDefinition="Who attested the composition in the specified way." )
078        protected Reference party;
079
080        private static final long serialVersionUID = 545132751L;
081
082    /**
083     * Constructor
084     */
085      public CompositionAttesterComponent() {
086        super();
087      }
088
089    /**
090     * Constructor
091     */
092      public CompositionAttesterComponent(CodeableConcept mode) {
093        super();
094        this.setMode(mode);
095      }
096
097        /**
098         * @return {@link #mode} (The type of attestation the authenticator offers.)
099         */
100        public CodeableConcept getMode() { 
101          if (this.mode == null)
102            if (Configuration.errorOnAutoCreate())
103              throw new Error("Attempt to auto-create CompositionAttesterComponent.mode");
104            else if (Configuration.doAutoCreate())
105              this.mode = new CodeableConcept(); // cc
106          return this.mode;
107        }
108
109        public boolean hasMode() { 
110          return this.mode != null && !this.mode.isEmpty();
111        }
112
113        /**
114         * @param value {@link #mode} (The type of attestation the authenticator offers.)
115         */
116        public CompositionAttesterComponent setMode(CodeableConcept value) { 
117          this.mode = value;
118          return this;
119        }
120
121        /**
122         * @return {@link #time} (When the composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value
123         */
124        public DateTimeType getTimeElement() { 
125          if (this.time == null)
126            if (Configuration.errorOnAutoCreate())
127              throw new Error("Attempt to auto-create CompositionAttesterComponent.time");
128            else if (Configuration.doAutoCreate())
129              this.time = new DateTimeType(); // bb
130          return this.time;
131        }
132
133        public boolean hasTimeElement() { 
134          return this.time != null && !this.time.isEmpty();
135        }
136
137        public boolean hasTime() { 
138          return this.time != null && !this.time.isEmpty();
139        }
140
141        /**
142         * @param value {@link #time} (When the composition was attested by the party.). This is the underlying object with id, value and extensions. The accessor "getTime" gives direct access to the value
143         */
144        public CompositionAttesterComponent setTimeElement(DateTimeType value) { 
145          this.time = value;
146          return this;
147        }
148
149        /**
150         * @return When the composition was attested by the party.
151         */
152        public Date getTime() { 
153          return this.time == null ? null : this.time.getValue();
154        }
155
156        /**
157         * @param value When the composition was attested by the party.
158         */
159        public CompositionAttesterComponent setTime(Date value) { 
160          if (value == null)
161            this.time = null;
162          else {
163            if (this.time == null)
164              this.time = new DateTimeType();
165            this.time.setValue(value);
166          }
167          return this;
168        }
169
170        /**
171         * @return {@link #party} (Who attested the composition in the specified way.)
172         */
173        public Reference getParty() { 
174          if (this.party == null)
175            if (Configuration.errorOnAutoCreate())
176              throw new Error("Attempt to auto-create CompositionAttesterComponent.party");
177            else if (Configuration.doAutoCreate())
178              this.party = new Reference(); // cc
179          return this.party;
180        }
181
182        public boolean hasParty() { 
183          return this.party != null && !this.party.isEmpty();
184        }
185
186        /**
187         * @param value {@link #party} (Who attested the composition in the specified way.)
188         */
189        public CompositionAttesterComponent setParty(Reference value) { 
190          this.party = value;
191          return this;
192        }
193
194        protected void listChildren(List<Property> children) {
195          super.listChildren(children);
196          children.add(new Property("mode", "CodeableConcept", "The type of attestation the authenticator offers.", 0, 1, mode));
197          children.add(new Property("time", "dateTime", "When the composition was attested by the party.", 0, 1, time));
198          children.add(new Property("party", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Who attested the composition in the specified way.", 0, 1, party));
199        }
200
201        @Override
202        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
203          switch (_hash) {
204          case 3357091: /*mode*/  return new Property("mode", "CodeableConcept", "The type of attestation the authenticator offers.", 0, 1, mode);
205          case 3560141: /*time*/  return new Property("time", "dateTime", "When the composition was attested by the party.", 0, 1, time);
206          case 106437350: /*party*/  return new Property("party", "Reference(Patient|RelatedPerson|Practitioner|PractitionerRole|Organization)", "Who attested the composition in the specified way.", 0, 1, party);
207          default: return super.getNamedProperty(_hash, _name, _checkValid);
208          }
209
210        }
211
212      @Override
213      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
214        switch (hash) {
215        case 3357091: /*mode*/ return this.mode == null ? new Base[0] : new Base[] {this.mode}; // CodeableConcept
216        case 3560141: /*time*/ return this.time == null ? new Base[0] : new Base[] {this.time}; // DateTimeType
217        case 106437350: /*party*/ return this.party == null ? new Base[0] : new Base[] {this.party}; // Reference
218        default: return super.getProperty(hash, name, checkValid);
219        }
220
221      }
222
223      @Override
224      public Base setProperty(int hash, String name, Base value) throws FHIRException {
225        switch (hash) {
226        case 3357091: // mode
227          this.mode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
228          return value;
229        case 3560141: // time
230          this.time = TypeConvertor.castToDateTime(value); // DateTimeType
231          return value;
232        case 106437350: // party
233          this.party = TypeConvertor.castToReference(value); // Reference
234          return value;
235        default: return super.setProperty(hash, name, value);
236        }
237
238      }
239
240      @Override
241      public Base setProperty(String name, Base value) throws FHIRException {
242        if (name.equals("mode")) {
243          this.mode = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
244        } else if (name.equals("time")) {
245          this.time = TypeConvertor.castToDateTime(value); // DateTimeType
246        } else if (name.equals("party")) {
247          this.party = TypeConvertor.castToReference(value); // Reference
248        } else
249          return super.setProperty(name, value);
250        return value;
251      }
252
253      @Override
254      public Base makeProperty(int hash, String name) throws FHIRException {
255        switch (hash) {
256        case 3357091:  return getMode();
257        case 3560141:  return getTimeElement();
258        case 106437350:  return getParty();
259        default: return super.makeProperty(hash, name);
260        }
261
262      }
263
264      @Override
265      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
266        switch (hash) {
267        case 3357091: /*mode*/ return new String[] {"CodeableConcept"};
268        case 3560141: /*time*/ return new String[] {"dateTime"};
269        case 106437350: /*party*/ return new String[] {"Reference"};
270        default: return super.getTypesForProperty(hash, name);
271        }
272
273      }
274
275      @Override
276      public Base addChild(String name) throws FHIRException {
277        if (name.equals("mode")) {
278          this.mode = new CodeableConcept();
279          return this.mode;
280        }
281        else if (name.equals("time")) {
282          throw new FHIRException("Cannot call addChild on a singleton property Composition.attester.time");
283        }
284        else if (name.equals("party")) {
285          this.party = new Reference();
286          return this.party;
287        }
288        else
289          return super.addChild(name);
290      }
291
292      public CompositionAttesterComponent copy() {
293        CompositionAttesterComponent dst = new CompositionAttesterComponent();
294        copyValues(dst);
295        return dst;
296      }
297
298      public void copyValues(CompositionAttesterComponent dst) {
299        super.copyValues(dst);
300        dst.mode = mode == null ? null : mode.copy();
301        dst.time = time == null ? null : time.copy();
302        dst.party = party == null ? null : party.copy();
303      }
304
305      @Override
306      public boolean equalsDeep(Base other_) {
307        if (!super.equalsDeep(other_))
308          return false;
309        if (!(other_ instanceof CompositionAttesterComponent))
310          return false;
311        CompositionAttesterComponent o = (CompositionAttesterComponent) other_;
312        return compareDeep(mode, o.mode, true) && compareDeep(time, o.time, true) && compareDeep(party, o.party, true)
313          ;
314      }
315
316      @Override
317      public boolean equalsShallow(Base other_) {
318        if (!super.equalsShallow(other_))
319          return false;
320        if (!(other_ instanceof CompositionAttesterComponent))
321          return false;
322        CompositionAttesterComponent o = (CompositionAttesterComponent) other_;
323        return compareValues(time, o.time, true);
324      }
325
326      public boolean isEmpty() {
327        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(mode, time, party);
328      }
329
330  public String fhirType() {
331    return "Composition.attester";
332
333  }
334
335  }
336
337    @Block()
338    public static class CompositionEventComponent extends BackboneElement implements IBaseBackboneElement {
339        /**
340         * The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.
341         */
342        @Child(name = "period", type = {Period.class}, order=1, min=0, max=1, modifier=false, summary=true)
343        @Description(shortDefinition="The period covered by the documentation", formalDefinition="The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time." )
344        protected Period period;
345
346        /**
347         * Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which case the procedure being documented is necessarily a "History and Physical" act. The events may be included as a code or as a reference to an other resource.
348         */
349        @Child(name = "detail", type = {CodeableReference.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
350        @Description(shortDefinition="The event(s) being documented, as code(s), reference(s), or both", formalDefinition="Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which case the procedure being documented is necessarily a \"History and Physical\" act. The events may be included as a code or as a reference to an other resource." )
351        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://terminology.hl7.org/ValueSet/v3-ActCode")
352        protected List<CodeableReference> detail;
353
354        private static final long serialVersionUID = -2108044093L;
355
356    /**
357     * Constructor
358     */
359      public CompositionEventComponent() {
360        super();
361      }
362
363        /**
364         * @return {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.)
365         */
366        public Period getPeriod() { 
367          if (this.period == null)
368            if (Configuration.errorOnAutoCreate())
369              throw new Error("Attempt to auto-create CompositionEventComponent.period");
370            else if (Configuration.doAutoCreate())
371              this.period = new Period(); // cc
372          return this.period;
373        }
374
375        public boolean hasPeriod() { 
376          return this.period != null && !this.period.isEmpty();
377        }
378
379        /**
380         * @param value {@link #period} (The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.)
381         */
382        public CompositionEventComponent setPeriod(Period value) { 
383          this.period = value;
384          return this;
385        }
386
387        /**
388         * @return {@link #detail} (Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which case the procedure being documented is necessarily a "History and Physical" act. The events may be included as a code or as a reference to an other resource.)
389         */
390        public List<CodeableReference> getDetail() { 
391          if (this.detail == null)
392            this.detail = new ArrayList<CodeableReference>();
393          return this.detail;
394        }
395
396        /**
397         * @return Returns a reference to <code>this</code> for easy method chaining
398         */
399        public CompositionEventComponent setDetail(List<CodeableReference> theDetail) { 
400          this.detail = theDetail;
401          return this;
402        }
403
404        public boolean hasDetail() { 
405          if (this.detail == null)
406            return false;
407          for (CodeableReference item : this.detail)
408            if (!item.isEmpty())
409              return true;
410          return false;
411        }
412
413        public CodeableReference addDetail() { //3
414          CodeableReference t = new CodeableReference();
415          if (this.detail == null)
416            this.detail = new ArrayList<CodeableReference>();
417          this.detail.add(t);
418          return t;
419        }
420
421        public CompositionEventComponent addDetail(CodeableReference t) { //3
422          if (t == null)
423            return this;
424          if (this.detail == null)
425            this.detail = new ArrayList<CodeableReference>();
426          this.detail.add(t);
427          return this;
428        }
429
430        /**
431         * @return The first repetition of repeating field {@link #detail}, creating it if it does not already exist {3}
432         */
433        public CodeableReference getDetailFirstRep() { 
434          if (getDetail().isEmpty()) {
435            addDetail();
436          }
437          return getDetail().get(0);
438        }
439
440        protected void listChildren(List<Property> children) {
441          super.listChildren(children);
442          children.add(new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, 1, period));
443          children.add(new Property("detail", "CodeableReference(Any)", "Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which case the procedure being documented is necessarily a \"History and Physical\" act. The events may be included as a code or as a reference to an other resource.", 0, java.lang.Integer.MAX_VALUE, detail));
444        }
445
446        @Override
447        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
448          switch (_hash) {
449          case -991726143: /*period*/  return new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, 1, period);
450          case -1335224239: /*detail*/  return new Property("detail", "CodeableReference(Any)", "Represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which case the procedure being documented is necessarily a \"History and Physical\" act. The events may be included as a code or as a reference to an other resource.", 0, java.lang.Integer.MAX_VALUE, detail);
451          default: return super.getNamedProperty(_hash, _name, _checkValid);
452          }
453
454        }
455
456      @Override
457      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
458        switch (hash) {
459        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
460        case -1335224239: /*detail*/ return this.detail == null ? new Base[0] : this.detail.toArray(new Base[this.detail.size()]); // CodeableReference
461        default: return super.getProperty(hash, name, checkValid);
462        }
463
464      }
465
466      @Override
467      public Base setProperty(int hash, String name, Base value) throws FHIRException {
468        switch (hash) {
469        case -991726143: // period
470          this.period = TypeConvertor.castToPeriod(value); // Period
471          return value;
472        case -1335224239: // detail
473          this.getDetail().add(TypeConvertor.castToCodeableReference(value)); // CodeableReference
474          return value;
475        default: return super.setProperty(hash, name, value);
476        }
477
478      }
479
480      @Override
481      public Base setProperty(String name, Base value) throws FHIRException {
482        if (name.equals("period")) {
483          this.period = TypeConvertor.castToPeriod(value); // Period
484        } else if (name.equals("detail")) {
485          this.getDetail().add(TypeConvertor.castToCodeableReference(value));
486        } else
487          return super.setProperty(name, value);
488        return value;
489      }
490
491      @Override
492      public Base makeProperty(int hash, String name) throws FHIRException {
493        switch (hash) {
494        case -991726143:  return getPeriod();
495        case -1335224239:  return addDetail(); 
496        default: return super.makeProperty(hash, name);
497        }
498
499      }
500
501      @Override
502      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
503        switch (hash) {
504        case -991726143: /*period*/ return new String[] {"Period"};
505        case -1335224239: /*detail*/ return new String[] {"CodeableReference"};
506        default: return super.getTypesForProperty(hash, name);
507        }
508
509      }
510
511      @Override
512      public Base addChild(String name) throws FHIRException {
513        if (name.equals("period")) {
514          this.period = new Period();
515          return this.period;
516        }
517        else if (name.equals("detail")) {
518          return addDetail();
519        }
520        else
521          return super.addChild(name);
522      }
523
524      public CompositionEventComponent copy() {
525        CompositionEventComponent dst = new CompositionEventComponent();
526        copyValues(dst);
527        return dst;
528      }
529
530      public void copyValues(CompositionEventComponent dst) {
531        super.copyValues(dst);
532        dst.period = period == null ? null : period.copy();
533        if (detail != null) {
534          dst.detail = new ArrayList<CodeableReference>();
535          for (CodeableReference i : detail)
536            dst.detail.add(i.copy());
537        };
538      }
539
540      @Override
541      public boolean equalsDeep(Base other_) {
542        if (!super.equalsDeep(other_))
543          return false;
544        if (!(other_ instanceof CompositionEventComponent))
545          return false;
546        CompositionEventComponent o = (CompositionEventComponent) other_;
547        return compareDeep(period, o.period, true) && compareDeep(detail, o.detail, true);
548      }
549
550      @Override
551      public boolean equalsShallow(Base other_) {
552        if (!super.equalsShallow(other_))
553          return false;
554        if (!(other_ instanceof CompositionEventComponent))
555          return false;
556        CompositionEventComponent o = (CompositionEventComponent) other_;
557        return true;
558      }
559
560      public boolean isEmpty() {
561        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(period, detail);
562      }
563
564  public String fhirType() {
565    return "Composition.event";
566
567  }
568
569  }
570
571    @Block()
572    public static class SectionComponent extends BackboneElement implements IBaseBackboneElement {
573        /**
574         * The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.
575         */
576        @Child(name = "title", type = {StringType.class}, order=1, min=0, max=1, modifier=false, summary=false)
577        @Description(shortDefinition="Label for section (e.g. for ToC)", formalDefinition="The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents." )
578        protected StringType title;
579
580        /**
581         * A code identifying the kind of content contained within the section. This must be consistent with the section title.
582         */
583        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=0, max=1, modifier=false, summary=false)
584        @Description(shortDefinition="Classification of section (recommended)", formalDefinition="A code identifying the kind of content contained within the section. This must be consistent with the section title." )
585        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/doc-section-codes")
586        protected CodeableConcept code;
587
588        /**
589         * Identifies who is responsible for the information in this section, not necessarily who typed it in.
590         */
591        @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Device.class, Patient.class, RelatedPerson.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
592        @Description(shortDefinition="Who and/or what authored the section", formalDefinition="Identifies who is responsible for the information in this section, not necessarily who typed it in." )
593        protected List<Reference> author;
594
595        /**
596         * The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).
597         */
598        @Child(name = "focus", type = {Reference.class}, order=4, min=0, max=1, modifier=false, summary=false)
599        @Description(shortDefinition="Who/what the section is about, when it is not about the subject of composition", formalDefinition="The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources)." )
600        protected Reference focus;
601
602        /**
603         * A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative.
604         */
605        @Child(name = "text", type = {Narrative.class}, order=5, min=0, max=1, modifier=false, summary=false)
606        @Description(shortDefinition="Text summary of the section, for human interpretation", formalDefinition="A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative." )
607        protected Narrative text;
608
609        /**
610         * Specifies the order applied to the items in the section entries.
611         */
612        @Child(name = "orderedBy", type = {CodeableConcept.class}, order=6, min=0, max=1, modifier=false, summary=false)
613        @Description(shortDefinition="Order of section entries", formalDefinition="Specifies the order applied to the items in the section entries." )
614        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-order")
615        protected CodeableConcept orderedBy;
616
617        /**
618         * A reference to the actual resource from which the narrative in the section is derived.
619         */
620        @Child(name = "entry", type = {Reference.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
621        @Description(shortDefinition="A reference to data that supports this section", formalDefinition="A reference to the actual resource from which the narrative in the section is derived." )
622        protected List<Reference> entry;
623
624        /**
625         * If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.
626         */
627        @Child(name = "emptyReason", type = {CodeableConcept.class}, order=8, min=0, max=1, modifier=false, summary=false)
628        @Description(shortDefinition="Why the section is empty", formalDefinition="If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason." )
629        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/list-empty-reason")
630        protected CodeableConcept emptyReason;
631
632        /**
633         * A nested sub-section within this section.
634         */
635        @Child(name = "section", type = {SectionComponent.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
636        @Description(shortDefinition="Nested Section", formalDefinition="A nested sub-section within this section." )
637        protected List<SectionComponent> section;
638
639        private static final long serialVersionUID = 902802086L;
640
641    /**
642     * Constructor
643     */
644      public SectionComponent() {
645        super();
646      }
647
648        /**
649         * @return {@link #title} (The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
650         */
651        public StringType getTitleElement() { 
652          if (this.title == null)
653            if (Configuration.errorOnAutoCreate())
654              throw new Error("Attempt to auto-create SectionComponent.title");
655            else if (Configuration.doAutoCreate())
656              this.title = new StringType(); // bb
657          return this.title;
658        }
659
660        public boolean hasTitleElement() { 
661          return this.title != null && !this.title.isEmpty();
662        }
663
664        public boolean hasTitle() { 
665          return this.title != null && !this.title.isEmpty();
666        }
667
668        /**
669         * @param value {@link #title} (The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
670         */
671        public SectionComponent setTitleElement(StringType value) { 
672          this.title = value;
673          return this;
674        }
675
676        /**
677         * @return The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.
678         */
679        public String getTitle() { 
680          return this.title == null ? null : this.title.getValue();
681        }
682
683        /**
684         * @param value The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.
685         */
686        public SectionComponent setTitle(String value) { 
687          if (Utilities.noString(value))
688            this.title = null;
689          else {
690            if (this.title == null)
691              this.title = new StringType();
692            this.title.setValue(value);
693          }
694          return this;
695        }
696
697        /**
698         * @return {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.)
699         */
700        public CodeableConcept getCode() { 
701          if (this.code == null)
702            if (Configuration.errorOnAutoCreate())
703              throw new Error("Attempt to auto-create SectionComponent.code");
704            else if (Configuration.doAutoCreate())
705              this.code = new CodeableConcept(); // cc
706          return this.code;
707        }
708
709        public boolean hasCode() { 
710          return this.code != null && !this.code.isEmpty();
711        }
712
713        /**
714         * @param value {@link #code} (A code identifying the kind of content contained within the section. This must be consistent with the section title.)
715         */
716        public SectionComponent setCode(CodeableConcept value) { 
717          this.code = value;
718          return this;
719        }
720
721        /**
722         * @return {@link #author} (Identifies who is responsible for the information in this section, not necessarily who typed it in.)
723         */
724        public List<Reference> getAuthor() { 
725          if (this.author == null)
726            this.author = new ArrayList<Reference>();
727          return this.author;
728        }
729
730        /**
731         * @return Returns a reference to <code>this</code> for easy method chaining
732         */
733        public SectionComponent setAuthor(List<Reference> theAuthor) { 
734          this.author = theAuthor;
735          return this;
736        }
737
738        public boolean hasAuthor() { 
739          if (this.author == null)
740            return false;
741          for (Reference item : this.author)
742            if (!item.isEmpty())
743              return true;
744          return false;
745        }
746
747        public Reference addAuthor() { //3
748          Reference t = new Reference();
749          if (this.author == null)
750            this.author = new ArrayList<Reference>();
751          this.author.add(t);
752          return t;
753        }
754
755        public SectionComponent addAuthor(Reference t) { //3
756          if (t == null)
757            return this;
758          if (this.author == null)
759            this.author = new ArrayList<Reference>();
760          this.author.add(t);
761          return this;
762        }
763
764        /**
765         * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
766         */
767        public Reference getAuthorFirstRep() { 
768          if (getAuthor().isEmpty()) {
769            addAuthor();
770          }
771          return getAuthor().get(0);
772        }
773
774        /**
775         * @return {@link #focus} (The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).)
776         */
777        public Reference getFocus() { 
778          if (this.focus == null)
779            if (Configuration.errorOnAutoCreate())
780              throw new Error("Attempt to auto-create SectionComponent.focus");
781            else if (Configuration.doAutoCreate())
782              this.focus = new Reference(); // cc
783          return this.focus;
784        }
785
786        public boolean hasFocus() { 
787          return this.focus != null && !this.focus.isEmpty();
788        }
789
790        /**
791         * @param value {@link #focus} (The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).)
792         */
793        public SectionComponent setFocus(Reference value) { 
794          this.focus = value;
795          return this;
796        }
797
798        /**
799         * @return {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative.)
800         */
801        public Narrative getText() { 
802          if (this.text == null)
803            if (Configuration.errorOnAutoCreate())
804              throw new Error("Attempt to auto-create SectionComponent.text");
805            else if (Configuration.doAutoCreate())
806              this.text = new Narrative(); // cc
807          return this.text;
808        }
809
810        public boolean hasText() { 
811          return this.text != null && !this.text.isEmpty();
812        }
813
814        /**
815         * @param value {@link #text} (A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it "clinically safe" for a human to just read the narrative.)
816         */
817        public SectionComponent setText(Narrative value) { 
818          this.text = value;
819          return this;
820        }
821
822        /**
823         * @return {@link #orderedBy} (Specifies the order applied to the items in the section entries.)
824         */
825        public CodeableConcept getOrderedBy() { 
826          if (this.orderedBy == null)
827            if (Configuration.errorOnAutoCreate())
828              throw new Error("Attempt to auto-create SectionComponent.orderedBy");
829            else if (Configuration.doAutoCreate())
830              this.orderedBy = new CodeableConcept(); // cc
831          return this.orderedBy;
832        }
833
834        public boolean hasOrderedBy() { 
835          return this.orderedBy != null && !this.orderedBy.isEmpty();
836        }
837
838        /**
839         * @param value {@link #orderedBy} (Specifies the order applied to the items in the section entries.)
840         */
841        public SectionComponent setOrderedBy(CodeableConcept value) { 
842          this.orderedBy = value;
843          return this;
844        }
845
846        /**
847         * @return {@link #entry} (A reference to the actual resource from which the narrative in the section is derived.)
848         */
849        public List<Reference> getEntry() { 
850          if (this.entry == null)
851            this.entry = new ArrayList<Reference>();
852          return this.entry;
853        }
854
855        /**
856         * @return Returns a reference to <code>this</code> for easy method chaining
857         */
858        public SectionComponent setEntry(List<Reference> theEntry) { 
859          this.entry = theEntry;
860          return this;
861        }
862
863        public boolean hasEntry() { 
864          if (this.entry == null)
865            return false;
866          for (Reference item : this.entry)
867            if (!item.isEmpty())
868              return true;
869          return false;
870        }
871
872        public Reference addEntry() { //3
873          Reference t = new Reference();
874          if (this.entry == null)
875            this.entry = new ArrayList<Reference>();
876          this.entry.add(t);
877          return t;
878        }
879
880        public SectionComponent addEntry(Reference t) { //3
881          if (t == null)
882            return this;
883          if (this.entry == null)
884            this.entry = new ArrayList<Reference>();
885          this.entry.add(t);
886          return this;
887        }
888
889        /**
890         * @return The first repetition of repeating field {@link #entry}, creating it if it does not already exist {3}
891         */
892        public Reference getEntryFirstRep() { 
893          if (getEntry().isEmpty()) {
894            addEntry();
895          }
896          return getEntry().get(0);
897        }
898
899        /**
900         * @return {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.)
901         */
902        public CodeableConcept getEmptyReason() { 
903          if (this.emptyReason == null)
904            if (Configuration.errorOnAutoCreate())
905              throw new Error("Attempt to auto-create SectionComponent.emptyReason");
906            else if (Configuration.doAutoCreate())
907              this.emptyReason = new CodeableConcept(); // cc
908          return this.emptyReason;
909        }
910
911        public boolean hasEmptyReason() { 
912          return this.emptyReason != null && !this.emptyReason.isEmpty();
913        }
914
915        /**
916         * @param value {@link #emptyReason} (If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.)
917         */
918        public SectionComponent setEmptyReason(CodeableConcept value) { 
919          this.emptyReason = value;
920          return this;
921        }
922
923        /**
924         * @return {@link #section} (A nested sub-section within this section.)
925         */
926        public List<SectionComponent> getSection() { 
927          if (this.section == null)
928            this.section = new ArrayList<SectionComponent>();
929          return this.section;
930        }
931
932        /**
933         * @return Returns a reference to <code>this</code> for easy method chaining
934         */
935        public SectionComponent setSection(List<SectionComponent> theSection) { 
936          this.section = theSection;
937          return this;
938        }
939
940        public boolean hasSection() { 
941          if (this.section == null)
942            return false;
943          for (SectionComponent item : this.section)
944            if (!item.isEmpty())
945              return true;
946          return false;
947        }
948
949        public SectionComponent addSection() { //3
950          SectionComponent t = new SectionComponent();
951          if (this.section == null)
952            this.section = new ArrayList<SectionComponent>();
953          this.section.add(t);
954          return t;
955        }
956
957        public SectionComponent addSection(SectionComponent t) { //3
958          if (t == null)
959            return this;
960          if (this.section == null)
961            this.section = new ArrayList<SectionComponent>();
962          this.section.add(t);
963          return this;
964        }
965
966        /**
967         * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3}
968         */
969        public SectionComponent getSectionFirstRep() { 
970          if (getSection().isEmpty()) {
971            addSection();
972          }
973          return getSection().get(0);
974        }
975
976        protected void listChildren(List<Property> children) {
977          super.listChildren(children);
978          children.add(new Property("title", "string", "The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title));
979          children.add(new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, 1, code));
980          children.add(new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author));
981          children.add(new Property("focus", "Reference(Any)", "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).", 0, 1, focus));
982          children.add(new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative.", 0, 1, text));
983          children.add(new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy));
984          children.add(new Property("entry", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entry));
985          children.add(new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason));
986          children.add(new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section));
987        }
988
989        @Override
990        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
991          switch (_hash) {
992          case 110371416: /*title*/  return new Property("title", "string", "The label for this particular section.  This will be part of the rendered content for the document, and is often used to build a table of contents.", 0, 1, title);
993          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "A code identifying the kind of content contained within the section. This must be consistent with the section title.", 0, 1, code);
994          case -1406328437: /*author*/  return new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in this section, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author);
995          case 97604824: /*focus*/  return new Property("focus", "Reference(Any)", "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).", 0, 1, focus);
996          case 3556653: /*text*/  return new Property("text", "Narrative", "A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative.", 0, 1, text);
997          case -391079516: /*orderedBy*/  return new Property("orderedBy", "CodeableConcept", "Specifies the order applied to the items in the section entries.", 0, 1, orderedBy);
998          case 96667762: /*entry*/  return new Property("entry", "Reference(Any)", "A reference to the actual resource from which the narrative in the section is derived.", 0, java.lang.Integer.MAX_VALUE, entry);
999          case 1140135409: /*emptyReason*/  return new Property("emptyReason", "CodeableConcept", "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.", 0, 1, emptyReason);
1000          case 1970241253: /*section*/  return new Property("section", "@Composition.section", "A nested sub-section within this section.", 0, java.lang.Integer.MAX_VALUE, section);
1001          default: return super.getNamedProperty(_hash, _name, _checkValid);
1002          }
1003
1004        }
1005
1006      @Override
1007      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1008        switch (hash) {
1009        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
1010        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
1011        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference
1012        case 97604824: /*focus*/ return this.focus == null ? new Base[0] : new Base[] {this.focus}; // Reference
1013        case 3556653: /*text*/ return this.text == null ? new Base[0] : new Base[] {this.text}; // Narrative
1014        case -391079516: /*orderedBy*/ return this.orderedBy == null ? new Base[0] : new Base[] {this.orderedBy}; // CodeableConcept
1015        case 96667762: /*entry*/ return this.entry == null ? new Base[0] : this.entry.toArray(new Base[this.entry.size()]); // Reference
1016        case 1140135409: /*emptyReason*/ return this.emptyReason == null ? new Base[0] : new Base[] {this.emptyReason}; // CodeableConcept
1017        case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent
1018        default: return super.getProperty(hash, name, checkValid);
1019        }
1020
1021      }
1022
1023      @Override
1024      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1025        switch (hash) {
1026        case 110371416: // title
1027          this.title = TypeConvertor.castToString(value); // StringType
1028          return value;
1029        case 3059181: // code
1030          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1031          return value;
1032        case -1406328437: // author
1033          this.getAuthor().add(TypeConvertor.castToReference(value)); // Reference
1034          return value;
1035        case 97604824: // focus
1036          this.focus = TypeConvertor.castToReference(value); // Reference
1037          return value;
1038        case 3556653: // text
1039          this.text = TypeConvertor.castToNarrative(value); // Narrative
1040          return value;
1041        case -391079516: // orderedBy
1042          this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1043          return value;
1044        case 96667762: // entry
1045          this.getEntry().add(TypeConvertor.castToReference(value)); // Reference
1046          return value;
1047        case 1140135409: // emptyReason
1048          this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1049          return value;
1050        case 1970241253: // section
1051          this.getSection().add((SectionComponent) value); // SectionComponent
1052          return value;
1053        default: return super.setProperty(hash, name, value);
1054        }
1055
1056      }
1057
1058      @Override
1059      public Base setProperty(String name, Base value) throws FHIRException {
1060        if (name.equals("title")) {
1061          this.title = TypeConvertor.castToString(value); // StringType
1062        } else if (name.equals("code")) {
1063          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1064        } else if (name.equals("author")) {
1065          this.getAuthor().add(TypeConvertor.castToReference(value));
1066        } else if (name.equals("focus")) {
1067          this.focus = TypeConvertor.castToReference(value); // Reference
1068        } else if (name.equals("text")) {
1069          this.text = TypeConvertor.castToNarrative(value); // Narrative
1070        } else if (name.equals("orderedBy")) {
1071          this.orderedBy = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1072        } else if (name.equals("entry")) {
1073          this.getEntry().add(TypeConvertor.castToReference(value));
1074        } else if (name.equals("emptyReason")) {
1075          this.emptyReason = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1076        } else if (name.equals("section")) {
1077          this.getSection().add((SectionComponent) value);
1078        } else
1079          return super.setProperty(name, value);
1080        return value;
1081      }
1082
1083      @Override
1084      public Base makeProperty(int hash, String name) throws FHIRException {
1085        switch (hash) {
1086        case 110371416:  return getTitleElement();
1087        case 3059181:  return getCode();
1088        case -1406328437:  return addAuthor(); 
1089        case 97604824:  return getFocus();
1090        case 3556653:  return getText();
1091        case -391079516:  return getOrderedBy();
1092        case 96667762:  return addEntry(); 
1093        case 1140135409:  return getEmptyReason();
1094        case 1970241253:  return addSection(); 
1095        default: return super.makeProperty(hash, name);
1096        }
1097
1098      }
1099
1100      @Override
1101      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1102        switch (hash) {
1103        case 110371416: /*title*/ return new String[] {"string"};
1104        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1105        case -1406328437: /*author*/ return new String[] {"Reference"};
1106        case 97604824: /*focus*/ return new String[] {"Reference"};
1107        case 3556653: /*text*/ return new String[] {"Narrative"};
1108        case -391079516: /*orderedBy*/ return new String[] {"CodeableConcept"};
1109        case 96667762: /*entry*/ return new String[] {"Reference"};
1110        case 1140135409: /*emptyReason*/ return new String[] {"CodeableConcept"};
1111        case 1970241253: /*section*/ return new String[] {"@Composition.section"};
1112        default: return super.getTypesForProperty(hash, name);
1113        }
1114
1115      }
1116
1117      @Override
1118      public Base addChild(String name) throws FHIRException {
1119        if (name.equals("title")) {
1120          throw new FHIRException("Cannot call addChild on a singleton property Composition.section.title");
1121        }
1122        else if (name.equals("code")) {
1123          this.code = new CodeableConcept();
1124          return this.code;
1125        }
1126        else if (name.equals("author")) {
1127          return addAuthor();
1128        }
1129        else if (name.equals("focus")) {
1130          this.focus = new Reference();
1131          return this.focus;
1132        }
1133        else if (name.equals("text")) {
1134          this.text = new Narrative();
1135          return this.text;
1136        }
1137        else if (name.equals("orderedBy")) {
1138          this.orderedBy = new CodeableConcept();
1139          return this.orderedBy;
1140        }
1141        else if (name.equals("entry")) {
1142          return addEntry();
1143        }
1144        else if (name.equals("emptyReason")) {
1145          this.emptyReason = new CodeableConcept();
1146          return this.emptyReason;
1147        }
1148        else if (name.equals("section")) {
1149          return addSection();
1150        }
1151        else
1152          return super.addChild(name);
1153      }
1154
1155      public SectionComponent copy() {
1156        SectionComponent dst = new SectionComponent();
1157        copyValues(dst);
1158        return dst;
1159      }
1160
1161      public void copyValues(SectionComponent dst) {
1162        super.copyValues(dst);
1163        dst.title = title == null ? null : title.copy();
1164        dst.code = code == null ? null : code.copy();
1165        if (author != null) {
1166          dst.author = new ArrayList<Reference>();
1167          for (Reference i : author)
1168            dst.author.add(i.copy());
1169        };
1170        dst.focus = focus == null ? null : focus.copy();
1171        dst.text = text == null ? null : text.copy();
1172        dst.orderedBy = orderedBy == null ? null : orderedBy.copy();
1173        if (entry != null) {
1174          dst.entry = new ArrayList<Reference>();
1175          for (Reference i : entry)
1176            dst.entry.add(i.copy());
1177        };
1178        dst.emptyReason = emptyReason == null ? null : emptyReason.copy();
1179        if (section != null) {
1180          dst.section = new ArrayList<SectionComponent>();
1181          for (SectionComponent i : section)
1182            dst.section.add(i.copy());
1183        };
1184      }
1185
1186      @Override
1187      public boolean equalsDeep(Base other_) {
1188        if (!super.equalsDeep(other_))
1189          return false;
1190        if (!(other_ instanceof SectionComponent))
1191          return false;
1192        SectionComponent o = (SectionComponent) other_;
1193        return compareDeep(title, o.title, true) && compareDeep(code, o.code, true) && compareDeep(author, o.author, true)
1194           && compareDeep(focus, o.focus, true) && compareDeep(text, o.text, true) && compareDeep(orderedBy, o.orderedBy, true)
1195           && compareDeep(entry, o.entry, true) && compareDeep(emptyReason, o.emptyReason, true) && compareDeep(section, o.section, true)
1196          ;
1197      }
1198
1199      @Override
1200      public boolean equalsShallow(Base other_) {
1201        if (!super.equalsShallow(other_))
1202          return false;
1203        if (!(other_ instanceof SectionComponent))
1204          return false;
1205        SectionComponent o = (SectionComponent) other_;
1206        return compareValues(title, o.title, true);
1207      }
1208
1209      public boolean isEmpty() {
1210        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(title, code, author, focus
1211          , text, orderedBy, entry, emptyReason, section);
1212      }
1213
1214  public String fhirType() {
1215    return "Composition.section";
1216
1217  }
1218
1219  }
1220
1221    /**
1222     * An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.
1223     */
1224    @Child(name = "url", type = {UriType.class}, order=0, min=0, max=1, modifier=false, summary=true)
1225    @Description(shortDefinition="Canonical identifier for this Composition, represented as a URI (globally unique)", formalDefinition="An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers." )
1226    protected UriType url;
1227
1228    /**
1229     * A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.
1230     */
1231    @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1232    @Description(shortDefinition="Version-independent identifier for the Composition", formalDefinition="A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time." )
1233    protected List<Identifier> identifier;
1234
1235    /**
1236     * An explicitly assigned identifer of a variation of the content in the Composition.
1237     */
1238    @Child(name = "version", type = {StringType.class}, order=2, min=0, max=1, modifier=false, summary=true)
1239    @Description(shortDefinition="An explicitly assigned identifer of a variation of the content in the Composition", formalDefinition="An explicitly assigned identifer of a variation of the content in the Composition." )
1240    protected StringType version;
1241
1242    /**
1243     * The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.
1244     */
1245    @Child(name = "status", type = {CodeType.class}, order=3, min=1, max=1, modifier=true, summary=true)
1246    @Description(shortDefinition="registered | partial | preliminary | final | amended | corrected | appended | cancelled | entered-in-error | deprecated | unknown", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." )
1247    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/composition-status")
1248    protected Enumeration<CompositionStatus> status;
1249
1250    /**
1251     * Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.
1252     */
1253    @Child(name = "type", type = {CodeableConcept.class}, order=4, min=1, max=1, modifier=false, summary=true)
1254    @Description(shortDefinition="Kind of composition (LOINC if possible)", formalDefinition="Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition." )
1255    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/doc-typecodes")
1256    protected CodeableConcept type;
1257
1258    /**
1259     * A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.
1260     */
1261    @Child(name = "category", type = {CodeableConcept.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1262    @Description(shortDefinition="Categorization of Composition", formalDefinition="A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type." )
1263    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/referenced-item-category")
1264    protected List<CodeableConcept> category;
1265
1266    /**
1267     * Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).
1268     */
1269    @Child(name = "subject", type = {Reference.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1270    @Description(shortDefinition="Who and/or what the composition is about", formalDefinition="Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)." )
1271    protected List<Reference> subject;
1272
1273    /**
1274     * Describes the clinical encounter or type of care this documentation is associated with.
1275     */
1276    @Child(name = "encounter", type = {Encounter.class}, order=7, min=0, max=1, modifier=false, summary=true)
1277    @Description(shortDefinition="Context of the Composition", formalDefinition="Describes the clinical encounter or type of care this documentation is associated with." )
1278    protected Reference encounter;
1279
1280    /**
1281     * The composition editing time, when the composition was last logically changed by the author.
1282     */
1283    @Child(name = "date", type = {DateTimeType.class}, order=8, min=1, max=1, modifier=false, summary=true)
1284    @Description(shortDefinition="Composition editing time", formalDefinition="The composition editing time, when the composition was last logically changed by the author." )
1285    protected DateTimeType date;
1286
1287    /**
1288     * The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.
1289     */
1290    @Child(name = "useContext", type = {UsageContext.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1291    @Description(shortDefinition="The context that the content is intended to support", formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances." )
1292    protected List<UsageContext> useContext;
1293
1294    /**
1295     * Identifies who is responsible for the information in the composition, not necessarily who typed it in.
1296     */
1297    @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Device.class, Patient.class, RelatedPerson.class, Organization.class}, order=10, min=1, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1298    @Description(shortDefinition="Who and/or what authored the composition", formalDefinition="Identifies who is responsible for the information in the composition, not necessarily who typed it in." )
1299    protected List<Reference> author;
1300
1301    /**
1302     * A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
1303     */
1304    @Child(name = "name", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=true)
1305    @Description(shortDefinition="Name for this Composition (computer friendly)", formalDefinition="A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation." )
1306    protected StringType name;
1307
1308    /**
1309     * Official human-readable label for the composition.
1310     */
1311    @Child(name = "title", type = {StringType.class}, order=12, min=1, max=1, modifier=false, summary=true)
1312    @Description(shortDefinition="Human Readable name/title", formalDefinition="Official human-readable label for the composition." )
1313    protected StringType title;
1314
1315    /**
1316     * For any additional notes.
1317     */
1318    @Child(name = "note", type = {Annotation.class}, order=13, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1319    @Description(shortDefinition="For any additional notes", formalDefinition="For any additional notes." )
1320    protected List<Annotation> note;
1321
1322    /**
1323     * A participant who has attested to the accuracy of the composition/document.
1324     */
1325    @Child(name = "attester", type = {}, order=14, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1326    @Description(shortDefinition="Attests to accuracy of composition", formalDefinition="A participant who has attested to the accuracy of the composition/document." )
1327    protected List<CompositionAttesterComponent> attester;
1328
1329    /**
1330     * Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.
1331     */
1332    @Child(name = "custodian", type = {Organization.class}, order=15, min=0, max=1, modifier=false, summary=true)
1333    @Description(shortDefinition="Organization which maintains the composition", formalDefinition="Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information." )
1334    protected Reference custodian;
1335
1336    /**
1337     * Relationships that this composition has with other compositions or documents that already exist.
1338     */
1339    @Child(name = "relatesTo", type = {RelatedArtifact.class}, order=16, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1340    @Description(shortDefinition="Relationships to other compositions/documents", formalDefinition="Relationships that this composition has with other compositions or documents that already exist." )
1341    protected List<RelatedArtifact> relatesTo;
1342
1343    /**
1344     * The clinical service, such as a colonoscopy or an appendectomy, being documented.
1345     */
1346    @Child(name = "event", type = {}, order=17, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
1347    @Description(shortDefinition="The clinical service(s) being documented", formalDefinition="The clinical service, such as a colonoscopy or an appendectomy, being documented." )
1348    protected List<CompositionEventComponent> event;
1349
1350    /**
1351     * The root of the sections that make up the composition.
1352     */
1353    @Child(name = "section", type = {}, order=18, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
1354    @Description(shortDefinition="Composition is broken into sections", formalDefinition="The root of the sections that make up the composition." )
1355    protected List<SectionComponent> section;
1356
1357    private static final long serialVersionUID = 2030933035L;
1358
1359  /**
1360   * Constructor
1361   */
1362    public Composition() {
1363      super();
1364    }
1365
1366  /**
1367   * Constructor
1368   */
1369    public Composition(CompositionStatus status, CodeableConcept type, Date date, Reference author, String title) {
1370      super();
1371      this.setStatus(status);
1372      this.setType(type);
1373      this.setDate(date);
1374      this.addAuthor(author);
1375      this.setTitle(title);
1376    }
1377
1378    /**
1379     * @return {@link #url} (An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1380     */
1381    public UriType getUrlElement() { 
1382      if (this.url == null)
1383        if (Configuration.errorOnAutoCreate())
1384          throw new Error("Attempt to auto-create Composition.url");
1385        else if (Configuration.doAutoCreate())
1386          this.url = new UriType(); // bb
1387      return this.url;
1388    }
1389
1390    public boolean hasUrlElement() { 
1391      return this.url != null && !this.url.isEmpty();
1392    }
1393
1394    public boolean hasUrl() { 
1395      return this.url != null && !this.url.isEmpty();
1396    }
1397
1398    /**
1399     * @param value {@link #url} (An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.). This is the underlying object with id, value and extensions. The accessor "getUrl" gives direct access to the value
1400     */
1401    public Composition setUrlElement(UriType value) { 
1402      this.url = value;
1403      return this;
1404    }
1405
1406    /**
1407     * @return An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.
1408     */
1409    public String getUrl() { 
1410      return this.url == null ? null : this.url.getValue();
1411    }
1412
1413    /**
1414     * @param value An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.
1415     */
1416    public Composition setUrl(String value) { 
1417      if (Utilities.noString(value))
1418        this.url = null;
1419      else {
1420        if (this.url == null)
1421          this.url = new UriType();
1422        this.url.setValue(value);
1423      }
1424      return this;
1425    }
1426
1427    /**
1428     * @return {@link #identifier} (A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.)
1429     */
1430    public List<Identifier> getIdentifier() { 
1431      if (this.identifier == null)
1432        this.identifier = new ArrayList<Identifier>();
1433      return this.identifier;
1434    }
1435
1436    /**
1437     * @return Returns a reference to <code>this</code> for easy method chaining
1438     */
1439    public Composition setIdentifier(List<Identifier> theIdentifier) { 
1440      this.identifier = theIdentifier;
1441      return this;
1442    }
1443
1444    public boolean hasIdentifier() { 
1445      if (this.identifier == null)
1446        return false;
1447      for (Identifier item : this.identifier)
1448        if (!item.isEmpty())
1449          return true;
1450      return false;
1451    }
1452
1453    public Identifier addIdentifier() { //3
1454      Identifier t = new Identifier();
1455      if (this.identifier == null)
1456        this.identifier = new ArrayList<Identifier>();
1457      this.identifier.add(t);
1458      return t;
1459    }
1460
1461    public Composition addIdentifier(Identifier t) { //3
1462      if (t == null)
1463        return this;
1464      if (this.identifier == null)
1465        this.identifier = new ArrayList<Identifier>();
1466      this.identifier.add(t);
1467      return this;
1468    }
1469
1470    /**
1471     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
1472     */
1473    public Identifier getIdentifierFirstRep() { 
1474      if (getIdentifier().isEmpty()) {
1475        addIdentifier();
1476      }
1477      return getIdentifier().get(0);
1478    }
1479
1480    /**
1481     * @return {@link #version} (An explicitly assigned identifer of a variation of the content in the Composition.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
1482     */
1483    public StringType getVersionElement() { 
1484      if (this.version == null)
1485        if (Configuration.errorOnAutoCreate())
1486          throw new Error("Attempt to auto-create Composition.version");
1487        else if (Configuration.doAutoCreate())
1488          this.version = new StringType(); // bb
1489      return this.version;
1490    }
1491
1492    public boolean hasVersionElement() { 
1493      return this.version != null && !this.version.isEmpty();
1494    }
1495
1496    public boolean hasVersion() { 
1497      return this.version != null && !this.version.isEmpty();
1498    }
1499
1500    /**
1501     * @param value {@link #version} (An explicitly assigned identifer of a variation of the content in the Composition.). This is the underlying object with id, value and extensions. The accessor "getVersion" gives direct access to the value
1502     */
1503    public Composition setVersionElement(StringType value) { 
1504      this.version = value;
1505      return this;
1506    }
1507
1508    /**
1509     * @return An explicitly assigned identifer of a variation of the content in the Composition.
1510     */
1511    public String getVersion() { 
1512      return this.version == null ? null : this.version.getValue();
1513    }
1514
1515    /**
1516     * @param value An explicitly assigned identifer of a variation of the content in the Composition.
1517     */
1518    public Composition setVersion(String value) { 
1519      if (Utilities.noString(value))
1520        this.version = null;
1521      else {
1522        if (this.version == null)
1523          this.version = new StringType();
1524        this.version.setValue(value);
1525      }
1526      return this;
1527    }
1528
1529    /**
1530     * @return {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1531     */
1532    public Enumeration<CompositionStatus> getStatusElement() { 
1533      if (this.status == null)
1534        if (Configuration.errorOnAutoCreate())
1535          throw new Error("Attempt to auto-create Composition.status");
1536        else if (Configuration.doAutoCreate())
1537          this.status = new Enumeration<CompositionStatus>(new CompositionStatusEnumFactory()); // bb
1538      return this.status;
1539    }
1540
1541    public boolean hasStatusElement() { 
1542      return this.status != null && !this.status.isEmpty();
1543    }
1544
1545    public boolean hasStatus() { 
1546      return this.status != null && !this.status.isEmpty();
1547    }
1548
1549    /**
1550     * @param value {@link #status} (The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
1551     */
1552    public Composition setStatusElement(Enumeration<CompositionStatus> value) { 
1553      this.status = value;
1554      return this;
1555    }
1556
1557    /**
1558     * @return The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.
1559     */
1560    public CompositionStatus getStatus() { 
1561      return this.status == null ? null : this.status.getValue();
1562    }
1563
1564    /**
1565     * @param value The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.
1566     */
1567    public Composition setStatus(CompositionStatus value) { 
1568        if (this.status == null)
1569          this.status = new Enumeration<CompositionStatus>(new CompositionStatusEnumFactory());
1570        this.status.setValue(value);
1571      return this;
1572    }
1573
1574    /**
1575     * @return {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.)
1576     */
1577    public CodeableConcept getType() { 
1578      if (this.type == null)
1579        if (Configuration.errorOnAutoCreate())
1580          throw new Error("Attempt to auto-create Composition.type");
1581        else if (Configuration.doAutoCreate())
1582          this.type = new CodeableConcept(); // cc
1583      return this.type;
1584    }
1585
1586    public boolean hasType() { 
1587      return this.type != null && !this.type.isEmpty();
1588    }
1589
1590    /**
1591     * @param value {@link #type} (Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.)
1592     */
1593    public Composition setType(CodeableConcept value) { 
1594      this.type = value;
1595      return this;
1596    }
1597
1598    /**
1599     * @return {@link #category} (A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.)
1600     */
1601    public List<CodeableConcept> getCategory() { 
1602      if (this.category == null)
1603        this.category = new ArrayList<CodeableConcept>();
1604      return this.category;
1605    }
1606
1607    /**
1608     * @return Returns a reference to <code>this</code> for easy method chaining
1609     */
1610    public Composition setCategory(List<CodeableConcept> theCategory) { 
1611      this.category = theCategory;
1612      return this;
1613    }
1614
1615    public boolean hasCategory() { 
1616      if (this.category == null)
1617        return false;
1618      for (CodeableConcept item : this.category)
1619        if (!item.isEmpty())
1620          return true;
1621      return false;
1622    }
1623
1624    public CodeableConcept addCategory() { //3
1625      CodeableConcept t = new CodeableConcept();
1626      if (this.category == null)
1627        this.category = new ArrayList<CodeableConcept>();
1628      this.category.add(t);
1629      return t;
1630    }
1631
1632    public Composition addCategory(CodeableConcept t) { //3
1633      if (t == null)
1634        return this;
1635      if (this.category == null)
1636        this.category = new ArrayList<CodeableConcept>();
1637      this.category.add(t);
1638      return this;
1639    }
1640
1641    /**
1642     * @return The first repetition of repeating field {@link #category}, creating it if it does not already exist {3}
1643     */
1644    public CodeableConcept getCategoryFirstRep() { 
1645      if (getCategory().isEmpty()) {
1646        addCategory();
1647      }
1648      return getCategory().get(0);
1649    }
1650
1651    /**
1652     * @return {@link #subject} (Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).)
1653     */
1654    public List<Reference> getSubject() { 
1655      if (this.subject == null)
1656        this.subject = new ArrayList<Reference>();
1657      return this.subject;
1658    }
1659
1660    /**
1661     * @return Returns a reference to <code>this</code> for easy method chaining
1662     */
1663    public Composition setSubject(List<Reference> theSubject) { 
1664      this.subject = theSubject;
1665      return this;
1666    }
1667
1668    public boolean hasSubject() { 
1669      if (this.subject == null)
1670        return false;
1671      for (Reference item : this.subject)
1672        if (!item.isEmpty())
1673          return true;
1674      return false;
1675    }
1676
1677    public Reference addSubject() { //3
1678      Reference t = new Reference();
1679      if (this.subject == null)
1680        this.subject = new ArrayList<Reference>();
1681      this.subject.add(t);
1682      return t;
1683    }
1684
1685    public Composition addSubject(Reference t) { //3
1686      if (t == null)
1687        return this;
1688      if (this.subject == null)
1689        this.subject = new ArrayList<Reference>();
1690      this.subject.add(t);
1691      return this;
1692    }
1693
1694    /**
1695     * @return The first repetition of repeating field {@link #subject}, creating it if it does not already exist {3}
1696     */
1697    public Reference getSubjectFirstRep() { 
1698      if (getSubject().isEmpty()) {
1699        addSubject();
1700      }
1701      return getSubject().get(0);
1702    }
1703
1704    /**
1705     * @return {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.)
1706     */
1707    public Reference getEncounter() { 
1708      if (this.encounter == null)
1709        if (Configuration.errorOnAutoCreate())
1710          throw new Error("Attempt to auto-create Composition.encounter");
1711        else if (Configuration.doAutoCreate())
1712          this.encounter = new Reference(); // cc
1713      return this.encounter;
1714    }
1715
1716    public boolean hasEncounter() { 
1717      return this.encounter != null && !this.encounter.isEmpty();
1718    }
1719
1720    /**
1721     * @param value {@link #encounter} (Describes the clinical encounter or type of care this documentation is associated with.)
1722     */
1723    public Composition setEncounter(Reference value) { 
1724      this.encounter = value;
1725      return this;
1726    }
1727
1728    /**
1729     * @return {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
1730     */
1731    public DateTimeType getDateElement() { 
1732      if (this.date == null)
1733        if (Configuration.errorOnAutoCreate())
1734          throw new Error("Attempt to auto-create Composition.date");
1735        else if (Configuration.doAutoCreate())
1736          this.date = new DateTimeType(); // bb
1737      return this.date;
1738    }
1739
1740    public boolean hasDateElement() { 
1741      return this.date != null && !this.date.isEmpty();
1742    }
1743
1744    public boolean hasDate() { 
1745      return this.date != null && !this.date.isEmpty();
1746    }
1747
1748    /**
1749     * @param value {@link #date} (The composition editing time, when the composition was last logically changed by the author.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
1750     */
1751    public Composition setDateElement(DateTimeType value) { 
1752      this.date = value;
1753      return this;
1754    }
1755
1756    /**
1757     * @return The composition editing time, when the composition was last logically changed by the author.
1758     */
1759    public Date getDate() { 
1760      return this.date == null ? null : this.date.getValue();
1761    }
1762
1763    /**
1764     * @param value The composition editing time, when the composition was last logically changed by the author.
1765     */
1766    public Composition setDate(Date value) { 
1767        if (this.date == null)
1768          this.date = new DateTimeType();
1769        this.date.setValue(value);
1770      return this;
1771    }
1772
1773    /**
1774     * @return {@link #useContext} (The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.)
1775     */
1776    public List<UsageContext> getUseContext() { 
1777      if (this.useContext == null)
1778        this.useContext = new ArrayList<UsageContext>();
1779      return this.useContext;
1780    }
1781
1782    /**
1783     * @return Returns a reference to <code>this</code> for easy method chaining
1784     */
1785    public Composition setUseContext(List<UsageContext> theUseContext) { 
1786      this.useContext = theUseContext;
1787      return this;
1788    }
1789
1790    public boolean hasUseContext() { 
1791      if (this.useContext == null)
1792        return false;
1793      for (UsageContext item : this.useContext)
1794        if (!item.isEmpty())
1795          return true;
1796      return false;
1797    }
1798
1799    public UsageContext addUseContext() { //3
1800      UsageContext t = new UsageContext();
1801      if (this.useContext == null)
1802        this.useContext = new ArrayList<UsageContext>();
1803      this.useContext.add(t);
1804      return t;
1805    }
1806
1807    public Composition addUseContext(UsageContext t) { //3
1808      if (t == null)
1809        return this;
1810      if (this.useContext == null)
1811        this.useContext = new ArrayList<UsageContext>();
1812      this.useContext.add(t);
1813      return this;
1814    }
1815
1816    /**
1817     * @return The first repetition of repeating field {@link #useContext}, creating it if it does not already exist {3}
1818     */
1819    public UsageContext getUseContextFirstRep() { 
1820      if (getUseContext().isEmpty()) {
1821        addUseContext();
1822      }
1823      return getUseContext().get(0);
1824    }
1825
1826    /**
1827     * @return {@link #author} (Identifies who is responsible for the information in the composition, not necessarily who typed it in.)
1828     */
1829    public List<Reference> getAuthor() { 
1830      if (this.author == null)
1831        this.author = new ArrayList<Reference>();
1832      return this.author;
1833    }
1834
1835    /**
1836     * @return Returns a reference to <code>this</code> for easy method chaining
1837     */
1838    public Composition setAuthor(List<Reference> theAuthor) { 
1839      this.author = theAuthor;
1840      return this;
1841    }
1842
1843    public boolean hasAuthor() { 
1844      if (this.author == null)
1845        return false;
1846      for (Reference item : this.author)
1847        if (!item.isEmpty())
1848          return true;
1849      return false;
1850    }
1851
1852    public Reference addAuthor() { //3
1853      Reference t = new Reference();
1854      if (this.author == null)
1855        this.author = new ArrayList<Reference>();
1856      this.author.add(t);
1857      return t;
1858    }
1859
1860    public Composition addAuthor(Reference t) { //3
1861      if (t == null)
1862        return this;
1863      if (this.author == null)
1864        this.author = new ArrayList<Reference>();
1865      this.author.add(t);
1866      return this;
1867    }
1868
1869    /**
1870     * @return The first repetition of repeating field {@link #author}, creating it if it does not already exist {3}
1871     */
1872    public Reference getAuthorFirstRep() { 
1873      if (getAuthor().isEmpty()) {
1874        addAuthor();
1875      }
1876      return getAuthor().get(0);
1877    }
1878
1879    /**
1880     * @return {@link #name} (A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1881     */
1882    public StringType getNameElement() { 
1883      if (this.name == null)
1884        if (Configuration.errorOnAutoCreate())
1885          throw new Error("Attempt to auto-create Composition.name");
1886        else if (Configuration.doAutoCreate())
1887          this.name = new StringType(); // bb
1888      return this.name;
1889    }
1890
1891    public boolean hasNameElement() { 
1892      return this.name != null && !this.name.isEmpty();
1893    }
1894
1895    public boolean hasName() { 
1896      return this.name != null && !this.name.isEmpty();
1897    }
1898
1899    /**
1900     * @param value {@link #name} (A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
1901     */
1902    public Composition setNameElement(StringType value) { 
1903      this.name = value;
1904      return this;
1905    }
1906
1907    /**
1908     * @return A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
1909     */
1910    public String getName() { 
1911      return this.name == null ? null : this.name.getValue();
1912    }
1913
1914    /**
1915     * @param value A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.
1916     */
1917    public Composition setName(String value) { 
1918      if (Utilities.noString(value))
1919        this.name = null;
1920      else {
1921        if (this.name == null)
1922          this.name = new StringType();
1923        this.name.setValue(value);
1924      }
1925      return this;
1926    }
1927
1928    /**
1929     * @return {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1930     */
1931    public StringType getTitleElement() { 
1932      if (this.title == null)
1933        if (Configuration.errorOnAutoCreate())
1934          throw new Error("Attempt to auto-create Composition.title");
1935        else if (Configuration.doAutoCreate())
1936          this.title = new StringType(); // bb
1937      return this.title;
1938    }
1939
1940    public boolean hasTitleElement() { 
1941      return this.title != null && !this.title.isEmpty();
1942    }
1943
1944    public boolean hasTitle() { 
1945      return this.title != null && !this.title.isEmpty();
1946    }
1947
1948    /**
1949     * @param value {@link #title} (Official human-readable label for the composition.). This is the underlying object with id, value and extensions. The accessor "getTitle" gives direct access to the value
1950     */
1951    public Composition setTitleElement(StringType value) { 
1952      this.title = value;
1953      return this;
1954    }
1955
1956    /**
1957     * @return Official human-readable label for the composition.
1958     */
1959    public String getTitle() { 
1960      return this.title == null ? null : this.title.getValue();
1961    }
1962
1963    /**
1964     * @param value Official human-readable label for the composition.
1965     */
1966    public Composition setTitle(String value) { 
1967        if (this.title == null)
1968          this.title = new StringType();
1969        this.title.setValue(value);
1970      return this;
1971    }
1972
1973    /**
1974     * @return {@link #note} (For any additional notes.)
1975     */
1976    public List<Annotation> getNote() { 
1977      if (this.note == null)
1978        this.note = new ArrayList<Annotation>();
1979      return this.note;
1980    }
1981
1982    /**
1983     * @return Returns a reference to <code>this</code> for easy method chaining
1984     */
1985    public Composition setNote(List<Annotation> theNote) { 
1986      this.note = theNote;
1987      return this;
1988    }
1989
1990    public boolean hasNote() { 
1991      if (this.note == null)
1992        return false;
1993      for (Annotation item : this.note)
1994        if (!item.isEmpty())
1995          return true;
1996      return false;
1997    }
1998
1999    public Annotation addNote() { //3
2000      Annotation t = new Annotation();
2001      if (this.note == null)
2002        this.note = new ArrayList<Annotation>();
2003      this.note.add(t);
2004      return t;
2005    }
2006
2007    public Composition addNote(Annotation t) { //3
2008      if (t == null)
2009        return this;
2010      if (this.note == null)
2011        this.note = new ArrayList<Annotation>();
2012      this.note.add(t);
2013      return this;
2014    }
2015
2016    /**
2017     * @return The first repetition of repeating field {@link #note}, creating it if it does not already exist {3}
2018     */
2019    public Annotation getNoteFirstRep() { 
2020      if (getNote().isEmpty()) {
2021        addNote();
2022      }
2023      return getNote().get(0);
2024    }
2025
2026    /**
2027     * @return {@link #attester} (A participant who has attested to the accuracy of the composition/document.)
2028     */
2029    public List<CompositionAttesterComponent> getAttester() { 
2030      if (this.attester == null)
2031        this.attester = new ArrayList<CompositionAttesterComponent>();
2032      return this.attester;
2033    }
2034
2035    /**
2036     * @return Returns a reference to <code>this</code> for easy method chaining
2037     */
2038    public Composition setAttester(List<CompositionAttesterComponent> theAttester) { 
2039      this.attester = theAttester;
2040      return this;
2041    }
2042
2043    public boolean hasAttester() { 
2044      if (this.attester == null)
2045        return false;
2046      for (CompositionAttesterComponent item : this.attester)
2047        if (!item.isEmpty())
2048          return true;
2049      return false;
2050    }
2051
2052    public CompositionAttesterComponent addAttester() { //3
2053      CompositionAttesterComponent t = new CompositionAttesterComponent();
2054      if (this.attester == null)
2055        this.attester = new ArrayList<CompositionAttesterComponent>();
2056      this.attester.add(t);
2057      return t;
2058    }
2059
2060    public Composition addAttester(CompositionAttesterComponent t) { //3
2061      if (t == null)
2062        return this;
2063      if (this.attester == null)
2064        this.attester = new ArrayList<CompositionAttesterComponent>();
2065      this.attester.add(t);
2066      return this;
2067    }
2068
2069    /**
2070     * @return The first repetition of repeating field {@link #attester}, creating it if it does not already exist {3}
2071     */
2072    public CompositionAttesterComponent getAttesterFirstRep() { 
2073      if (getAttester().isEmpty()) {
2074        addAttester();
2075      }
2076      return getAttester().get(0);
2077    }
2078
2079    /**
2080     * @return {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.)
2081     */
2082    public Reference getCustodian() { 
2083      if (this.custodian == null)
2084        if (Configuration.errorOnAutoCreate())
2085          throw new Error("Attempt to auto-create Composition.custodian");
2086        else if (Configuration.doAutoCreate())
2087          this.custodian = new Reference(); // cc
2088      return this.custodian;
2089    }
2090
2091    public boolean hasCustodian() { 
2092      return this.custodian != null && !this.custodian.isEmpty();
2093    }
2094
2095    /**
2096     * @param value {@link #custodian} (Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.)
2097     */
2098    public Composition setCustodian(Reference value) { 
2099      this.custodian = value;
2100      return this;
2101    }
2102
2103    /**
2104     * @return {@link #relatesTo} (Relationships that this composition has with other compositions or documents that already exist.)
2105     */
2106    public List<RelatedArtifact> getRelatesTo() { 
2107      if (this.relatesTo == null)
2108        this.relatesTo = new ArrayList<RelatedArtifact>();
2109      return this.relatesTo;
2110    }
2111
2112    /**
2113     * @return Returns a reference to <code>this</code> for easy method chaining
2114     */
2115    public Composition setRelatesTo(List<RelatedArtifact> theRelatesTo) { 
2116      this.relatesTo = theRelatesTo;
2117      return this;
2118    }
2119
2120    public boolean hasRelatesTo() { 
2121      if (this.relatesTo == null)
2122        return false;
2123      for (RelatedArtifact item : this.relatesTo)
2124        if (!item.isEmpty())
2125          return true;
2126      return false;
2127    }
2128
2129    public RelatedArtifact addRelatesTo() { //3
2130      RelatedArtifact t = new RelatedArtifact();
2131      if (this.relatesTo == null)
2132        this.relatesTo = new ArrayList<RelatedArtifact>();
2133      this.relatesTo.add(t);
2134      return t;
2135    }
2136
2137    public Composition addRelatesTo(RelatedArtifact t) { //3
2138      if (t == null)
2139        return this;
2140      if (this.relatesTo == null)
2141        this.relatesTo = new ArrayList<RelatedArtifact>();
2142      this.relatesTo.add(t);
2143      return this;
2144    }
2145
2146    /**
2147     * @return The first repetition of repeating field {@link #relatesTo}, creating it if it does not already exist {3}
2148     */
2149    public RelatedArtifact getRelatesToFirstRep() { 
2150      if (getRelatesTo().isEmpty()) {
2151        addRelatesTo();
2152      }
2153      return getRelatesTo().get(0);
2154    }
2155
2156    /**
2157     * @return {@link #event} (The clinical service, such as a colonoscopy or an appendectomy, being documented.)
2158     */
2159    public List<CompositionEventComponent> getEvent() { 
2160      if (this.event == null)
2161        this.event = new ArrayList<CompositionEventComponent>();
2162      return this.event;
2163    }
2164
2165    /**
2166     * @return Returns a reference to <code>this</code> for easy method chaining
2167     */
2168    public Composition setEvent(List<CompositionEventComponent> theEvent) { 
2169      this.event = theEvent;
2170      return this;
2171    }
2172
2173    public boolean hasEvent() { 
2174      if (this.event == null)
2175        return false;
2176      for (CompositionEventComponent item : this.event)
2177        if (!item.isEmpty())
2178          return true;
2179      return false;
2180    }
2181
2182    public CompositionEventComponent addEvent() { //3
2183      CompositionEventComponent t = new CompositionEventComponent();
2184      if (this.event == null)
2185        this.event = new ArrayList<CompositionEventComponent>();
2186      this.event.add(t);
2187      return t;
2188    }
2189
2190    public Composition addEvent(CompositionEventComponent t) { //3
2191      if (t == null)
2192        return this;
2193      if (this.event == null)
2194        this.event = new ArrayList<CompositionEventComponent>();
2195      this.event.add(t);
2196      return this;
2197    }
2198
2199    /**
2200     * @return The first repetition of repeating field {@link #event}, creating it if it does not already exist {3}
2201     */
2202    public CompositionEventComponent getEventFirstRep() { 
2203      if (getEvent().isEmpty()) {
2204        addEvent();
2205      }
2206      return getEvent().get(0);
2207    }
2208
2209    /**
2210     * @return {@link #section} (The root of the sections that make up the composition.)
2211     */
2212    public List<SectionComponent> getSection() { 
2213      if (this.section == null)
2214        this.section = new ArrayList<SectionComponent>();
2215      return this.section;
2216    }
2217
2218    /**
2219     * @return Returns a reference to <code>this</code> for easy method chaining
2220     */
2221    public Composition setSection(List<SectionComponent> theSection) { 
2222      this.section = theSection;
2223      return this;
2224    }
2225
2226    public boolean hasSection() { 
2227      if (this.section == null)
2228        return false;
2229      for (SectionComponent item : this.section)
2230        if (!item.isEmpty())
2231          return true;
2232      return false;
2233    }
2234
2235    public SectionComponent addSection() { //3
2236      SectionComponent t = new SectionComponent();
2237      if (this.section == null)
2238        this.section = new ArrayList<SectionComponent>();
2239      this.section.add(t);
2240      return t;
2241    }
2242
2243    public Composition addSection(SectionComponent t) { //3
2244      if (t == null)
2245        return this;
2246      if (this.section == null)
2247        this.section = new ArrayList<SectionComponent>();
2248      this.section.add(t);
2249      return this;
2250    }
2251
2252    /**
2253     * @return The first repetition of repeating field {@link #section}, creating it if it does not already exist {3}
2254     */
2255    public SectionComponent getSectionFirstRep() { 
2256      if (getSection().isEmpty()) {
2257        addSection();
2258      }
2259      return getSection().get(0);
2260    }
2261
2262      protected void listChildren(List<Property> children) {
2263        super.listChildren(children);
2264        children.add(new Property("url", "uri", "An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.", 0, 1, url));
2265        children.add(new Property("identifier", "Identifier", "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.", 0, java.lang.Integer.MAX_VALUE, identifier));
2266        children.add(new Property("version", "string", "An explicitly assigned identifer of a variation of the content in the Composition.", 0, 1, version));
2267        children.add(new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, 1, status));
2268        children.add(new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, 1, type));
2269        children.add(new Property("category", "CodeableConcept", "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, category));
2270        children.add(new Property("subject", "Reference(Any)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject));
2271        children.add(new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, 1, encounter));
2272        children.add(new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, 1, date));
2273        children.add(new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.", 0, java.lang.Integer.MAX_VALUE, useContext));
2274        children.add(new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in the composition, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author));
2275        children.add(new Property("name", "string", "A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name));
2276        children.add(new Property("title", "string", "Official human-readable label for the composition.", 0, 1, title));
2277        children.add(new Property("note", "Annotation", "For any additional notes.", 0, java.lang.Integer.MAX_VALUE, note));
2278        children.add(new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester));
2279        children.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, 1, custodian));
2280        children.add(new Property("relatesTo", "RelatedArtifact", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo));
2281        children.add(new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event));
2282        children.add(new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section));
2283      }
2284
2285      @Override
2286      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
2287        switch (_hash) {
2288        case 116079: /*url*/  return new Property("url", "uri", "An absolute URI that is used to identify this Composition when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this Composition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the Composition is stored on different servers.", 0, 1, url);
2289        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.", 0, java.lang.Integer.MAX_VALUE, identifier);
2290        case 351608024: /*version*/  return new Property("version", "string", "An explicitly assigned identifer of a variation of the content in the Composition.", 0, 1, version);
2291        case -892481550: /*status*/  return new Property("status", "code", "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.", 0, 1, status);
2292        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.", 0, 1, type);
2293        case 50511102: /*category*/  return new Property("category", "CodeableConcept", "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, category);
2294        case -1867885268: /*subject*/  return new Property("subject", "Reference(Any)", "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject);
2295        case 1524132147: /*encounter*/  return new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care this documentation is associated with.", 0, 1, encounter);
2296        case 3076014: /*date*/  return new Property("date", "dateTime", "The composition editing time, when the composition was last logically changed by the author.", 0, 1, date);
2297        case -669707736: /*useContext*/  return new Property("useContext", "UsageContext", "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate Composition instances.", 0, java.lang.Integer.MAX_VALUE, useContext);
2298        case -1406328437: /*author*/  return new Property("author", "Reference(Practitioner|PractitionerRole|Device|Patient|RelatedPerson|Organization)", "Identifies who is responsible for the information in the composition, not necessarily who typed it in.", 0, java.lang.Integer.MAX_VALUE, author);
2299        case 3373707: /*name*/  return new Property("name", "string", "A natural language name identifying the composition. This name should be usable as an identifier for the module by machine processing applications such as code generation.", 0, 1, name);
2300        case 110371416: /*title*/  return new Property("title", "string", "Official human-readable label for the composition.", 0, 1, title);
2301        case 3387378: /*note*/  return new Property("note", "Annotation", "For any additional notes.", 0, java.lang.Integer.MAX_VALUE, note);
2302        case 542920370: /*attester*/  return new Property("attester", "", "A participant who has attested to the accuracy of the composition/document.", 0, java.lang.Integer.MAX_VALUE, attester);
2303        case 1611297262: /*custodian*/  return new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.", 0, 1, custodian);
2304        case -7765931: /*relatesTo*/  return new Property("relatesTo", "RelatedArtifact", "Relationships that this composition has with other compositions or documents that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo);
2305        case 96891546: /*event*/  return new Property("event", "", "The clinical service, such as a colonoscopy or an appendectomy, being documented.", 0, java.lang.Integer.MAX_VALUE, event);
2306        case 1970241253: /*section*/  return new Property("section", "", "The root of the sections that make up the composition.", 0, java.lang.Integer.MAX_VALUE, section);
2307        default: return super.getNamedProperty(_hash, _name, _checkValid);
2308        }
2309
2310      }
2311
2312      @Override
2313      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
2314        switch (hash) {
2315        case 116079: /*url*/ return this.url == null ? new Base[0] : new Base[] {this.url}; // UriType
2316        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
2317        case 351608024: /*version*/ return this.version == null ? new Base[0] : new Base[] {this.version}; // StringType
2318        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<CompositionStatus>
2319        case 3575610: /*type*/ return this.type == null ? new Base[0] : new Base[] {this.type}; // CodeableConcept
2320        case 50511102: /*category*/ return this.category == null ? new Base[0] : this.category.toArray(new Base[this.category.size()]); // CodeableConcept
2321        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : this.subject.toArray(new Base[this.subject.size()]); // Reference
2322        case 1524132147: /*encounter*/ return this.encounter == null ? new Base[0] : new Base[] {this.encounter}; // Reference
2323        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
2324        case -669707736: /*useContext*/ return this.useContext == null ? new Base[0] : this.useContext.toArray(new Base[this.useContext.size()]); // UsageContext
2325        case -1406328437: /*author*/ return this.author == null ? new Base[0] : this.author.toArray(new Base[this.author.size()]); // Reference
2326        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
2327        case 110371416: /*title*/ return this.title == null ? new Base[0] : new Base[] {this.title}; // StringType
2328        case 3387378: /*note*/ return this.note == null ? new Base[0] : this.note.toArray(new Base[this.note.size()]); // Annotation
2329        case 542920370: /*attester*/ return this.attester == null ? new Base[0] : this.attester.toArray(new Base[this.attester.size()]); // CompositionAttesterComponent
2330        case 1611297262: /*custodian*/ return this.custodian == null ? new Base[0] : new Base[] {this.custodian}; // Reference
2331        case -7765931: /*relatesTo*/ return this.relatesTo == null ? new Base[0] : this.relatesTo.toArray(new Base[this.relatesTo.size()]); // RelatedArtifact
2332        case 96891546: /*event*/ return this.event == null ? new Base[0] : this.event.toArray(new Base[this.event.size()]); // CompositionEventComponent
2333        case 1970241253: /*section*/ return this.section == null ? new Base[0] : this.section.toArray(new Base[this.section.size()]); // SectionComponent
2334        default: return super.getProperty(hash, name, checkValid);
2335        }
2336
2337      }
2338
2339      @Override
2340      public Base setProperty(int hash, String name, Base value) throws FHIRException {
2341        switch (hash) {
2342        case 116079: // url
2343          this.url = TypeConvertor.castToUri(value); // UriType
2344          return value;
2345        case -1618432855: // identifier
2346          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
2347          return value;
2348        case 351608024: // version
2349          this.version = TypeConvertor.castToString(value); // StringType
2350          return value;
2351        case -892481550: // status
2352          value = new CompositionStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
2353          this.status = (Enumeration) value; // Enumeration<CompositionStatus>
2354          return value;
2355        case 3575610: // type
2356          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2357          return value;
2358        case 50511102: // category
2359          this.getCategory().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
2360          return value;
2361        case -1867885268: // subject
2362          this.getSubject().add(TypeConvertor.castToReference(value)); // Reference
2363          return value;
2364        case 1524132147: // encounter
2365          this.encounter = TypeConvertor.castToReference(value); // Reference
2366          return value;
2367        case 3076014: // date
2368          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
2369          return value;
2370        case -669707736: // useContext
2371          this.getUseContext().add(TypeConvertor.castToUsageContext(value)); // UsageContext
2372          return value;
2373        case -1406328437: // author
2374          this.getAuthor().add(TypeConvertor.castToReference(value)); // Reference
2375          return value;
2376        case 3373707: // name
2377          this.name = TypeConvertor.castToString(value); // StringType
2378          return value;
2379        case 110371416: // title
2380          this.title = TypeConvertor.castToString(value); // StringType
2381          return value;
2382        case 3387378: // note
2383          this.getNote().add(TypeConvertor.castToAnnotation(value)); // Annotation
2384          return value;
2385        case 542920370: // attester
2386          this.getAttester().add((CompositionAttesterComponent) value); // CompositionAttesterComponent
2387          return value;
2388        case 1611297262: // custodian
2389          this.custodian = TypeConvertor.castToReference(value); // Reference
2390          return value;
2391        case -7765931: // relatesTo
2392          this.getRelatesTo().add(TypeConvertor.castToRelatedArtifact(value)); // RelatedArtifact
2393          return value;
2394        case 96891546: // event
2395          this.getEvent().add((CompositionEventComponent) value); // CompositionEventComponent
2396          return value;
2397        case 1970241253: // section
2398          this.getSection().add((SectionComponent) value); // SectionComponent
2399          return value;
2400        default: return super.setProperty(hash, name, value);
2401        }
2402
2403      }
2404
2405      @Override
2406      public Base setProperty(String name, Base value) throws FHIRException {
2407        if (name.equals("url")) {
2408          this.url = TypeConvertor.castToUri(value); // UriType
2409        } else if (name.equals("identifier")) {
2410          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
2411        } else if (name.equals("version")) {
2412          this.version = TypeConvertor.castToString(value); // StringType
2413        } else if (name.equals("status")) {
2414          value = new CompositionStatusEnumFactory().fromType(TypeConvertor.castToCode(value));
2415          this.status = (Enumeration) value; // Enumeration<CompositionStatus>
2416        } else if (name.equals("type")) {
2417          this.type = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
2418        } else if (name.equals("category")) {
2419          this.getCategory().add(TypeConvertor.castToCodeableConcept(value));
2420        } else if (name.equals("subject")) {
2421          this.getSubject().add(TypeConvertor.castToReference(value));
2422        } else if (name.equals("encounter")) {
2423          this.encounter = TypeConvertor.castToReference(value); // Reference
2424        } else if (name.equals("date")) {
2425          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
2426        } else if (name.equals("useContext")) {
2427          this.getUseContext().add(TypeConvertor.castToUsageContext(value));
2428        } else if (name.equals("author")) {
2429          this.getAuthor().add(TypeConvertor.castToReference(value));
2430        } else if (name.equals("name")) {
2431          this.name = TypeConvertor.castToString(value); // StringType
2432        } else if (name.equals("title")) {
2433          this.title = TypeConvertor.castToString(value); // StringType
2434        } else if (name.equals("note")) {
2435          this.getNote().add(TypeConvertor.castToAnnotation(value));
2436        } else if (name.equals("attester")) {
2437          this.getAttester().add((CompositionAttesterComponent) value);
2438        } else if (name.equals("custodian")) {
2439          this.custodian = TypeConvertor.castToReference(value); // Reference
2440        } else if (name.equals("relatesTo")) {
2441          this.getRelatesTo().add(TypeConvertor.castToRelatedArtifact(value));
2442        } else if (name.equals("event")) {
2443          this.getEvent().add((CompositionEventComponent) value);
2444        } else if (name.equals("section")) {
2445          this.getSection().add((SectionComponent) value);
2446        } else
2447          return super.setProperty(name, value);
2448        return value;
2449      }
2450
2451      @Override
2452      public Base makeProperty(int hash, String name) throws FHIRException {
2453        switch (hash) {
2454        case 116079:  return getUrlElement();
2455        case -1618432855:  return addIdentifier(); 
2456        case 351608024:  return getVersionElement();
2457        case -892481550:  return getStatusElement();
2458        case 3575610:  return getType();
2459        case 50511102:  return addCategory(); 
2460        case -1867885268:  return addSubject(); 
2461        case 1524132147:  return getEncounter();
2462        case 3076014:  return getDateElement();
2463        case -669707736:  return addUseContext(); 
2464        case -1406328437:  return addAuthor(); 
2465        case 3373707:  return getNameElement();
2466        case 110371416:  return getTitleElement();
2467        case 3387378:  return addNote(); 
2468        case 542920370:  return addAttester(); 
2469        case 1611297262:  return getCustodian();
2470        case -7765931:  return addRelatesTo(); 
2471        case 96891546:  return addEvent(); 
2472        case 1970241253:  return addSection(); 
2473        default: return super.makeProperty(hash, name);
2474        }
2475
2476      }
2477
2478      @Override
2479      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
2480        switch (hash) {
2481        case 116079: /*url*/ return new String[] {"uri"};
2482        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
2483        case 351608024: /*version*/ return new String[] {"string"};
2484        case -892481550: /*status*/ return new String[] {"code"};
2485        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
2486        case 50511102: /*category*/ return new String[] {"CodeableConcept"};
2487        case -1867885268: /*subject*/ return new String[] {"Reference"};
2488        case 1524132147: /*encounter*/ return new String[] {"Reference"};
2489        case 3076014: /*date*/ return new String[] {"dateTime"};
2490        case -669707736: /*useContext*/ return new String[] {"UsageContext"};
2491        case -1406328437: /*author*/ return new String[] {"Reference"};
2492        case 3373707: /*name*/ return new String[] {"string"};
2493        case 110371416: /*title*/ return new String[] {"string"};
2494        case 3387378: /*note*/ return new String[] {"Annotation"};
2495        case 542920370: /*attester*/ return new String[] {};
2496        case 1611297262: /*custodian*/ return new String[] {"Reference"};
2497        case -7765931: /*relatesTo*/ return new String[] {"RelatedArtifact"};
2498        case 96891546: /*event*/ return new String[] {};
2499        case 1970241253: /*section*/ return new String[] {};
2500        default: return super.getTypesForProperty(hash, name);
2501        }
2502
2503      }
2504
2505      @Override
2506      public Base addChild(String name) throws FHIRException {
2507        if (name.equals("url")) {
2508          throw new FHIRException("Cannot call addChild on a singleton property Composition.url");
2509        }
2510        else if (name.equals("identifier")) {
2511          return addIdentifier();
2512        }
2513        else if (name.equals("version")) {
2514          throw new FHIRException("Cannot call addChild on a singleton property Composition.version");
2515        }
2516        else if (name.equals("status")) {
2517          throw new FHIRException("Cannot call addChild on a singleton property Composition.status");
2518        }
2519        else if (name.equals("type")) {
2520          this.type = new CodeableConcept();
2521          return this.type;
2522        }
2523        else if (name.equals("category")) {
2524          return addCategory();
2525        }
2526        else if (name.equals("subject")) {
2527          return addSubject();
2528        }
2529        else if (name.equals("encounter")) {
2530          this.encounter = new Reference();
2531          return this.encounter;
2532        }
2533        else if (name.equals("date")) {
2534          throw new FHIRException("Cannot call addChild on a singleton property Composition.date");
2535        }
2536        else if (name.equals("useContext")) {
2537          return addUseContext();
2538        }
2539        else if (name.equals("author")) {
2540          return addAuthor();
2541        }
2542        else if (name.equals("name")) {
2543          throw new FHIRException("Cannot call addChild on a singleton property Composition.name");
2544        }
2545        else if (name.equals("title")) {
2546          throw new FHIRException("Cannot call addChild on a singleton property Composition.title");
2547        }
2548        else if (name.equals("note")) {
2549          return addNote();
2550        }
2551        else if (name.equals("attester")) {
2552          return addAttester();
2553        }
2554        else if (name.equals("custodian")) {
2555          this.custodian = new Reference();
2556          return this.custodian;
2557        }
2558        else if (name.equals("relatesTo")) {
2559          return addRelatesTo();
2560        }
2561        else if (name.equals("event")) {
2562          return addEvent();
2563        }
2564        else if (name.equals("section")) {
2565          return addSection();
2566        }
2567        else
2568          return super.addChild(name);
2569      }
2570
2571  public String fhirType() {
2572    return "Composition";
2573
2574  }
2575
2576      public Composition copy() {
2577        Composition dst = new Composition();
2578        copyValues(dst);
2579        return dst;
2580      }
2581
2582      public void copyValues(Composition dst) {
2583        super.copyValues(dst);
2584        dst.url = url == null ? null : url.copy();
2585        if (identifier != null) {
2586          dst.identifier = new ArrayList<Identifier>();
2587          for (Identifier i : identifier)
2588            dst.identifier.add(i.copy());
2589        };
2590        dst.version = version == null ? null : version.copy();
2591        dst.status = status == null ? null : status.copy();
2592        dst.type = type == null ? null : type.copy();
2593        if (category != null) {
2594          dst.category = new ArrayList<CodeableConcept>();
2595          for (CodeableConcept i : category)
2596            dst.category.add(i.copy());
2597        };
2598        if (subject != null) {
2599          dst.subject = new ArrayList<Reference>();
2600          for (Reference i : subject)
2601            dst.subject.add(i.copy());
2602        };
2603        dst.encounter = encounter == null ? null : encounter.copy();
2604        dst.date = date == null ? null : date.copy();
2605        if (useContext != null) {
2606          dst.useContext = new ArrayList<UsageContext>();
2607          for (UsageContext i : useContext)
2608            dst.useContext.add(i.copy());
2609        };
2610        if (author != null) {
2611          dst.author = new ArrayList<Reference>();
2612          for (Reference i : author)
2613            dst.author.add(i.copy());
2614        };
2615        dst.name = name == null ? null : name.copy();
2616        dst.title = title == null ? null : title.copy();
2617        if (note != null) {
2618          dst.note = new ArrayList<Annotation>();
2619          for (Annotation i : note)
2620            dst.note.add(i.copy());
2621        };
2622        if (attester != null) {
2623          dst.attester = new ArrayList<CompositionAttesterComponent>();
2624          for (CompositionAttesterComponent i : attester)
2625            dst.attester.add(i.copy());
2626        };
2627        dst.custodian = custodian == null ? null : custodian.copy();
2628        if (relatesTo != null) {
2629          dst.relatesTo = new ArrayList<RelatedArtifact>();
2630          for (RelatedArtifact i : relatesTo)
2631            dst.relatesTo.add(i.copy());
2632        };
2633        if (event != null) {
2634          dst.event = new ArrayList<CompositionEventComponent>();
2635          for (CompositionEventComponent i : event)
2636            dst.event.add(i.copy());
2637        };
2638        if (section != null) {
2639          dst.section = new ArrayList<SectionComponent>();
2640          for (SectionComponent i : section)
2641            dst.section.add(i.copy());
2642        };
2643      }
2644
2645      protected Composition typedCopy() {
2646        return copy();
2647      }
2648
2649      @Override
2650      public boolean equalsDeep(Base other_) {
2651        if (!super.equalsDeep(other_))
2652          return false;
2653        if (!(other_ instanceof Composition))
2654          return false;
2655        Composition o = (Composition) other_;
2656        return compareDeep(url, o.url, true) && compareDeep(identifier, o.identifier, true) && compareDeep(version, o.version, true)
2657           && compareDeep(status, o.status, true) && compareDeep(type, o.type, true) && compareDeep(category, o.category, true)
2658           && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true) && compareDeep(date, o.date, true)
2659           && compareDeep(useContext, o.useContext, true) && compareDeep(author, o.author, true) && compareDeep(name, o.name, true)
2660           && compareDeep(title, o.title, true) && compareDeep(note, o.note, true) && compareDeep(attester, o.attester, true)
2661           && compareDeep(custodian, o.custodian, true) && compareDeep(relatesTo, o.relatesTo, true) && compareDeep(event, o.event, true)
2662           && compareDeep(section, o.section, true);
2663      }
2664
2665      @Override
2666      public boolean equalsShallow(Base other_) {
2667        if (!super.equalsShallow(other_))
2668          return false;
2669        if (!(other_ instanceof Composition))
2670          return false;
2671        Composition o = (Composition) other_;
2672        return compareValues(url, o.url, true) && compareValues(version, o.version, true) && compareValues(status, o.status, true)
2673           && compareValues(date, o.date, true) && compareValues(name, o.name, true) && compareValues(title, o.title, true)
2674          ;
2675      }
2676
2677      public boolean isEmpty() {
2678        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(url, identifier, version
2679          , status, type, category, subject, encounter, date, useContext, author, name
2680          , title, note, attester, custodian, relatesTo, event, section);
2681      }
2682
2683  @Override
2684  public ResourceType getResourceType() {
2685    return ResourceType.Composition;
2686   }
2687
2688 /**
2689   * Search parameter: <b>attester</b>
2690   * <p>
2691   * Description: <b>Who attested the composition</b><br>
2692   * Type: <b>reference</b><br>
2693   * Path: <b>Composition.attester.party</b><br>
2694   * </p>
2695   */
2696  @SearchParamDefinition(name="attester", path="Composition.attester.party", description="Who attested the composition", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
2697  public static final String SP_ATTESTER = "attester";
2698 /**
2699   * <b>Fluent Client</b> search parameter constant for <b>attester</b>
2700   * <p>
2701   * Description: <b>Who attested the composition</b><br>
2702   * Type: <b>reference</b><br>
2703   * Path: <b>Composition.attester.party</b><br>
2704   * </p>
2705   */
2706  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ATTESTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ATTESTER);
2707
2708/**
2709   * Constant for fluent queries to be used to add include statements. Specifies
2710   * the path value of "<b>Composition:attester</b>".
2711   */
2712  public static final ca.uhn.fhir.model.api.Include INCLUDE_ATTESTER = new ca.uhn.fhir.model.api.Include("Composition:attester").toLocked();
2713
2714 /**
2715   * Search parameter: <b>author</b>
2716   * <p>
2717   * Description: <b>Who and/or what authored the composition</b><br>
2718   * Type: <b>reference</b><br>
2719   * Path: <b>Composition.author</b><br>
2720   * </p>
2721   */
2722  @SearchParamDefinition(name="author", path="Composition.author", description="Who and/or what authored the composition", 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 Patient"), @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 } )
2723  public static final String SP_AUTHOR = "author";
2724 /**
2725   * <b>Fluent Client</b> search parameter constant for <b>author</b>
2726   * <p>
2727   * Description: <b>Who and/or what authored the composition</b><br>
2728   * Type: <b>reference</b><br>
2729   * Path: <b>Composition.author</b><br>
2730   * </p>
2731   */
2732  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
2733
2734/**
2735   * Constant for fluent queries to be used to add include statements. Specifies
2736   * the path value of "<b>Composition:author</b>".
2737   */
2738  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("Composition:author").toLocked();
2739
2740 /**
2741   * Search parameter: <b>category</b>
2742   * <p>
2743   * Description: <b>Categorization of Composition</b><br>
2744   * Type: <b>token</b><br>
2745   * Path: <b>Composition.category</b><br>
2746   * </p>
2747   */
2748  @SearchParamDefinition(name="category", path="Composition.category", description="Categorization of Composition", type="token" )
2749  public static final String SP_CATEGORY = "category";
2750 /**
2751   * <b>Fluent Client</b> search parameter constant for <b>category</b>
2752   * <p>
2753   * Description: <b>Categorization of Composition</b><br>
2754   * Type: <b>token</b><br>
2755   * Path: <b>Composition.category</b><br>
2756   * </p>
2757   */
2758  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CATEGORY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CATEGORY);
2759
2760 /**
2761   * Search parameter: <b>entry</b>
2762   * <p>
2763   * Description: <b>A reference to data that supports this section</b><br>
2764   * Type: <b>reference</b><br>
2765   * Path: <b>Composition.section.entry</b><br>
2766   * </p>
2767   */
2768  @SearchParamDefinition(name="entry", path="Composition.section.entry", description="A reference to data that supports this section", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2769  public static final String SP_ENTRY = "entry";
2770 /**
2771   * <b>Fluent Client</b> search parameter constant for <b>entry</b>
2772   * <p>
2773   * Description: <b>A reference to data that supports this section</b><br>
2774   * Type: <b>reference</b><br>
2775   * Path: <b>Composition.section.entry</b><br>
2776   * </p>
2777   */
2778  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENTRY = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENTRY);
2779
2780/**
2781   * Constant for fluent queries to be used to add include statements. Specifies
2782   * the path value of "<b>Composition:entry</b>".
2783   */
2784  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENTRY = new ca.uhn.fhir.model.api.Include("Composition:entry").toLocked();
2785
2786 /**
2787   * Search parameter: <b>event-code</b>
2788   * <p>
2789   * Description: <b>Main clinical acts documented as codes</b><br>
2790   * Type: <b>token</b><br>
2791   * Path: <b>Composition.event.detail.concept</b><br>
2792   * </p>
2793   */
2794  @SearchParamDefinition(name="event-code", path="Composition.event.detail.concept", description="Main clinical acts documented as codes", type="token" )
2795  public static final String SP_EVENT_CODE = "event-code";
2796 /**
2797   * <b>Fluent Client</b> search parameter constant for <b>event-code</b>
2798   * <p>
2799   * Description: <b>Main clinical acts documented as codes</b><br>
2800   * Type: <b>token</b><br>
2801   * Path: <b>Composition.event.detail.concept</b><br>
2802   * </p>
2803   */
2804  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EVENT_CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EVENT_CODE);
2805
2806 /**
2807   * Search parameter: <b>event-reference</b>
2808   * <p>
2809   * Description: <b>Main clinical acts documented as references</b><br>
2810   * Type: <b>reference</b><br>
2811   * Path: <b>Composition.event.detail.reference</b><br>
2812   * </p>
2813   */
2814  @SearchParamDefinition(name="event-reference", path="Composition.event.detail.reference", description="Main clinical acts documented as references", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2815  public static final String SP_EVENT_REFERENCE = "event-reference";
2816 /**
2817   * <b>Fluent Client</b> search parameter constant for <b>event-reference</b>
2818   * <p>
2819   * Description: <b>Main clinical acts documented as references</b><br>
2820   * Type: <b>reference</b><br>
2821   * Path: <b>Composition.event.detail.reference</b><br>
2822   * </p>
2823   */
2824  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam EVENT_REFERENCE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_EVENT_REFERENCE);
2825
2826/**
2827   * Constant for fluent queries to be used to add include statements. Specifies
2828   * the path value of "<b>Composition:event-reference</b>".
2829   */
2830  public static final ca.uhn.fhir.model.api.Include INCLUDE_EVENT_REFERENCE = new ca.uhn.fhir.model.api.Include("Composition:event-reference").toLocked();
2831
2832 /**
2833   * Search parameter: <b>period</b>
2834   * <p>
2835   * Description: <b>The period covered by the documentation</b><br>
2836   * Type: <b>date</b><br>
2837   * Path: <b>Composition.event.period</b><br>
2838   * </p>
2839   */
2840  @SearchParamDefinition(name="period", path="Composition.event.period", description="The period covered by the documentation", type="date" )
2841  public static final String SP_PERIOD = "period";
2842 /**
2843   * <b>Fluent Client</b> search parameter constant for <b>period</b>
2844   * <p>
2845   * Description: <b>The period covered by the documentation</b><br>
2846   * Type: <b>date</b><br>
2847   * Path: <b>Composition.event.period</b><br>
2848   * </p>
2849   */
2850  public static final ca.uhn.fhir.rest.gclient.DateClientParam PERIOD = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_PERIOD);
2851
2852 /**
2853   * Search parameter: <b>related</b>
2854   * <p>
2855   * Description: <b>Target of the relationship</b><br>
2856   * Type: <b>reference</b><br>
2857   * Path: <b>Composition.relatesTo.resourceReference</b><br>
2858   * </p>
2859   */
2860  @SearchParamDefinition(name="related", path="Composition.relatesTo.resourceReference", description="Target of the relationship", type="reference", target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2861  public static final String SP_RELATED = "related";
2862 /**
2863   * <b>Fluent Client</b> search parameter constant for <b>related</b>
2864   * <p>
2865   * Description: <b>Target of the relationship</b><br>
2866   * Type: <b>reference</b><br>
2867   * Path: <b>Composition.relatesTo.resourceReference</b><br>
2868   * </p>
2869   */
2870  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RELATED = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RELATED);
2871
2872/**
2873   * Constant for fluent queries to be used to add include statements. Specifies
2874   * the path value of "<b>Composition:related</b>".
2875   */
2876  public static final ca.uhn.fhir.model.api.Include INCLUDE_RELATED = new ca.uhn.fhir.model.api.Include("Composition:related").toLocked();
2877
2878 /**
2879   * Search parameter: <b>section-code-text</b>
2880   * <p>
2881   * Description: <b>Search on the section narrative of the resource</b><br>
2882   * Type: <b>composite</b><br>
2883   * Path: <b>Composition.section</b><br>
2884   * </p>
2885   */
2886  @SearchParamDefinition(name="section-code-text", path="Composition.section", description="Search on the section narrative of the resource", type="composite", compositeOf={"section", "section-text"} )
2887  public static final String SP_SECTION_CODE_TEXT = "section-code-text";
2888 /**
2889   * <b>Fluent Client</b> search parameter constant for <b>section-code-text</b>
2890   * <p>
2891   * Description: <b>Search on the section narrative of the resource</b><br>
2892   * Type: <b>composite</b><br>
2893   * Path: <b>Composition.section</b><br>
2894   * </p>
2895   */
2896  public static final ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.SpecialClientParam> SECTION_CODE_TEXT = new ca.uhn.fhir.rest.gclient.CompositeClientParam<ca.uhn.fhir.rest.gclient.TokenClientParam, ca.uhn.fhir.rest.gclient.SpecialClientParam>(SP_SECTION_CODE_TEXT);
2897
2898 /**
2899   * Search parameter: <b>section-text</b>
2900   * <p>
2901   * Description: <b>Search on the section narrative of the resource</b><br>
2902   * Type: <b>special</b><br>
2903   * Path: <b>Composition.section.text | Composition.section.section.text</b><br>
2904   * </p>
2905   */
2906  @SearchParamDefinition(name="section-text", path="Composition.section.text | Composition.section.section.text", description="Search on the section narrative of the resource", type="special" )
2907  public static final String SP_SECTION_TEXT = "section-text";
2908 /**
2909   * <b>Fluent Client</b> search parameter constant for <b>section-text</b>
2910   * <p>
2911   * Description: <b>Search on the section narrative of the resource</b><br>
2912   * Type: <b>special</b><br>
2913   * Path: <b>Composition.section.text | Composition.section.section.text</b><br>
2914   * </p>
2915   */
2916  public static final ca.uhn.fhir.rest.gclient.SpecialClientParam SECTION_TEXT = new ca.uhn.fhir.rest.gclient.SpecialClientParam(SP_SECTION_TEXT);
2917
2918 /**
2919   * Search parameter: <b>section</b>
2920   * <p>
2921   * Description: <b>Classification of section (recommended)</b><br>
2922   * Type: <b>token</b><br>
2923   * Path: <b>Composition.section.code</b><br>
2924   * </p>
2925   */
2926  @SearchParamDefinition(name="section", path="Composition.section.code", description="Classification of section (recommended)", type="token" )
2927  public static final String SP_SECTION = "section";
2928 /**
2929   * <b>Fluent Client</b> search parameter constant for <b>section</b>
2930   * <p>
2931   * Description: <b>Classification of section (recommended)</b><br>
2932   * Type: <b>token</b><br>
2933   * Path: <b>Composition.section.code</b><br>
2934   * </p>
2935   */
2936  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SECTION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SECTION);
2937
2938 /**
2939   * Search parameter: <b>status</b>
2940   * <p>
2941   * Description: <b>preliminary | final | amended | entered-in-error</b><br>
2942   * Type: <b>token</b><br>
2943   * Path: <b>Composition.status</b><br>
2944   * </p>
2945   */
2946  @SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | amended | entered-in-error", type="token" )
2947  public static final String SP_STATUS = "status";
2948 /**
2949   * <b>Fluent Client</b> search parameter constant for <b>status</b>
2950   * <p>
2951   * Description: <b>preliminary | final | amended | entered-in-error</b><br>
2952   * Type: <b>token</b><br>
2953   * Path: <b>Composition.status</b><br>
2954   * </p>
2955   */
2956  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
2957
2958 /**
2959   * Search parameter: <b>subject</b>
2960   * <p>
2961   * Description: <b>Who and/or what the composition is about</b><br>
2962   * Type: <b>reference</b><br>
2963   * Path: <b>Composition.subject</b><br>
2964   * </p>
2965   */
2966  @SearchParamDefinition(name="subject", path="Composition.subject", description="Who and/or what the composition is about", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Account.class, ActivityDefinition.class, ActorDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BiologicallyDerivedProductDispense.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceAssociation.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentReference.class, Encounter.class, EncounterHistory.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, FormularyItem.class, GenomicStudy.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryItem.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationStatement.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Parameters.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestOrchestration.class, Requirements.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestPlan.class, TestReport.class, TestScript.class, Transport.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
2967  public static final String SP_SUBJECT = "subject";
2968 /**
2969   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
2970   * <p>
2971   * Description: <b>Who and/or what the composition is about</b><br>
2972   * Type: <b>reference</b><br>
2973   * Path: <b>Composition.subject</b><br>
2974   * </p>
2975   */
2976  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
2977
2978/**
2979   * Constant for fluent queries to be used to add include statements. Specifies
2980   * the path value of "<b>Composition:subject</b>".
2981   */
2982  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Composition:subject").toLocked();
2983
2984 /**
2985   * Search parameter: <b>title</b>
2986   * <p>
2987   * Description: <b>Human Readable name/title</b><br>
2988   * Type: <b>string</b><br>
2989   * Path: <b>Composition.title</b><br>
2990   * </p>
2991   */
2992  @SearchParamDefinition(name="title", path="Composition.title", description="Human Readable name/title", type="string" )
2993  public static final String SP_TITLE = "title";
2994 /**
2995   * <b>Fluent Client</b> search parameter constant for <b>title</b>
2996   * <p>
2997   * Description: <b>Human Readable name/title</b><br>
2998   * Type: <b>string</b><br>
2999   * Path: <b>Composition.title</b><br>
3000   * </p>
3001   */
3002  public static final ca.uhn.fhir.rest.gclient.StringClientParam TITLE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_TITLE);
3003
3004 /**
3005   * Search parameter: <b>url</b>
3006   * <p>
3007   * Description: <b>The uri that identifies the activity definition</b><br>
3008   * Type: <b>uri</b><br>
3009   * Path: <b>Composition.url</b><br>
3010   * </p>
3011   */
3012  @SearchParamDefinition(name="url", path="Composition.url", description="The uri that identifies the activity definition", type="uri" )
3013  public static final String SP_URL = "url";
3014 /**
3015   * <b>Fluent Client</b> search parameter constant for <b>url</b>
3016   * <p>
3017   * Description: <b>The uri that identifies the activity definition</b><br>
3018   * Type: <b>uri</b><br>
3019   * Path: <b>Composition.url</b><br>
3020   * </p>
3021   */
3022  public static final ca.uhn.fhir.rest.gclient.UriClientParam URL = new ca.uhn.fhir.rest.gclient.UriClientParam(SP_URL);
3023
3024 /**
3025   * Search parameter: <b>version</b>
3026   * <p>
3027   * Description: <b>The business version of the activity definition</b><br>
3028   * Type: <b>token</b><br>
3029   * Path: <b>Composition.version</b><br>
3030   * </p>
3031   */
3032  @SearchParamDefinition(name="version", path="Composition.version", description="The business version of the activity definition", type="token" )
3033  public static final String SP_VERSION = "version";
3034 /**
3035   * <b>Fluent Client</b> search parameter constant for <b>version</b>
3036   * <p>
3037   * Description: <b>The business version of the activity definition</b><br>
3038   * Type: <b>token</b><br>
3039   * Path: <b>Composition.version</b><br>
3040   * </p>
3041   */
3042  public static final ca.uhn.fhir.rest.gclient.TokenClientParam VERSION = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_VERSION);
3043
3044 /**
3045   * Search parameter: <b>date</b>
3046   * <p>
3047   * Description: <b>Multiple Resources: 
3048
3049* [AdverseEvent](adverseevent.html): When the event occurred
3050* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
3051* [Appointment](appointment.html): Appointment date/time.
3052* [AuditEvent](auditevent.html): Time when the event was recorded
3053* [CarePlan](careplan.html): Time period plan covers
3054* [CareTeam](careteam.html): A date within the coverage time period.
3055* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
3056* [Composition](composition.html): Composition editing time
3057* [Consent](consent.html): When consent was agreed to
3058* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
3059* [DocumentReference](documentreference.html): When this document reference was created
3060* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
3061* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
3062* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
3063* [Flag](flag.html): Time period when flag is active
3064* [Immunization](immunization.html): Vaccination  (non)-Administration Date
3065* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
3066* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
3067* [Invoice](invoice.html): Invoice date / posting date
3068* [List](list.html): When the list was prepared
3069* [MeasureReport](measurereport.html): The date of the measure report
3070* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
3071* [Observation](observation.html): Clinically relevant time/time-period for observation
3072* [Procedure](procedure.html): When the procedure occurred or is occurring
3073* [ResearchSubject](researchsubject.html): Start and end of participation
3074* [RiskAssessment](riskassessment.html): When was assessment made?
3075* [SupplyRequest](supplyrequest.html): When the request was made
3076</b><br>
3077   * Type: <b>date</b><br>
3078   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
3079   * </p>
3080   */
3081  @SearchParamDefinition(name="date", path="AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn", description="Multiple Resources: \r\n\r\n* [AdverseEvent](adverseevent.html): When the event occurred\r\n* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded\r\n* [Appointment](appointment.html): Appointment date/time.\r\n* [AuditEvent](auditevent.html): Time when the event was recorded\r\n* [CarePlan](careplan.html): Time period plan covers\r\n* [CareTeam](careteam.html): A date within the coverage time period.\r\n* [ClinicalImpression](clinicalimpression.html): When the assessment was documented\r\n* [Composition](composition.html): Composition editing time\r\n* [Consent](consent.html): When consent was agreed to\r\n* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report\r\n* [DocumentReference](documentreference.html): When this document reference was created\r\n* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted\r\n* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period\r\n* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated\r\n* [Flag](flag.html): Time period when flag is active\r\n* [Immunization](immunization.html): Vaccination  (non)-Administration Date\r\n* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated\r\n* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created\r\n* [Invoice](invoice.html): Invoice date / posting date\r\n* [List](list.html): When the list was prepared\r\n* [MeasureReport](measurereport.html): The date of the measure report\r\n* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication\r\n* [Observation](observation.html): Clinically relevant time/time-period for observation\r\n* [Procedure](procedure.html): When the procedure occurred or is occurring\r\n* [ResearchSubject](researchsubject.html): Start and end of participation\r\n* [RiskAssessment](riskassessment.html): When was assessment made?\r\n* [SupplyRequest](supplyrequest.html): When the request was made\r\n", type="date" )
3082  public static final String SP_DATE = "date";
3083 /**
3084   * <b>Fluent Client</b> search parameter constant for <b>date</b>
3085   * <p>
3086   * Description: <b>Multiple Resources: 
3087
3088* [AdverseEvent](adverseevent.html): When the event occurred
3089* [AllergyIntolerance](allergyintolerance.html): Date first version of the resource instance was recorded
3090* [Appointment](appointment.html): Appointment date/time.
3091* [AuditEvent](auditevent.html): Time when the event was recorded
3092* [CarePlan](careplan.html): Time period plan covers
3093* [CareTeam](careteam.html): A date within the coverage time period.
3094* [ClinicalImpression](clinicalimpression.html): When the assessment was documented
3095* [Composition](composition.html): Composition editing time
3096* [Consent](consent.html): When consent was agreed to
3097* [DiagnosticReport](diagnosticreport.html): The clinically relevant time of the report
3098* [DocumentReference](documentreference.html): When this document reference was created
3099* [Encounter](encounter.html): A date within the actualPeriod the Encounter lasted
3100* [EpisodeOfCare](episodeofcare.html): The provided date search value falls within the episode of care's period
3101* [FamilyMemberHistory](familymemberhistory.html): When history was recorded or last updated
3102* [Flag](flag.html): Time period when flag is active
3103* [Immunization](immunization.html): Vaccination  (non)-Administration Date
3104* [ImmunizationEvaluation](immunizationevaluation.html): Date the evaluation was generated
3105* [ImmunizationRecommendation](immunizationrecommendation.html): Date recommendation(s) created
3106* [Invoice](invoice.html): Invoice date / posting date
3107* [List](list.html): When the list was prepared
3108* [MeasureReport](measurereport.html): The date of the measure report
3109* [NutritionIntake](nutritionintake.html): Date when patient was taking (or not taking) the medication
3110* [Observation](observation.html): Clinically relevant time/time-period for observation
3111* [Procedure](procedure.html): When the procedure occurred or is occurring
3112* [ResearchSubject](researchsubject.html): Start and end of participation
3113* [RiskAssessment](riskassessment.html): When was assessment made?
3114* [SupplyRequest](supplyrequest.html): When the request was made
3115</b><br>
3116   * Type: <b>date</b><br>
3117   * Path: <b>AdverseEvent.occurrence.ofType(dateTime) | AdverseEvent.occurrence.ofType(Period) | AdverseEvent.occurrence.ofType(Timing) | AllergyIntolerance.recordedDate | (start | requestedPeriod.start).first() | AuditEvent.recorded | CarePlan.period | ClinicalImpression.date | Composition.date | Consent.date | DiagnosticReport.effective.ofType(dateTime) | DiagnosticReport.effective.ofType(Period) | DocumentReference.date | Encounter.actualPeriod | EpisodeOfCare.period | FamilyMemberHistory.date | Flag.period | (Immunization.occurrence.ofType(dateTime)) | ImmunizationEvaluation.date | ImmunizationRecommendation.date | Invoice.date | List.date | MeasureReport.date | NutritionIntake.occurrence.ofType(dateTime) | NutritionIntake.occurrence.ofType(Period) | Observation.effective.ofType(dateTime) | Observation.effective.ofType(Period) | Observation.effective.ofType(Timing) | Observation.effective.ofType(instant) | Procedure.occurrence.ofType(dateTime) | Procedure.occurrence.ofType(Period) | Procedure.occurrence.ofType(Timing) | ResearchSubject.period | (RiskAssessment.occurrence.ofType(dateTime)) | SupplyRequest.authoredOn</b><br>
3118   * </p>
3119   */
3120  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
3121
3122 /**
3123   * Search parameter: <b>encounter</b>
3124   * <p>
3125   * Description: <b>Multiple Resources: 
3126
3127* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
3128* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
3129* [ChargeItem](chargeitem.html): Encounter associated with event
3130* [Claim](claim.html): Encounters associated with a billed line item
3131* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
3132* [Communication](communication.html): The Encounter during which this Communication was created
3133* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
3134* [Composition](composition.html): Context of the Composition
3135* [Condition](condition.html): The Encounter during which this Condition was created
3136* [DeviceRequest](devicerequest.html): Encounter during which request was created
3137* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
3138* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
3139* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
3140* [Flag](flag.html): Alert relevant during encounter
3141* [ImagingStudy](imagingstudy.html): The context of the study
3142* [List](list.html): Context in which list created
3143* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
3144* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
3145* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
3146* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
3147* [Observation](observation.html): Encounter related to the observation
3148* [Procedure](procedure.html): The Encounter during which this Procedure was created
3149* [Provenance](provenance.html): Encounter related to the Provenance
3150* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
3151* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
3152* [RiskAssessment](riskassessment.html): Where was assessment performed?
3153* [ServiceRequest](servicerequest.html): An encounter in which this request is made
3154* [Task](task.html): Search by encounter
3155* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
3156</b><br>
3157   * Type: <b>reference</b><br>
3158   * 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>
3159   * </p>
3160   */
3161  @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 } )
3162  public static final String SP_ENCOUNTER = "encounter";
3163 /**
3164   * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
3165   * <p>
3166   * Description: <b>Multiple Resources: 
3167
3168* [AuditEvent](auditevent.html): Encounter related to the activity recorded in the AuditEvent
3169* [CarePlan](careplan.html): The Encounter during which this CarePlan was created
3170* [ChargeItem](chargeitem.html): Encounter associated with event
3171* [Claim](claim.html): Encounters associated with a billed line item
3172* [ClinicalImpression](clinicalimpression.html): The Encounter during which this ClinicalImpression was created
3173* [Communication](communication.html): The Encounter during which this Communication was created
3174* [CommunicationRequest](communicationrequest.html): The Encounter during which this CommunicationRequest was created
3175* [Composition](composition.html): Context of the Composition
3176* [Condition](condition.html): The Encounter during which this Condition was created
3177* [DeviceRequest](devicerequest.html): Encounter during which request was created
3178* [DiagnosticReport](diagnosticreport.html): The Encounter when the order was made
3179* [EncounterHistory](encounterhistory.html): The Encounter associated with this set of history values
3180* [ExplanationOfBenefit](explanationofbenefit.html): Encounters associated with a billed line item
3181* [Flag](flag.html): Alert relevant during encounter
3182* [ImagingStudy](imagingstudy.html): The context of the study
3183* [List](list.html): Context in which list created
3184* [MedicationDispense](medicationdispense.html): Returns dispenses with a specific encounter
3185* [MedicationStatement](medicationstatement.html): Returns statements for a specific encounter
3186* [NutritionIntake](nutritionintake.html): Returns statements for a specific encounter
3187* [NutritionOrder](nutritionorder.html): Return nutrition orders with this encounter identifier
3188* [Observation](observation.html): Encounter related to the observation
3189* [Procedure](procedure.html): The Encounter during which this Procedure was created
3190* [Provenance](provenance.html): Encounter related to the Provenance
3191* [QuestionnaireResponse](questionnaireresponse.html): Encounter associated with the questionnaire response
3192* [RequestOrchestration](requestorchestration.html): The encounter the request orchestration applies to
3193* [RiskAssessment](riskassessment.html): Where was assessment performed?
3194* [ServiceRequest](servicerequest.html): An encounter in which this request is made
3195* [Task](task.html): Search by encounter
3196* [VisionPrescription](visionprescription.html): Return prescriptions with this encounter identifier
3197</b><br>
3198   * Type: <b>reference</b><br>
3199   * 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>
3200   * </p>
3201   */
3202  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENCOUNTER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENCOUNTER);
3203
3204/**
3205   * Constant for fluent queries to be used to add include statements. Specifies
3206   * the path value of "<b>Composition:encounter</b>".
3207   */
3208  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENCOUNTER = new ca.uhn.fhir.model.api.Include("Composition:encounter").toLocked();
3209
3210 /**
3211   * Search parameter: <b>identifier</b>
3212   * <p>
3213   * Description: <b>Multiple Resources: 
3214
3215* [Account](account.html): Account number
3216* [AdverseEvent](adverseevent.html): Business identifier for the event
3217* [AllergyIntolerance](allergyintolerance.html): External ids for this item
3218* [Appointment](appointment.html): An Identifier of the Appointment
3219* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
3220* [Basic](basic.html): Business identifier
3221* [BodyStructure](bodystructure.html): Bodystructure identifier
3222* [CarePlan](careplan.html): External Ids for this plan
3223* [CareTeam](careteam.html): External Ids for this team
3224* [ChargeItem](chargeitem.html): Business Identifier for item
3225* [Claim](claim.html): The primary identifier of the financial resource
3226* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
3227* [ClinicalImpression](clinicalimpression.html): Business identifier
3228* [Communication](communication.html): Unique identifier
3229* [CommunicationRequest](communicationrequest.html): Unique identifier
3230* [Composition](composition.html): Version-independent identifier for the Composition
3231* [Condition](condition.html): A unique identifier of the condition record
3232* [Consent](consent.html): Identifier for this record (external references)
3233* [Contract](contract.html): The identity of the contract
3234* [Coverage](coverage.html): The primary identifier of the insured and the coverage
3235* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
3236* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
3237* [DetectedIssue](detectedissue.html): Unique id for the detected issue
3238* [DeviceRequest](devicerequest.html): Business identifier for request/order
3239* [DeviceUsage](deviceusage.html): Search by identifier
3240* [DiagnosticReport](diagnosticreport.html): An identifier for the report
3241* [DocumentReference](documentreference.html): Identifier of the attachment binary
3242* [Encounter](encounter.html): Identifier(s) by which this encounter is known
3243* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
3244* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
3245* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
3246* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
3247* [Flag](flag.html): Business identifier
3248* [Goal](goal.html): External Ids for this goal
3249* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
3250* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
3251* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
3252* [Immunization](immunization.html): Business identifier
3253* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
3254* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
3255* [Invoice](invoice.html): Business Identifier for item
3256* [List](list.html): Business identifier
3257* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
3258* [Medication](medication.html): Returns medications with this external identifier
3259* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
3260* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
3261* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
3262* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
3263* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
3264* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
3265* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
3266* [Observation](observation.html): The unique id for a particular observation
3267* [Person](person.html): A person Identifier
3268* [Procedure](procedure.html): A unique identifier for a procedure
3269* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
3270* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
3271* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
3272* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
3273* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
3274* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
3275* [Specimen](specimen.html): The unique identifier associated with the specimen
3276* [SupplyDelivery](supplydelivery.html): External identifier
3277* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
3278* [Task](task.html): Search for a task instance by its business identifier
3279* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
3280</b><br>
3281   * Type: <b>token</b><br>
3282   * 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>
3283   * </p>
3284   */
3285  @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" )
3286  public static final String SP_IDENTIFIER = "identifier";
3287 /**
3288   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
3289   * <p>
3290   * Description: <b>Multiple Resources: 
3291
3292* [Account](account.html): Account number
3293* [AdverseEvent](adverseevent.html): Business identifier for the event
3294* [AllergyIntolerance](allergyintolerance.html): External ids for this item
3295* [Appointment](appointment.html): An Identifier of the Appointment
3296* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
3297* [Basic](basic.html): Business identifier
3298* [BodyStructure](bodystructure.html): Bodystructure identifier
3299* [CarePlan](careplan.html): External Ids for this plan
3300* [CareTeam](careteam.html): External Ids for this team
3301* [ChargeItem](chargeitem.html): Business Identifier for item
3302* [Claim](claim.html): The primary identifier of the financial resource
3303* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
3304* [ClinicalImpression](clinicalimpression.html): Business identifier
3305* [Communication](communication.html): Unique identifier
3306* [CommunicationRequest](communicationrequest.html): Unique identifier
3307* [Composition](composition.html): Version-independent identifier for the Composition
3308* [Condition](condition.html): A unique identifier of the condition record
3309* [Consent](consent.html): Identifier for this record (external references)
3310* [Contract](contract.html): The identity of the contract
3311* [Coverage](coverage.html): The primary identifier of the insured and the coverage
3312* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
3313* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
3314* [DetectedIssue](detectedissue.html): Unique id for the detected issue
3315* [DeviceRequest](devicerequest.html): Business identifier for request/order
3316* [DeviceUsage](deviceusage.html): Search by identifier
3317* [DiagnosticReport](diagnosticreport.html): An identifier for the report
3318* [DocumentReference](documentreference.html): Identifier of the attachment binary
3319* [Encounter](encounter.html): Identifier(s) by which this encounter is known
3320* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
3321* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
3322* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
3323* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
3324* [Flag](flag.html): Business identifier
3325* [Goal](goal.html): External Ids for this goal
3326* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
3327* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
3328* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
3329* [Immunization](immunization.html): Business identifier
3330* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
3331* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
3332* [Invoice](invoice.html): Business Identifier for item
3333* [List](list.html): Business identifier
3334* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
3335* [Medication](medication.html): Returns medications with this external identifier
3336* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
3337* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
3338* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
3339* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
3340* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
3341* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
3342* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
3343* [Observation](observation.html): The unique id for a particular observation
3344* [Person](person.html): A person Identifier
3345* [Procedure](procedure.html): A unique identifier for a procedure
3346* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
3347* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
3348* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
3349* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
3350* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
3351* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
3352* [Specimen](specimen.html): The unique identifier associated with the specimen
3353* [SupplyDelivery](supplydelivery.html): External identifier
3354* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
3355* [Task](task.html): Search for a task instance by its business identifier
3356* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
3357</b><br>
3358   * Type: <b>token</b><br>
3359   * 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>
3360   * </p>
3361   */
3362  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
3363
3364 /**
3365   * Search parameter: <b>patient</b>
3366   * <p>
3367   * Description: <b>Multiple Resources: 
3368
3369* [Account](account.html): The entity that caused the expenses
3370* [AdverseEvent](adverseevent.html): Subject impacted by event
3371* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
3372* [Appointment](appointment.html): One of the individuals of the appointment is this patient
3373* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
3374* [AuditEvent](auditevent.html): Where the activity involved patient data
3375* [Basic](basic.html): Identifies the focus of this resource
3376* [BodyStructure](bodystructure.html): Who this is about
3377* [CarePlan](careplan.html): Who the care plan is for
3378* [CareTeam](careteam.html): Who care team is for
3379* [ChargeItem](chargeitem.html): Individual service was done for/to
3380* [Claim](claim.html): Patient receiving the products or services
3381* [ClaimResponse](claimresponse.html): The subject of care
3382* [ClinicalImpression](clinicalimpression.html): Patient assessed
3383* [Communication](communication.html): Focus of message
3384* [CommunicationRequest](communicationrequest.html): Focus of message
3385* [Composition](composition.html): Who and/or what the composition is about
3386* [Condition](condition.html): Who has the condition?
3387* [Consent](consent.html): Who the consent applies to
3388* [Contract](contract.html): The identity of the subject of the contract (if a patient)
3389* [Coverage](coverage.html): Retrieve coverages for a patient
3390* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
3391* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
3392* [DetectedIssue](detectedissue.html): Associated patient
3393* [DeviceRequest](devicerequest.html): Individual the service is ordered for
3394* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
3395* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
3396* [DocumentReference](documentreference.html): Who/what is the subject of the document
3397* [Encounter](encounter.html): The patient present at the encounter
3398* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
3399* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
3400* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
3401* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
3402* [Flag](flag.html): The identity of a subject to list flags for
3403* [Goal](goal.html): Who this goal is intended for
3404* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
3405* [ImagingSelection](imagingselection.html): Who the study is about
3406* [ImagingStudy](imagingstudy.html): Who the study is about
3407* [Immunization](immunization.html): The patient for the vaccination record
3408* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
3409* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
3410* [Invoice](invoice.html): Recipient(s) of goods and services
3411* [List](list.html): If all resources have the same subject
3412* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
3413* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3414* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3415* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3416* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
3417* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
3418* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
3419* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
3420* [Observation](observation.html): The subject that the observation is about (if patient)
3421* [Person](person.html): The Person links to this Patient
3422* [Procedure](procedure.html): Search by subject - a patient
3423* [Provenance](provenance.html): Where the activity involved patient data
3424* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
3425* [RelatedPerson](relatedperson.html): The patient this related person is related to
3426* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
3427* [ResearchSubject](researchsubject.html): Who or what is part of study
3428* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3429* [ServiceRequest](servicerequest.html): Search by subject - a patient
3430* [Specimen](specimen.html): The patient the specimen comes from
3431* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3432* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
3433* [Task](task.html): Search by patient
3434* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3435</b><br>
3436   * Type: <b>reference</b><br>
3437   * 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>
3438   * </p>
3439   */
3440  @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 } )
3441  public static final String SP_PATIENT = "patient";
3442 /**
3443   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
3444   * <p>
3445   * Description: <b>Multiple Resources: 
3446
3447* [Account](account.html): The entity that caused the expenses
3448* [AdverseEvent](adverseevent.html): Subject impacted by event
3449* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
3450* [Appointment](appointment.html): One of the individuals of the appointment is this patient
3451* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
3452* [AuditEvent](auditevent.html): Where the activity involved patient data
3453* [Basic](basic.html): Identifies the focus of this resource
3454* [BodyStructure](bodystructure.html): Who this is about
3455* [CarePlan](careplan.html): Who the care plan is for
3456* [CareTeam](careteam.html): Who care team is for
3457* [ChargeItem](chargeitem.html): Individual service was done for/to
3458* [Claim](claim.html): Patient receiving the products or services
3459* [ClaimResponse](claimresponse.html): The subject of care
3460* [ClinicalImpression](clinicalimpression.html): Patient assessed
3461* [Communication](communication.html): Focus of message
3462* [CommunicationRequest](communicationrequest.html): Focus of message
3463* [Composition](composition.html): Who and/or what the composition is about
3464* [Condition](condition.html): Who has the condition?
3465* [Consent](consent.html): Who the consent applies to
3466* [Contract](contract.html): The identity of the subject of the contract (if a patient)
3467* [Coverage](coverage.html): Retrieve coverages for a patient
3468* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
3469* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
3470* [DetectedIssue](detectedissue.html): Associated patient
3471* [DeviceRequest](devicerequest.html): Individual the service is ordered for
3472* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
3473* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
3474* [DocumentReference](documentreference.html): Who/what is the subject of the document
3475* [Encounter](encounter.html): The patient present at the encounter
3476* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
3477* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
3478* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
3479* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
3480* [Flag](flag.html): The identity of a subject to list flags for
3481* [Goal](goal.html): Who this goal is intended for
3482* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
3483* [ImagingSelection](imagingselection.html): Who the study is about
3484* [ImagingStudy](imagingstudy.html): Who the study is about
3485* [Immunization](immunization.html): The patient for the vaccination record
3486* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
3487* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
3488* [Invoice](invoice.html): Recipient(s) of goods and services
3489* [List](list.html): If all resources have the same subject
3490* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
3491* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
3492* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
3493* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
3494* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
3495* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
3496* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
3497* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
3498* [Observation](observation.html): The subject that the observation is about (if patient)
3499* [Person](person.html): The Person links to this Patient
3500* [Procedure](procedure.html): Search by subject - a patient
3501* [Provenance](provenance.html): Where the activity involved patient data
3502* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
3503* [RelatedPerson](relatedperson.html): The patient this related person is related to
3504* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
3505* [ResearchSubject](researchsubject.html): Who or what is part of study
3506* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
3507* [ServiceRequest](servicerequest.html): Search by subject - a patient
3508* [Specimen](specimen.html): The patient the specimen comes from
3509* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
3510* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
3511* [Task](task.html): Search by patient
3512* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
3513</b><br>
3514   * Type: <b>reference</b><br>
3515   * 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>
3516   * </p>
3517   */
3518  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
3519
3520/**
3521   * Constant for fluent queries to be used to add include statements. Specifies
3522   * the path value of "<b>Composition:patient</b>".
3523   */
3524  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Composition:patient").toLocked();
3525
3526 /**
3527   * Search parameter: <b>type</b>
3528   * <p>
3529   * Description: <b>Multiple Resources: 
3530
3531* [Account](account.html): E.g. patient, expense, depreciation
3532* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
3533* [Composition](composition.html): Kind of composition (LOINC if possible)
3534* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
3535* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
3536* [Encounter](encounter.html): Specific type of encounter
3537* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
3538* [Invoice](invoice.html): Type of Invoice
3539* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
3540* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
3541* [Specimen](specimen.html): The specimen type
3542</b><br>
3543   * Type: <b>token</b><br>
3544   * Path: <b>Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type</b><br>
3545   * </p>
3546   */
3547  @SearchParamDefinition(name="type", path="Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type", description="Multiple Resources: \r\n\r\n* [Account](account.html): E.g. patient, expense, depreciation\r\n* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)\r\n* [Composition](composition.html): Kind of composition (LOINC if possible)\r\n* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)\r\n* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)\r\n* [Encounter](encounter.html): Specific type of encounter\r\n* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management\r\n* [Invoice](invoice.html): Type of Invoice\r\n* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type\r\n* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence\r\n* [Specimen](specimen.html): The specimen type\r\n", type="token" )
3548  public static final String SP_TYPE = "type";
3549 /**
3550   * <b>Fluent Client</b> search parameter constant for <b>type</b>
3551   * <p>
3552   * Description: <b>Multiple Resources: 
3553
3554* [Account](account.html): E.g. patient, expense, depreciation
3555* [AllergyIntolerance](allergyintolerance.html): allergy | intolerance - Underlying mechanism (if known)
3556* [Composition](composition.html): Kind of composition (LOINC if possible)
3557* [Coverage](coverage.html): The kind of coverage (health plan, auto, Workers Compensation)
3558* [DocumentReference](documentreference.html): Kind of document (LOINC if possible)
3559* [Encounter](encounter.html): Specific type of encounter
3560* [EpisodeOfCare](episodeofcare.html): Type/class  - e.g. specialist referral, disease management
3561* [Invoice](invoice.html): Type of Invoice
3562* [MedicationDispense](medicationdispense.html): Returns dispenses of a specific type
3563* [MolecularSequence](molecularsequence.html): Amino Acid Sequence/ DNA Sequence / RNA Sequence
3564* [Specimen](specimen.html): The specimen type
3565</b><br>
3566   * Type: <b>token</b><br>
3567   * Path: <b>Account.type | AllergyIntolerance.type | Composition.type | Coverage.type | DocumentReference.type | Encounter.type | EpisodeOfCare.type | Invoice.type | MedicationDispense.type | MolecularSequence.type | Specimen.type</b><br>
3568   * </p>
3569   */
3570  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
3571
3572
3573}
3574