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