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 * Demographics and administrative information about a person independent of a specific health-related context.
052 */
053@ResourceDef(name="Person", profile="http://hl7.org/fhir/StructureDefinition/Person")
054public class Person extends DomainResource {
055
056    public enum IdentityAssuranceLevel {
057        /**
058         * Little or no confidence in the asserted identity's accuracy.
059         */
060        LEVEL1, 
061        /**
062         * Some confidence in the asserted identity's accuracy.
063         */
064        LEVEL2, 
065        /**
066         * High confidence in the asserted identity's accuracy.
067         */
068        LEVEL3, 
069        /**
070         * Very high confidence in the asserted identity's accuracy.
071         */
072        LEVEL4, 
073        /**
074         * added to help the parsers with the generic types
075         */
076        NULL;
077        public static IdentityAssuranceLevel fromCode(String codeString) throws FHIRException {
078            if (codeString == null || "".equals(codeString))
079                return null;
080        if ("level1".equals(codeString))
081          return LEVEL1;
082        if ("level2".equals(codeString))
083          return LEVEL2;
084        if ("level3".equals(codeString))
085          return LEVEL3;
086        if ("level4".equals(codeString))
087          return LEVEL4;
088        if (Configuration.isAcceptInvalidEnums())
089          return null;
090        else
091          throw new FHIRException("Unknown IdentityAssuranceLevel code '"+codeString+"'");
092        }
093        public String toCode() {
094          switch (this) {
095            case LEVEL1: return "level1";
096            case LEVEL2: return "level2";
097            case LEVEL3: return "level3";
098            case LEVEL4: return "level4";
099            case NULL: return null;
100            default: return "?";
101          }
102        }
103        public String getSystem() {
104          switch (this) {
105            case LEVEL1: return "http://hl7.org/fhir/identity-assuranceLevel";
106            case LEVEL2: return "http://hl7.org/fhir/identity-assuranceLevel";
107            case LEVEL3: return "http://hl7.org/fhir/identity-assuranceLevel";
108            case LEVEL4: return "http://hl7.org/fhir/identity-assuranceLevel";
109            case NULL: return null;
110            default: return "?";
111          }
112        }
113        public String getDefinition() {
114          switch (this) {
115            case LEVEL1: return "Little or no confidence in the asserted identity's accuracy.";
116            case LEVEL2: return "Some confidence in the asserted identity's accuracy.";
117            case LEVEL3: return "High confidence in the asserted identity's accuracy.";
118            case LEVEL4: return "Very high confidence in the asserted identity's accuracy.";
119            case NULL: return null;
120            default: return "?";
121          }
122        }
123        public String getDisplay() {
124          switch (this) {
125            case LEVEL1: return "Level 1";
126            case LEVEL2: return "Level 2";
127            case LEVEL3: return "Level 3";
128            case LEVEL4: return "Level 4";
129            case NULL: return null;
130            default: return "?";
131          }
132        }
133    }
134
135  public static class IdentityAssuranceLevelEnumFactory implements EnumFactory<IdentityAssuranceLevel> {
136    public IdentityAssuranceLevel fromCode(String codeString) throws IllegalArgumentException {
137      if (codeString == null || "".equals(codeString))
138            if (codeString == null || "".equals(codeString))
139                return null;
140        if ("level1".equals(codeString))
141          return IdentityAssuranceLevel.LEVEL1;
142        if ("level2".equals(codeString))
143          return IdentityAssuranceLevel.LEVEL2;
144        if ("level3".equals(codeString))
145          return IdentityAssuranceLevel.LEVEL3;
146        if ("level4".equals(codeString))
147          return IdentityAssuranceLevel.LEVEL4;
148        throw new IllegalArgumentException("Unknown IdentityAssuranceLevel code '"+codeString+"'");
149        }
150        public Enumeration<IdentityAssuranceLevel> fromType(PrimitiveType<?> code) throws FHIRException {
151          if (code == null)
152            return null;
153          if (code.isEmpty())
154            return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.NULL, code);
155          String codeString = ((PrimitiveType) code).asStringValue();
156          if (codeString == null || "".equals(codeString))
157            return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.NULL, code);
158        if ("level1".equals(codeString))
159          return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.LEVEL1, code);
160        if ("level2".equals(codeString))
161          return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.LEVEL2, code);
162        if ("level3".equals(codeString))
163          return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.LEVEL3, code);
164        if ("level4".equals(codeString))
165          return new Enumeration<IdentityAssuranceLevel>(this, IdentityAssuranceLevel.LEVEL4, code);
166        throw new FHIRException("Unknown IdentityAssuranceLevel code '"+codeString+"'");
167        }
168    public String toCode(IdentityAssuranceLevel code) {
169      if (code == IdentityAssuranceLevel.LEVEL1)
170        return "level1";
171      if (code == IdentityAssuranceLevel.LEVEL2)
172        return "level2";
173      if (code == IdentityAssuranceLevel.LEVEL3)
174        return "level3";
175      if (code == IdentityAssuranceLevel.LEVEL4)
176        return "level4";
177      return "?";
178      }
179    public String toSystem(IdentityAssuranceLevel code) {
180      return code.getSystem();
181      }
182    }
183
184    @Block()
185    public static class PersonCommunicationComponent extends BackboneElement implements IBaseBackboneElement {
186        /**
187         * The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-AU" for Australian English.
188         */
189        @Child(name = "language", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
190        @Description(shortDefinition="The language which can be used to communicate with the person about his or her health", formalDefinition="The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-AU\" for Australian English." )
191        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/all-languages")
192        protected CodeableConcept language;
193
194        /**
195         * Indicates whether or not the person prefers this language (over other languages he masters up a certain level).
196         */
197        @Child(name = "preferred", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
198        @Description(shortDefinition="Language preference indicator", formalDefinition="Indicates whether or not the person prefers this language (over other languages he masters up a certain level)." )
199        protected BooleanType preferred;
200
201        private static final long serialVersionUID = 633792918L;
202
203    /**
204     * Constructor
205     */
206      public PersonCommunicationComponent() {
207        super();
208      }
209
210    /**
211     * Constructor
212     */
213      public PersonCommunicationComponent(CodeableConcept language) {
214        super();
215        this.setLanguage(language);
216      }
217
218        /**
219         * @return {@link #language} (The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-AU" for Australian English.)
220         */
221        public CodeableConcept getLanguage() { 
222          if (this.language == null)
223            if (Configuration.errorOnAutoCreate())
224              throw new Error("Attempt to auto-create PersonCommunicationComponent.language");
225            else if (Configuration.doAutoCreate())
226              this.language = new CodeableConcept(); // cc
227          return this.language;
228        }
229
230        public boolean hasLanguage() { 
231          return this.language != null && !this.language.isEmpty();
232        }
233
234        /**
235         * @param value {@link #language} (The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. "en" for English, or "en-US" for American English versus "en-AU" for Australian English.)
236         */
237        public PersonCommunicationComponent setLanguage(CodeableConcept value) { 
238          this.language = value;
239          return this;
240        }
241
242        /**
243         * @return {@link #preferred} (Indicates whether or not the person prefers this language (over other languages he masters up a certain level).). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
244         */
245        public BooleanType getPreferredElement() { 
246          if (this.preferred == null)
247            if (Configuration.errorOnAutoCreate())
248              throw new Error("Attempt to auto-create PersonCommunicationComponent.preferred");
249            else if (Configuration.doAutoCreate())
250              this.preferred = new BooleanType(); // bb
251          return this.preferred;
252        }
253
254        public boolean hasPreferredElement() { 
255          return this.preferred != null && !this.preferred.isEmpty();
256        }
257
258        public boolean hasPreferred() { 
259          return this.preferred != null && !this.preferred.isEmpty();
260        }
261
262        /**
263         * @param value {@link #preferred} (Indicates whether or not the person prefers this language (over other languages he masters up a certain level).). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
264         */
265        public PersonCommunicationComponent setPreferredElement(BooleanType value) { 
266          this.preferred = value;
267          return this;
268        }
269
270        /**
271         * @return Indicates whether or not the person prefers this language (over other languages he masters up a certain level).
272         */
273        public boolean getPreferred() { 
274          return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue();
275        }
276
277        /**
278         * @param value Indicates whether or not the person prefers this language (over other languages he masters up a certain level).
279         */
280        public PersonCommunicationComponent setPreferred(boolean value) { 
281            if (this.preferred == null)
282              this.preferred = new BooleanType();
283            this.preferred.setValue(value);
284          return this;
285        }
286
287        protected void listChildren(List<Property> children) {
288          super.listChildren(children);
289          children.add(new Property("language", "CodeableConcept", "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-AU\" for Australian English.", 0, 1, language));
290          children.add(new Property("preferred", "boolean", "Indicates whether or not the person prefers this language (over other languages he masters up a certain level).", 0, 1, preferred));
291        }
292
293        @Override
294        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
295          switch (_hash) {
296          case -1613589672: /*language*/  return new Property("language", "CodeableConcept", "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-AU\" for Australian English.", 0, 1, language);
297          case -1294005119: /*preferred*/  return new Property("preferred", "boolean", "Indicates whether or not the person prefers this language (over other languages he masters up a certain level).", 0, 1, preferred);
298          default: return super.getNamedProperty(_hash, _name, _checkValid);
299          }
300
301        }
302
303      @Override
304      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
305        switch (hash) {
306        case -1613589672: /*language*/ return this.language == null ? new Base[0] : new Base[] {this.language}; // CodeableConcept
307        case -1294005119: /*preferred*/ return this.preferred == null ? new Base[0] : new Base[] {this.preferred}; // BooleanType
308        default: return super.getProperty(hash, name, checkValid);
309        }
310
311      }
312
313      @Override
314      public Base setProperty(int hash, String name, Base value) throws FHIRException {
315        switch (hash) {
316        case -1613589672: // language
317          this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
318          return value;
319        case -1294005119: // preferred
320          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
321          return value;
322        default: return super.setProperty(hash, name, value);
323        }
324
325      }
326
327      @Override
328      public Base setProperty(String name, Base value) throws FHIRException {
329        if (name.equals("language")) {
330          this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
331        } else if (name.equals("preferred")) {
332          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
333        } else
334          return super.setProperty(name, value);
335        return value;
336      }
337
338      @Override
339      public Base makeProperty(int hash, String name) throws FHIRException {
340        switch (hash) {
341        case -1613589672:  return getLanguage();
342        case -1294005119:  return getPreferredElement();
343        default: return super.makeProperty(hash, name);
344        }
345
346      }
347
348      @Override
349      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
350        switch (hash) {
351        case -1613589672: /*language*/ return new String[] {"CodeableConcept"};
352        case -1294005119: /*preferred*/ return new String[] {"boolean"};
353        default: return super.getTypesForProperty(hash, name);
354        }
355
356      }
357
358      @Override
359      public Base addChild(String name) throws FHIRException {
360        if (name.equals("language")) {
361          this.language = new CodeableConcept();
362          return this.language;
363        }
364        else if (name.equals("preferred")) {
365          throw new FHIRException("Cannot call addChild on a singleton property Person.communication.preferred");
366        }
367        else
368          return super.addChild(name);
369      }
370
371      public PersonCommunicationComponent copy() {
372        PersonCommunicationComponent dst = new PersonCommunicationComponent();
373        copyValues(dst);
374        return dst;
375      }
376
377      public void copyValues(PersonCommunicationComponent dst) {
378        super.copyValues(dst);
379        dst.language = language == null ? null : language.copy();
380        dst.preferred = preferred == null ? null : preferred.copy();
381      }
382
383      @Override
384      public boolean equalsDeep(Base other_) {
385        if (!super.equalsDeep(other_))
386          return false;
387        if (!(other_ instanceof PersonCommunicationComponent))
388          return false;
389        PersonCommunicationComponent o = (PersonCommunicationComponent) other_;
390        return compareDeep(language, o.language, true) && compareDeep(preferred, o.preferred, true);
391      }
392
393      @Override
394      public boolean equalsShallow(Base other_) {
395        if (!super.equalsShallow(other_))
396          return false;
397        if (!(other_ instanceof PersonCommunicationComponent))
398          return false;
399        PersonCommunicationComponent o = (PersonCommunicationComponent) other_;
400        return compareValues(preferred, o.preferred, true);
401      }
402
403      public boolean isEmpty() {
404        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(language, preferred);
405      }
406
407  public String fhirType() {
408    return "Person.communication";
409
410  }
411
412  }
413
414    @Block()
415    public static class PersonLinkComponent extends BackboneElement implements IBaseBackboneElement {
416        /**
417         * The resource to which this actual person is associated.
418         */
419        @Child(name = "target", type = {Patient.class, Practitioner.class, RelatedPerson.class, Person.class}, order=1, min=1, max=1, modifier=false, summary=false)
420        @Description(shortDefinition="The resource to which this actual person is associated", formalDefinition="The resource to which this actual person is associated." )
421        protected Reference target;
422
423        /**
424         * Level of assurance that this link is associated with the target resource.
425         */
426        @Child(name = "assurance", type = {CodeType.class}, order=2, min=0, max=1, modifier=false, summary=false)
427        @Description(shortDefinition="level1 | level2 | level3 | level4", formalDefinition="Level of assurance that this link is associated with the target resource." )
428        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/identity-assuranceLevel")
429        protected Enumeration<IdentityAssuranceLevel> assurance;
430
431        private static final long serialVersionUID = -1393523223L;
432
433    /**
434     * Constructor
435     */
436      public PersonLinkComponent() {
437        super();
438      }
439
440    /**
441     * Constructor
442     */
443      public PersonLinkComponent(Reference target) {
444        super();
445        this.setTarget(target);
446      }
447
448        /**
449         * @return {@link #target} (The resource to which this actual person is associated.)
450         */
451        public Reference getTarget() { 
452          if (this.target == null)
453            if (Configuration.errorOnAutoCreate())
454              throw new Error("Attempt to auto-create PersonLinkComponent.target");
455            else if (Configuration.doAutoCreate())
456              this.target = new Reference(); // cc
457          return this.target;
458        }
459
460        public boolean hasTarget() { 
461          return this.target != null && !this.target.isEmpty();
462        }
463
464        /**
465         * @param value {@link #target} (The resource to which this actual person is associated.)
466         */
467        public PersonLinkComponent setTarget(Reference value) { 
468          this.target = value;
469          return this;
470        }
471
472        /**
473         * @return {@link #assurance} (Level of assurance that this link is associated with the target resource.). This is the underlying object with id, value and extensions. The accessor "getAssurance" gives direct access to the value
474         */
475        public Enumeration<IdentityAssuranceLevel> getAssuranceElement() { 
476          if (this.assurance == null)
477            if (Configuration.errorOnAutoCreate())
478              throw new Error("Attempt to auto-create PersonLinkComponent.assurance");
479            else if (Configuration.doAutoCreate())
480              this.assurance = new Enumeration<IdentityAssuranceLevel>(new IdentityAssuranceLevelEnumFactory()); // bb
481          return this.assurance;
482        }
483
484        public boolean hasAssuranceElement() { 
485          return this.assurance != null && !this.assurance.isEmpty();
486        }
487
488        public boolean hasAssurance() { 
489          return this.assurance != null && !this.assurance.isEmpty();
490        }
491
492        /**
493         * @param value {@link #assurance} (Level of assurance that this link is associated with the target resource.). This is the underlying object with id, value and extensions. The accessor "getAssurance" gives direct access to the value
494         */
495        public PersonLinkComponent setAssuranceElement(Enumeration<IdentityAssuranceLevel> value) { 
496          this.assurance = value;
497          return this;
498        }
499
500        /**
501         * @return Level of assurance that this link is associated with the target resource.
502         */
503        public IdentityAssuranceLevel getAssurance() { 
504          return this.assurance == null ? null : this.assurance.getValue();
505        }
506
507        /**
508         * @param value Level of assurance that this link is associated with the target resource.
509         */
510        public PersonLinkComponent setAssurance(IdentityAssuranceLevel value) { 
511          if (value == null)
512            this.assurance = null;
513          else {
514            if (this.assurance == null)
515              this.assurance = new Enumeration<IdentityAssuranceLevel>(new IdentityAssuranceLevelEnumFactory());
516            this.assurance.setValue(value);
517          }
518          return this;
519        }
520
521        protected void listChildren(List<Property> children) {
522          super.listChildren(children);
523          children.add(new Property("target", "Reference(Patient|Practitioner|RelatedPerson|Person)", "The resource to which this actual person is associated.", 0, 1, target));
524          children.add(new Property("assurance", "code", "Level of assurance that this link is associated with the target resource.", 0, 1, assurance));
525        }
526
527        @Override
528        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
529          switch (_hash) {
530          case -880905839: /*target*/  return new Property("target", "Reference(Patient|Practitioner|RelatedPerson|Person)", "The resource to which this actual person is associated.", 0, 1, target);
531          case 1771900717: /*assurance*/  return new Property("assurance", "code", "Level of assurance that this link is associated with the target resource.", 0, 1, assurance);
532          default: return super.getNamedProperty(_hash, _name, _checkValid);
533          }
534
535        }
536
537      @Override
538      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
539        switch (hash) {
540        case -880905839: /*target*/ return this.target == null ? new Base[0] : new Base[] {this.target}; // Reference
541        case 1771900717: /*assurance*/ return this.assurance == null ? new Base[0] : new Base[] {this.assurance}; // Enumeration<IdentityAssuranceLevel>
542        default: return super.getProperty(hash, name, checkValid);
543        }
544
545      }
546
547      @Override
548      public Base setProperty(int hash, String name, Base value) throws FHIRException {
549        switch (hash) {
550        case -880905839: // target
551          this.target = TypeConvertor.castToReference(value); // Reference
552          return value;
553        case 1771900717: // assurance
554          value = new IdentityAssuranceLevelEnumFactory().fromType(TypeConvertor.castToCode(value));
555          this.assurance = (Enumeration) value; // Enumeration<IdentityAssuranceLevel>
556          return value;
557        default: return super.setProperty(hash, name, value);
558        }
559
560      }
561
562      @Override
563      public Base setProperty(String name, Base value) throws FHIRException {
564        if (name.equals("target")) {
565          this.target = TypeConvertor.castToReference(value); // Reference
566        } else if (name.equals("assurance")) {
567          value = new IdentityAssuranceLevelEnumFactory().fromType(TypeConvertor.castToCode(value));
568          this.assurance = (Enumeration) value; // Enumeration<IdentityAssuranceLevel>
569        } else
570          return super.setProperty(name, value);
571        return value;
572      }
573
574      @Override
575      public Base makeProperty(int hash, String name) throws FHIRException {
576        switch (hash) {
577        case -880905839:  return getTarget();
578        case 1771900717:  return getAssuranceElement();
579        default: return super.makeProperty(hash, name);
580        }
581
582      }
583
584      @Override
585      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
586        switch (hash) {
587        case -880905839: /*target*/ return new String[] {"Reference"};
588        case 1771900717: /*assurance*/ return new String[] {"code"};
589        default: return super.getTypesForProperty(hash, name);
590        }
591
592      }
593
594      @Override
595      public Base addChild(String name) throws FHIRException {
596        if (name.equals("target")) {
597          this.target = new Reference();
598          return this.target;
599        }
600        else if (name.equals("assurance")) {
601          throw new FHIRException("Cannot call addChild on a singleton property Person.link.assurance");
602        }
603        else
604          return super.addChild(name);
605      }
606
607      public PersonLinkComponent copy() {
608        PersonLinkComponent dst = new PersonLinkComponent();
609        copyValues(dst);
610        return dst;
611      }
612
613      public void copyValues(PersonLinkComponent dst) {
614        super.copyValues(dst);
615        dst.target = target == null ? null : target.copy();
616        dst.assurance = assurance == null ? null : assurance.copy();
617      }
618
619      @Override
620      public boolean equalsDeep(Base other_) {
621        if (!super.equalsDeep(other_))
622          return false;
623        if (!(other_ instanceof PersonLinkComponent))
624          return false;
625        PersonLinkComponent o = (PersonLinkComponent) other_;
626        return compareDeep(target, o.target, true) && compareDeep(assurance, o.assurance, true);
627      }
628
629      @Override
630      public boolean equalsShallow(Base other_) {
631        if (!super.equalsShallow(other_))
632          return false;
633        if (!(other_ instanceof PersonLinkComponent))
634          return false;
635        PersonLinkComponent o = (PersonLinkComponent) other_;
636        return compareValues(assurance, o.assurance, true);
637      }
638
639      public boolean isEmpty() {
640        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(target, assurance);
641      }
642
643  public String fhirType() {
644    return "Person.link";
645
646  }
647
648  }
649
650    /**
651     * Identifier for a person within a particular scope.
652     */
653    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
654    @Description(shortDefinition="A human identifier for this person", formalDefinition="Identifier for a person within a particular scope." )
655    protected List<Identifier> identifier;
656
657    /**
658     * Whether this person's record is in active use.
659     */
660    @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true)
661    @Description(shortDefinition="This person's record is in active use", formalDefinition="Whether this person's record is in active use." )
662    protected BooleanType active;
663
664    /**
665     * A name associated with the person.
666     */
667    @Child(name = "name", type = {HumanName.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
668    @Description(shortDefinition="A name associated with the person", formalDefinition="A name associated with the person." )
669    protected List<HumanName> name;
670
671    /**
672     * A contact detail for the person, e.g. a telephone number or an email address.
673     */
674    @Child(name = "telecom", type = {ContactPoint.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
675    @Description(shortDefinition="A contact detail for the person", formalDefinition="A contact detail for the person, e.g. a telephone number or an email address." )
676    protected List<ContactPoint> telecom;
677
678    /**
679     * Administrative Gender.
680     */
681    @Child(name = "gender", type = {CodeType.class}, order=4, min=0, max=1, modifier=false, summary=true)
682    @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender." )
683    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender")
684    protected Enumeration<AdministrativeGender> gender;
685
686    /**
687     * The birth date for the person.
688     */
689    @Child(name = "birthDate", type = {DateType.class}, order=5, min=0, max=1, modifier=false, summary=true)
690    @Description(shortDefinition="The date on which the person was born", formalDefinition="The birth date for the person." )
691    protected DateType birthDate;
692
693    /**
694     * Indicates if the individual is deceased or not.
695     */
696    @Child(name = "deceased", type = {BooleanType.class, DateTimeType.class}, order=6, min=0, max=1, modifier=false, summary=true)
697    @Description(shortDefinition="Indicates if the individual is deceased or not", formalDefinition="Indicates if the individual is deceased or not." )
698    protected DataType deceased;
699
700    /**
701     * One or more addresses for the person.
702     */
703    @Child(name = "address", type = {Address.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
704    @Description(shortDefinition="One or more addresses for the person", formalDefinition="One or more addresses for the person." )
705    protected List<Address> address;
706
707    /**
708     * This field contains a person's most recent marital (civil) status.
709     */
710    @Child(name = "maritalStatus", type = {CodeableConcept.class}, order=8, min=0, max=1, modifier=false, summary=false)
711    @Description(shortDefinition="Marital (civil) status of a person", formalDefinition="This field contains a person's most recent marital (civil) status." )
712    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/marital-status")
713    protected CodeableConcept maritalStatus;
714
715    /**
716     * An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.
717     */
718    @Child(name = "photo", type = {Attachment.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
719    @Description(shortDefinition="Image of the person", formalDefinition="An image that can be displayed as a thumbnail of the person to enhance the identification of the individual." )
720    protected List<Attachment> photo;
721
722    /**
723     * A language which may be used to communicate with the person about his or her health.
724     */
725    @Child(name = "communication", type = {}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
726    @Description(shortDefinition="A language which may be used to communicate with the person about his or her health", formalDefinition="A language which may be used to communicate with the person about his or her health." )
727    protected List<PersonCommunicationComponent> communication;
728
729    /**
730     * The organization that is the custodian of the person record.
731     */
732    @Child(name = "managingOrganization", type = {Organization.class}, order=11, min=0, max=1, modifier=false, summary=true)
733    @Description(shortDefinition="The organization that is the custodian of the person record", formalDefinition="The organization that is the custodian of the person record." )
734    protected Reference managingOrganization;
735
736    /**
737     * Link to a resource that concerns the same actual person.
738     */
739    @Child(name = "link", type = {}, order=12, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
740    @Description(shortDefinition="Link to a resource that concerns the same actual person", formalDefinition="Link to a resource that concerns the same actual person." )
741    protected List<PersonLinkComponent> link;
742
743    private static final long serialVersionUID = -1871612358L;
744
745  /**
746   * Constructor
747   */
748    public Person() {
749      super();
750    }
751
752    /**
753     * @return {@link #identifier} (Identifier for a person within a particular scope.)
754     */
755    public List<Identifier> getIdentifier() { 
756      if (this.identifier == null)
757        this.identifier = new ArrayList<Identifier>();
758      return this.identifier;
759    }
760
761    /**
762     * @return Returns a reference to <code>this</code> for easy method chaining
763     */
764    public Person setIdentifier(List<Identifier> theIdentifier) { 
765      this.identifier = theIdentifier;
766      return this;
767    }
768
769    public boolean hasIdentifier() { 
770      if (this.identifier == null)
771        return false;
772      for (Identifier item : this.identifier)
773        if (!item.isEmpty())
774          return true;
775      return false;
776    }
777
778    public Identifier addIdentifier() { //3
779      Identifier t = new Identifier();
780      if (this.identifier == null)
781        this.identifier = new ArrayList<Identifier>();
782      this.identifier.add(t);
783      return t;
784    }
785
786    public Person addIdentifier(Identifier t) { //3
787      if (t == null)
788        return this;
789      if (this.identifier == null)
790        this.identifier = new ArrayList<Identifier>();
791      this.identifier.add(t);
792      return this;
793    }
794
795    /**
796     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
797     */
798    public Identifier getIdentifierFirstRep() { 
799      if (getIdentifier().isEmpty()) {
800        addIdentifier();
801      }
802      return getIdentifier().get(0);
803    }
804
805    /**
806     * @return {@link #active} (Whether this person's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
807     */
808    public BooleanType getActiveElement() { 
809      if (this.active == null)
810        if (Configuration.errorOnAutoCreate())
811          throw new Error("Attempt to auto-create Person.active");
812        else if (Configuration.doAutoCreate())
813          this.active = new BooleanType(); // bb
814      return this.active;
815    }
816
817    public boolean hasActiveElement() { 
818      return this.active != null && !this.active.isEmpty();
819    }
820
821    public boolean hasActive() { 
822      return this.active != null && !this.active.isEmpty();
823    }
824
825    /**
826     * @param value {@link #active} (Whether this person's record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
827     */
828    public Person setActiveElement(BooleanType value) { 
829      this.active = value;
830      return this;
831    }
832
833    /**
834     * @return Whether this person's record is in active use.
835     */
836    public boolean getActive() { 
837      return this.active == null || this.active.isEmpty() ? false : this.active.getValue();
838    }
839
840    /**
841     * @param value Whether this person's record is in active use.
842     */
843    public Person setActive(boolean value) { 
844        if (this.active == null)
845          this.active = new BooleanType();
846        this.active.setValue(value);
847      return this;
848    }
849
850    /**
851     * @return {@link #name} (A name associated with the person.)
852     */
853    public List<HumanName> getName() { 
854      if (this.name == null)
855        this.name = new ArrayList<HumanName>();
856      return this.name;
857    }
858
859    /**
860     * @return Returns a reference to <code>this</code> for easy method chaining
861     */
862    public Person setName(List<HumanName> theName) { 
863      this.name = theName;
864      return this;
865    }
866
867    public boolean hasName() { 
868      if (this.name == null)
869        return false;
870      for (HumanName item : this.name)
871        if (!item.isEmpty())
872          return true;
873      return false;
874    }
875
876    public HumanName addName() { //3
877      HumanName t = new HumanName();
878      if (this.name == null)
879        this.name = new ArrayList<HumanName>();
880      this.name.add(t);
881      return t;
882    }
883
884    public Person addName(HumanName t) { //3
885      if (t == null)
886        return this;
887      if (this.name == null)
888        this.name = new ArrayList<HumanName>();
889      this.name.add(t);
890      return this;
891    }
892
893    /**
894     * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3}
895     */
896    public HumanName getNameFirstRep() { 
897      if (getName().isEmpty()) {
898        addName();
899      }
900      return getName().get(0);
901    }
902
903    /**
904     * @return {@link #telecom} (A contact detail for the person, e.g. a telephone number or an email address.)
905     */
906    public List<ContactPoint> getTelecom() { 
907      if (this.telecom == null)
908        this.telecom = new ArrayList<ContactPoint>();
909      return this.telecom;
910    }
911
912    /**
913     * @return Returns a reference to <code>this</code> for easy method chaining
914     */
915    public Person setTelecom(List<ContactPoint> theTelecom) { 
916      this.telecom = theTelecom;
917      return this;
918    }
919
920    public boolean hasTelecom() { 
921      if (this.telecom == null)
922        return false;
923      for (ContactPoint item : this.telecom)
924        if (!item.isEmpty())
925          return true;
926      return false;
927    }
928
929    public ContactPoint addTelecom() { //3
930      ContactPoint t = new ContactPoint();
931      if (this.telecom == null)
932        this.telecom = new ArrayList<ContactPoint>();
933      this.telecom.add(t);
934      return t;
935    }
936
937    public Person addTelecom(ContactPoint t) { //3
938      if (t == null)
939        return this;
940      if (this.telecom == null)
941        this.telecom = new ArrayList<ContactPoint>();
942      this.telecom.add(t);
943      return this;
944    }
945
946    /**
947     * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist {3}
948     */
949    public ContactPoint getTelecomFirstRep() { 
950      if (getTelecom().isEmpty()) {
951        addTelecom();
952      }
953      return getTelecom().get(0);
954    }
955
956    /**
957     * @return {@link #gender} (Administrative Gender.). This is the underlying object with id, value and extensions. The accessor "getGender" gives direct access to the value
958     */
959    public Enumeration<AdministrativeGender> getGenderElement() { 
960      if (this.gender == null)
961        if (Configuration.errorOnAutoCreate())
962          throw new Error("Attempt to auto-create Person.gender");
963        else if (Configuration.doAutoCreate())
964          this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb
965      return this.gender;
966    }
967
968    public boolean hasGenderElement() { 
969      return this.gender != null && !this.gender.isEmpty();
970    }
971
972    public boolean hasGender() { 
973      return this.gender != null && !this.gender.isEmpty();
974    }
975
976    /**
977     * @param value {@link #gender} (Administrative Gender.). This is the underlying object with id, value and extensions. The accessor "getGender" gives direct access to the value
978     */
979    public Person setGenderElement(Enumeration<AdministrativeGender> value) { 
980      this.gender = value;
981      return this;
982    }
983
984    /**
985     * @return Administrative Gender.
986     */
987    public AdministrativeGender getGender() { 
988      return this.gender == null ? null : this.gender.getValue();
989    }
990
991    /**
992     * @param value Administrative Gender.
993     */
994    public Person setGender(AdministrativeGender value) { 
995      if (value == null)
996        this.gender = null;
997      else {
998        if (this.gender == null)
999          this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory());
1000        this.gender.setValue(value);
1001      }
1002      return this;
1003    }
1004
1005    /**
1006     * @return {@link #birthDate} (The birth date for the person.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value
1007     */
1008    public DateType getBirthDateElement() { 
1009      if (this.birthDate == null)
1010        if (Configuration.errorOnAutoCreate())
1011          throw new Error("Attempt to auto-create Person.birthDate");
1012        else if (Configuration.doAutoCreate())
1013          this.birthDate = new DateType(); // bb
1014      return this.birthDate;
1015    }
1016
1017    public boolean hasBirthDateElement() { 
1018      return this.birthDate != null && !this.birthDate.isEmpty();
1019    }
1020
1021    public boolean hasBirthDate() { 
1022      return this.birthDate != null && !this.birthDate.isEmpty();
1023    }
1024
1025    /**
1026     * @param value {@link #birthDate} (The birth date for the person.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value
1027     */
1028    public Person setBirthDateElement(DateType value) { 
1029      this.birthDate = value;
1030      return this;
1031    }
1032
1033    /**
1034     * @return The birth date for the person.
1035     */
1036    public Date getBirthDate() { 
1037      return this.birthDate == null ? null : this.birthDate.getValue();
1038    }
1039
1040    /**
1041     * @param value The birth date for the person.
1042     */
1043    public Person setBirthDate(Date value) { 
1044      if (value == null)
1045        this.birthDate = null;
1046      else {
1047        if (this.birthDate == null)
1048          this.birthDate = new DateType();
1049        this.birthDate.setValue(value);
1050      }
1051      return this;
1052    }
1053
1054    /**
1055     * @return {@link #deceased} (Indicates if the individual is deceased or not.)
1056     */
1057    public DataType getDeceased() { 
1058      return this.deceased;
1059    }
1060
1061    /**
1062     * @return {@link #deceased} (Indicates if the individual is deceased or not.)
1063     */
1064    public BooleanType getDeceasedBooleanType() throws FHIRException { 
1065      if (this.deceased == null)
1066        this.deceased = new BooleanType();
1067      if (!(this.deceased instanceof BooleanType))
1068        throw new FHIRException("Type mismatch: the type BooleanType was expected, but "+this.deceased.getClass().getName()+" was encountered");
1069      return (BooleanType) this.deceased;
1070    }
1071
1072    public boolean hasDeceasedBooleanType() { 
1073      return this != null && this.deceased instanceof BooleanType;
1074    }
1075
1076    /**
1077     * @return {@link #deceased} (Indicates if the individual is deceased or not.)
1078     */
1079    public DateTimeType getDeceasedDateTimeType() throws FHIRException { 
1080      if (this.deceased == null)
1081        this.deceased = new DateTimeType();
1082      if (!(this.deceased instanceof DateTimeType))
1083        throw new FHIRException("Type mismatch: the type DateTimeType was expected, but "+this.deceased.getClass().getName()+" was encountered");
1084      return (DateTimeType) this.deceased;
1085    }
1086
1087    public boolean hasDeceasedDateTimeType() { 
1088      return this != null && this.deceased instanceof DateTimeType;
1089    }
1090
1091    public boolean hasDeceased() { 
1092      return this.deceased != null && !this.deceased.isEmpty();
1093    }
1094
1095    /**
1096     * @param value {@link #deceased} (Indicates if the individual is deceased or not.)
1097     */
1098    public Person setDeceased(DataType value) { 
1099      if (value != null && !(value instanceof BooleanType || value instanceof DateTimeType))
1100        throw new FHIRException("Not the right type for Person.deceased[x]: "+value.fhirType());
1101      this.deceased = value;
1102      return this;
1103    }
1104
1105    /**
1106     * @return {@link #address} (One or more addresses for the person.)
1107     */
1108    public List<Address> getAddress() { 
1109      if (this.address == null)
1110        this.address = new ArrayList<Address>();
1111      return this.address;
1112    }
1113
1114    /**
1115     * @return Returns a reference to <code>this</code> for easy method chaining
1116     */
1117    public Person setAddress(List<Address> theAddress) { 
1118      this.address = theAddress;
1119      return this;
1120    }
1121
1122    public boolean hasAddress() { 
1123      if (this.address == null)
1124        return false;
1125      for (Address item : this.address)
1126        if (!item.isEmpty())
1127          return true;
1128      return false;
1129    }
1130
1131    public Address addAddress() { //3
1132      Address t = new Address();
1133      if (this.address == null)
1134        this.address = new ArrayList<Address>();
1135      this.address.add(t);
1136      return t;
1137    }
1138
1139    public Person addAddress(Address t) { //3
1140      if (t == null)
1141        return this;
1142      if (this.address == null)
1143        this.address = new ArrayList<Address>();
1144      this.address.add(t);
1145      return this;
1146    }
1147
1148    /**
1149     * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist {3}
1150     */
1151    public Address getAddressFirstRep() { 
1152      if (getAddress().isEmpty()) {
1153        addAddress();
1154      }
1155      return getAddress().get(0);
1156    }
1157
1158    /**
1159     * @return {@link #maritalStatus} (This field contains a person's most recent marital (civil) status.)
1160     */
1161    public CodeableConcept getMaritalStatus() { 
1162      if (this.maritalStatus == null)
1163        if (Configuration.errorOnAutoCreate())
1164          throw new Error("Attempt to auto-create Person.maritalStatus");
1165        else if (Configuration.doAutoCreate())
1166          this.maritalStatus = new CodeableConcept(); // cc
1167      return this.maritalStatus;
1168    }
1169
1170    public boolean hasMaritalStatus() { 
1171      return this.maritalStatus != null && !this.maritalStatus.isEmpty();
1172    }
1173
1174    /**
1175     * @param value {@link #maritalStatus} (This field contains a person's most recent marital (civil) status.)
1176     */
1177    public Person setMaritalStatus(CodeableConcept value) { 
1178      this.maritalStatus = value;
1179      return this;
1180    }
1181
1182    /**
1183     * @return {@link #photo} (An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.)
1184     */
1185    public List<Attachment> getPhoto() { 
1186      if (this.photo == null)
1187        this.photo = new ArrayList<Attachment>();
1188      return this.photo;
1189    }
1190
1191    /**
1192     * @return Returns a reference to <code>this</code> for easy method chaining
1193     */
1194    public Person setPhoto(List<Attachment> thePhoto) { 
1195      this.photo = thePhoto;
1196      return this;
1197    }
1198
1199    public boolean hasPhoto() { 
1200      if (this.photo == null)
1201        return false;
1202      for (Attachment item : this.photo)
1203        if (!item.isEmpty())
1204          return true;
1205      return false;
1206    }
1207
1208    public Attachment addPhoto() { //3
1209      Attachment t = new Attachment();
1210      if (this.photo == null)
1211        this.photo = new ArrayList<Attachment>();
1212      this.photo.add(t);
1213      return t;
1214    }
1215
1216    public Person addPhoto(Attachment t) { //3
1217      if (t == null)
1218        return this;
1219      if (this.photo == null)
1220        this.photo = new ArrayList<Attachment>();
1221      this.photo.add(t);
1222      return this;
1223    }
1224
1225    /**
1226     * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist {3}
1227     */
1228    public Attachment getPhotoFirstRep() { 
1229      if (getPhoto().isEmpty()) {
1230        addPhoto();
1231      }
1232      return getPhoto().get(0);
1233    }
1234
1235    /**
1236     * @return {@link #communication} (A language which may be used to communicate with the person about his or her health.)
1237     */
1238    public List<PersonCommunicationComponent> getCommunication() { 
1239      if (this.communication == null)
1240        this.communication = new ArrayList<PersonCommunicationComponent>();
1241      return this.communication;
1242    }
1243
1244    /**
1245     * @return Returns a reference to <code>this</code> for easy method chaining
1246     */
1247    public Person setCommunication(List<PersonCommunicationComponent> theCommunication) { 
1248      this.communication = theCommunication;
1249      return this;
1250    }
1251
1252    public boolean hasCommunication() { 
1253      if (this.communication == null)
1254        return false;
1255      for (PersonCommunicationComponent item : this.communication)
1256        if (!item.isEmpty())
1257          return true;
1258      return false;
1259    }
1260
1261    public PersonCommunicationComponent addCommunication() { //3
1262      PersonCommunicationComponent t = new PersonCommunicationComponent();
1263      if (this.communication == null)
1264        this.communication = new ArrayList<PersonCommunicationComponent>();
1265      this.communication.add(t);
1266      return t;
1267    }
1268
1269    public Person addCommunication(PersonCommunicationComponent t) { //3
1270      if (t == null)
1271        return this;
1272      if (this.communication == null)
1273        this.communication = new ArrayList<PersonCommunicationComponent>();
1274      this.communication.add(t);
1275      return this;
1276    }
1277
1278    /**
1279     * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3}
1280     */
1281    public PersonCommunicationComponent getCommunicationFirstRep() { 
1282      if (getCommunication().isEmpty()) {
1283        addCommunication();
1284      }
1285      return getCommunication().get(0);
1286    }
1287
1288    /**
1289     * @return {@link #managingOrganization} (The organization that is the custodian of the person record.)
1290     */
1291    public Reference getManagingOrganization() { 
1292      if (this.managingOrganization == null)
1293        if (Configuration.errorOnAutoCreate())
1294          throw new Error("Attempt to auto-create Person.managingOrganization");
1295        else if (Configuration.doAutoCreate())
1296          this.managingOrganization = new Reference(); // cc
1297      return this.managingOrganization;
1298    }
1299
1300    public boolean hasManagingOrganization() { 
1301      return this.managingOrganization != null && !this.managingOrganization.isEmpty();
1302    }
1303
1304    /**
1305     * @param value {@link #managingOrganization} (The organization that is the custodian of the person record.)
1306     */
1307    public Person setManagingOrganization(Reference value) { 
1308      this.managingOrganization = value;
1309      return this;
1310    }
1311
1312    /**
1313     * @return {@link #link} (Link to a resource that concerns the same actual person.)
1314     */
1315    public List<PersonLinkComponent> getLink() { 
1316      if (this.link == null)
1317        this.link = new ArrayList<PersonLinkComponent>();
1318      return this.link;
1319    }
1320
1321    /**
1322     * @return Returns a reference to <code>this</code> for easy method chaining
1323     */
1324    public Person setLink(List<PersonLinkComponent> theLink) { 
1325      this.link = theLink;
1326      return this;
1327    }
1328
1329    public boolean hasLink() { 
1330      if (this.link == null)
1331        return false;
1332      for (PersonLinkComponent item : this.link)
1333        if (!item.isEmpty())
1334          return true;
1335      return false;
1336    }
1337
1338    public PersonLinkComponent addLink() { //3
1339      PersonLinkComponent t = new PersonLinkComponent();
1340      if (this.link == null)
1341        this.link = new ArrayList<PersonLinkComponent>();
1342      this.link.add(t);
1343      return t;
1344    }
1345
1346    public Person addLink(PersonLinkComponent t) { //3
1347      if (t == null)
1348        return this;
1349      if (this.link == null)
1350        this.link = new ArrayList<PersonLinkComponent>();
1351      this.link.add(t);
1352      return this;
1353    }
1354
1355    /**
1356     * @return The first repetition of repeating field {@link #link}, creating it if it does not already exist {3}
1357     */
1358    public PersonLinkComponent getLinkFirstRep() { 
1359      if (getLink().isEmpty()) {
1360        addLink();
1361      }
1362      return getLink().get(0);
1363    }
1364
1365      protected void listChildren(List<Property> children) {
1366        super.listChildren(children);
1367        children.add(new Property("identifier", "Identifier", "Identifier for a person within a particular scope.", 0, java.lang.Integer.MAX_VALUE, identifier));
1368        children.add(new Property("active", "boolean", "Whether this person's record is in active use.", 0, 1, active));
1369        children.add(new Property("name", "HumanName", "A name associated with the person.", 0, java.lang.Integer.MAX_VALUE, name));
1370        children.add(new Property("telecom", "ContactPoint", "A contact detail for the person, e.g. a telephone number or an email address.", 0, java.lang.Integer.MAX_VALUE, telecom));
1371        children.add(new Property("gender", "code", "Administrative Gender.", 0, 1, gender));
1372        children.add(new Property("birthDate", "date", "The birth date for the person.", 0, 1, birthDate));
1373        children.add(new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased));
1374        children.add(new Property("address", "Address", "One or more addresses for the person.", 0, java.lang.Integer.MAX_VALUE, address));
1375        children.add(new Property("maritalStatus", "CodeableConcept", "This field contains a person's most recent marital (civil) status.", 0, 1, maritalStatus));
1376        children.add(new Property("photo", "Attachment", "An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.", 0, java.lang.Integer.MAX_VALUE, photo));
1377        children.add(new Property("communication", "", "A language which may be used to communicate with the person about his or her health.", 0, java.lang.Integer.MAX_VALUE, communication));
1378        children.add(new Property("managingOrganization", "Reference(Organization)", "The organization that is the custodian of the person record.", 0, 1, managingOrganization));
1379        children.add(new Property("link", "", "Link to a resource that concerns the same actual person.", 0, java.lang.Integer.MAX_VALUE, link));
1380      }
1381
1382      @Override
1383      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
1384        switch (_hash) {
1385        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for a person within a particular scope.", 0, java.lang.Integer.MAX_VALUE, identifier);
1386        case -1422950650: /*active*/  return new Property("active", "boolean", "Whether this person's record is in active use.", 0, 1, active);
1387        case 3373707: /*name*/  return new Property("name", "HumanName", "A name associated with the person.", 0, java.lang.Integer.MAX_VALUE, name);
1388        case -1429363305: /*telecom*/  return new Property("telecom", "ContactPoint", "A contact detail for the person, e.g. a telephone number or an email address.", 0, java.lang.Integer.MAX_VALUE, telecom);
1389        case -1249512767: /*gender*/  return new Property("gender", "code", "Administrative Gender.", 0, 1, gender);
1390        case -1210031859: /*birthDate*/  return new Property("birthDate", "date", "The birth date for the person.", 0, 1, birthDate);
1391        case -1311442804: /*deceased[x]*/  return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased);
1392        case 561497972: /*deceased*/  return new Property("deceased[x]", "boolean|dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased);
1393        case 497463828: /*deceasedBoolean*/  return new Property("deceased[x]", "boolean", "Indicates if the individual is deceased or not.", 0, 1, deceased);
1394        case -1971804369: /*deceasedDateTime*/  return new Property("deceased[x]", "dateTime", "Indicates if the individual is deceased or not.", 0, 1, deceased);
1395        case -1147692044: /*address*/  return new Property("address", "Address", "One or more addresses for the person.", 0, java.lang.Integer.MAX_VALUE, address);
1396        case 1756919302: /*maritalStatus*/  return new Property("maritalStatus", "CodeableConcept", "This field contains a person's most recent marital (civil) status.", 0, 1, maritalStatus);
1397        case 106642994: /*photo*/  return new Property("photo", "Attachment", "An image that can be displayed as a thumbnail of the person to enhance the identification of the individual.", 0, java.lang.Integer.MAX_VALUE, photo);
1398        case -1035284522: /*communication*/  return new Property("communication", "", "A language which may be used to communicate with the person about his or her health.", 0, java.lang.Integer.MAX_VALUE, communication);
1399        case -2058947787: /*managingOrganization*/  return new Property("managingOrganization", "Reference(Organization)", "The organization that is the custodian of the person record.", 0, 1, managingOrganization);
1400        case 3321850: /*link*/  return new Property("link", "", "Link to a resource that concerns the same actual person.", 0, java.lang.Integer.MAX_VALUE, link);
1401        default: return super.getNamedProperty(_hash, _name, _checkValid);
1402        }
1403
1404      }
1405
1406      @Override
1407      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1408        switch (hash) {
1409        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1410        case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType
1411        case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName
1412        case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint
1413        case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender>
1414        case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType
1415        case 561497972: /*deceased*/ return this.deceased == null ? new Base[0] : new Base[] {this.deceased}; // DataType
1416        case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address
1417        case 1756919302: /*maritalStatus*/ return this.maritalStatus == null ? new Base[0] : new Base[] {this.maritalStatus}; // CodeableConcept
1418        case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment
1419        case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // PersonCommunicationComponent
1420        case -2058947787: /*managingOrganization*/ return this.managingOrganization == null ? new Base[0] : new Base[] {this.managingOrganization}; // Reference
1421        case 3321850: /*link*/ return this.link == null ? new Base[0] : this.link.toArray(new Base[this.link.size()]); // PersonLinkComponent
1422        default: return super.getProperty(hash, name, checkValid);
1423        }
1424
1425      }
1426
1427      @Override
1428      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1429        switch (hash) {
1430        case -1618432855: // identifier
1431          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1432          return value;
1433        case -1422950650: // active
1434          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1435          return value;
1436        case 3373707: // name
1437          this.getName().add(TypeConvertor.castToHumanName(value)); // HumanName
1438          return value;
1439        case -1429363305: // telecom
1440          this.getTelecom().add(TypeConvertor.castToContactPoint(value)); // ContactPoint
1441          return value;
1442        case -1249512767: // gender
1443          value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value));
1444          this.gender = (Enumeration) value; // Enumeration<AdministrativeGender>
1445          return value;
1446        case -1210031859: // birthDate
1447          this.birthDate = TypeConvertor.castToDate(value); // DateType
1448          return value;
1449        case 561497972: // deceased
1450          this.deceased = TypeConvertor.castToType(value); // DataType
1451          return value;
1452        case -1147692044: // address
1453          this.getAddress().add(TypeConvertor.castToAddress(value)); // Address
1454          return value;
1455        case 1756919302: // maritalStatus
1456          this.maritalStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1457          return value;
1458        case 106642994: // photo
1459          this.getPhoto().add(TypeConvertor.castToAttachment(value)); // Attachment
1460          return value;
1461        case -1035284522: // communication
1462          this.getCommunication().add((PersonCommunicationComponent) value); // PersonCommunicationComponent
1463          return value;
1464        case -2058947787: // managingOrganization
1465          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
1466          return value;
1467        case 3321850: // link
1468          this.getLink().add((PersonLinkComponent) value); // PersonLinkComponent
1469          return value;
1470        default: return super.setProperty(hash, name, value);
1471        }
1472
1473      }
1474
1475      @Override
1476      public Base setProperty(String name, Base value) throws FHIRException {
1477        if (name.equals("identifier")) {
1478          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1479        } else if (name.equals("active")) {
1480          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1481        } else if (name.equals("name")) {
1482          this.getName().add(TypeConvertor.castToHumanName(value));
1483        } else if (name.equals("telecom")) {
1484          this.getTelecom().add(TypeConvertor.castToContactPoint(value));
1485        } else if (name.equals("gender")) {
1486          value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value));
1487          this.gender = (Enumeration) value; // Enumeration<AdministrativeGender>
1488        } else if (name.equals("birthDate")) {
1489          this.birthDate = TypeConvertor.castToDate(value); // DateType
1490        } else if (name.equals("deceased[x]")) {
1491          this.deceased = TypeConvertor.castToType(value); // DataType
1492        } else if (name.equals("address")) {
1493          this.getAddress().add(TypeConvertor.castToAddress(value));
1494        } else if (name.equals("maritalStatus")) {
1495          this.maritalStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
1496        } else if (name.equals("photo")) {
1497          this.getPhoto().add(TypeConvertor.castToAttachment(value));
1498        } else if (name.equals("communication")) {
1499          this.getCommunication().add((PersonCommunicationComponent) value);
1500        } else if (name.equals("managingOrganization")) {
1501          this.managingOrganization = TypeConvertor.castToReference(value); // Reference
1502        } else if (name.equals("link")) {
1503          this.getLink().add((PersonLinkComponent) value);
1504        } else
1505          return super.setProperty(name, value);
1506        return value;
1507      }
1508
1509      @Override
1510      public Base makeProperty(int hash, String name) throws FHIRException {
1511        switch (hash) {
1512        case -1618432855:  return addIdentifier(); 
1513        case -1422950650:  return getActiveElement();
1514        case 3373707:  return addName(); 
1515        case -1429363305:  return addTelecom(); 
1516        case -1249512767:  return getGenderElement();
1517        case -1210031859:  return getBirthDateElement();
1518        case -1311442804:  return getDeceased();
1519        case 561497972:  return getDeceased();
1520        case -1147692044:  return addAddress(); 
1521        case 1756919302:  return getMaritalStatus();
1522        case 106642994:  return addPhoto(); 
1523        case -1035284522:  return addCommunication(); 
1524        case -2058947787:  return getManagingOrganization();
1525        case 3321850:  return addLink(); 
1526        default: return super.makeProperty(hash, name);
1527        }
1528
1529      }
1530
1531      @Override
1532      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1533        switch (hash) {
1534        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1535        case -1422950650: /*active*/ return new String[] {"boolean"};
1536        case 3373707: /*name*/ return new String[] {"HumanName"};
1537        case -1429363305: /*telecom*/ return new String[] {"ContactPoint"};
1538        case -1249512767: /*gender*/ return new String[] {"code"};
1539        case -1210031859: /*birthDate*/ return new String[] {"date"};
1540        case 561497972: /*deceased*/ return new String[] {"boolean", "dateTime"};
1541        case -1147692044: /*address*/ return new String[] {"Address"};
1542        case 1756919302: /*maritalStatus*/ return new String[] {"CodeableConcept"};
1543        case 106642994: /*photo*/ return new String[] {"Attachment"};
1544        case -1035284522: /*communication*/ return new String[] {};
1545        case -2058947787: /*managingOrganization*/ return new String[] {"Reference"};
1546        case 3321850: /*link*/ return new String[] {};
1547        default: return super.getTypesForProperty(hash, name);
1548        }
1549
1550      }
1551
1552      @Override
1553      public Base addChild(String name) throws FHIRException {
1554        if (name.equals("identifier")) {
1555          return addIdentifier();
1556        }
1557        else if (name.equals("active")) {
1558          throw new FHIRException("Cannot call addChild on a singleton property Person.active");
1559        }
1560        else if (name.equals("name")) {
1561          return addName();
1562        }
1563        else if (name.equals("telecom")) {
1564          return addTelecom();
1565        }
1566        else if (name.equals("gender")) {
1567          throw new FHIRException("Cannot call addChild on a singleton property Person.gender");
1568        }
1569        else if (name.equals("birthDate")) {
1570          throw new FHIRException("Cannot call addChild on a singleton property Person.birthDate");
1571        }
1572        else if (name.equals("deceasedBoolean")) {
1573          this.deceased = new BooleanType();
1574          return this.deceased;
1575        }
1576        else if (name.equals("deceasedDateTime")) {
1577          this.deceased = new DateTimeType();
1578          return this.deceased;
1579        }
1580        else if (name.equals("address")) {
1581          return addAddress();
1582        }
1583        else if (name.equals("maritalStatus")) {
1584          this.maritalStatus = new CodeableConcept();
1585          return this.maritalStatus;
1586        }
1587        else if (name.equals("photo")) {
1588          return addPhoto();
1589        }
1590        else if (name.equals("communication")) {
1591          return addCommunication();
1592        }
1593        else if (name.equals("managingOrganization")) {
1594          this.managingOrganization = new Reference();
1595          return this.managingOrganization;
1596        }
1597        else if (name.equals("link")) {
1598          return addLink();
1599        }
1600        else
1601          return super.addChild(name);
1602      }
1603
1604  public String fhirType() {
1605    return "Person";
1606
1607  }
1608
1609      public Person copy() {
1610        Person dst = new Person();
1611        copyValues(dst);
1612        return dst;
1613      }
1614
1615      public void copyValues(Person dst) {
1616        super.copyValues(dst);
1617        if (identifier != null) {
1618          dst.identifier = new ArrayList<Identifier>();
1619          for (Identifier i : identifier)
1620            dst.identifier.add(i.copy());
1621        };
1622        dst.active = active == null ? null : active.copy();
1623        if (name != null) {
1624          dst.name = new ArrayList<HumanName>();
1625          for (HumanName i : name)
1626            dst.name.add(i.copy());
1627        };
1628        if (telecom != null) {
1629          dst.telecom = new ArrayList<ContactPoint>();
1630          for (ContactPoint i : telecom)
1631            dst.telecom.add(i.copy());
1632        };
1633        dst.gender = gender == null ? null : gender.copy();
1634        dst.birthDate = birthDate == null ? null : birthDate.copy();
1635        dst.deceased = deceased == null ? null : deceased.copy();
1636        if (address != null) {
1637          dst.address = new ArrayList<Address>();
1638          for (Address i : address)
1639            dst.address.add(i.copy());
1640        };
1641        dst.maritalStatus = maritalStatus == null ? null : maritalStatus.copy();
1642        if (photo != null) {
1643          dst.photo = new ArrayList<Attachment>();
1644          for (Attachment i : photo)
1645            dst.photo.add(i.copy());
1646        };
1647        if (communication != null) {
1648          dst.communication = new ArrayList<PersonCommunicationComponent>();
1649          for (PersonCommunicationComponent i : communication)
1650            dst.communication.add(i.copy());
1651        };
1652        dst.managingOrganization = managingOrganization == null ? null : managingOrganization.copy();
1653        if (link != null) {
1654          dst.link = new ArrayList<PersonLinkComponent>();
1655          for (PersonLinkComponent i : link)
1656            dst.link.add(i.copy());
1657        };
1658      }
1659
1660      protected Person typedCopy() {
1661        return copy();
1662      }
1663
1664      @Override
1665      public boolean equalsDeep(Base other_) {
1666        if (!super.equalsDeep(other_))
1667          return false;
1668        if (!(other_ instanceof Person))
1669          return false;
1670        Person o = (Person) other_;
1671        return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(name, o.name, true)
1672           && compareDeep(telecom, o.telecom, true) && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true)
1673           && compareDeep(deceased, o.deceased, true) && compareDeep(address, o.address, true) && compareDeep(maritalStatus, o.maritalStatus, true)
1674           && compareDeep(photo, o.photo, true) && compareDeep(communication, o.communication, true) && compareDeep(managingOrganization, o.managingOrganization, true)
1675           && compareDeep(link, o.link, true);
1676      }
1677
1678      @Override
1679      public boolean equalsShallow(Base other_) {
1680        if (!super.equalsShallow(other_))
1681          return false;
1682        if (!(other_ instanceof Person))
1683          return false;
1684        Person o = (Person) other_;
1685        return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true)
1686          ;
1687      }
1688
1689      public boolean isEmpty() {
1690        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, name
1691          , telecom, gender, birthDate, deceased, address, maritalStatus, photo, communication
1692          , managingOrganization, link);
1693      }
1694
1695  @Override
1696  public ResourceType getResourceType() {
1697    return ResourceType.Person;
1698   }
1699
1700 /**
1701   * Search parameter: <b>death-date</b>
1702   * <p>
1703   * Description: <b>The date of death has been provided and satisfies this search value</b><br>
1704   * Type: <b>date</b><br>
1705   * Path: <b>(Person.deceased.ofType(dateTime))</b><br>
1706   * </p>
1707   */
1708  @SearchParamDefinition(name="death-date", path="(Person.deceased.ofType(dateTime))", description="The date of death has been provided and satisfies this search value", type="date" )
1709  public static final String SP_DEATH_DATE = "death-date";
1710 /**
1711   * <b>Fluent Client</b> search parameter constant for <b>death-date</b>
1712   * <p>
1713   * Description: <b>The date of death has been provided and satisfies this search value</b><br>
1714   * Type: <b>date</b><br>
1715   * Path: <b>(Person.deceased.ofType(dateTime))</b><br>
1716   * </p>
1717   */
1718  public static final ca.uhn.fhir.rest.gclient.DateClientParam DEATH_DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DEATH_DATE);
1719
1720 /**
1721   * Search parameter: <b>deceased</b>
1722   * <p>
1723   * Description: <b>This person has been marked as deceased, or has a death date entered</b><br>
1724   * Type: <b>token</b><br>
1725   * Path: <b>Person.deceased.exists() and Person.deceased != false</b><br>
1726   * </p>
1727   */
1728  @SearchParamDefinition(name="deceased", path="Person.deceased.exists() and Person.deceased != false", description="This person has been marked as deceased, or has a death date entered", type="token" )
1729  public static final String SP_DECEASED = "deceased";
1730 /**
1731   * <b>Fluent Client</b> search parameter constant for <b>deceased</b>
1732   * <p>
1733   * Description: <b>This person has been marked as deceased, or has a death date entered</b><br>
1734   * Type: <b>token</b><br>
1735   * Path: <b>Person.deceased.exists() and Person.deceased != false</b><br>
1736   * </p>
1737   */
1738  public static final ca.uhn.fhir.rest.gclient.TokenClientParam DECEASED = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DECEASED);
1739
1740 /**
1741   * Search parameter: <b>family</b>
1742   * <p>
1743   * Description: <b>A portion of the family name of the person</b><br>
1744   * Type: <b>string</b><br>
1745   * Path: <b>Person.name.family</b><br>
1746   * </p>
1747   */
1748  @SearchParamDefinition(name="family", path="Person.name.family", description="A portion of the family name of the person", type="string" )
1749  public static final String SP_FAMILY = "family";
1750 /**
1751   * <b>Fluent Client</b> search parameter constant for <b>family</b>
1752   * <p>
1753   * Description: <b>A portion of the family name of the person</b><br>
1754   * Type: <b>string</b><br>
1755   * Path: <b>Person.name.family</b><br>
1756   * </p>
1757   */
1758  public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY);
1759
1760 /**
1761   * Search parameter: <b>given</b>
1762   * <p>
1763   * Description: <b>A portion of the given name of the person</b><br>
1764   * Type: <b>string</b><br>
1765   * Path: <b>Person.name.given</b><br>
1766   * </p>
1767   */
1768  @SearchParamDefinition(name="given", path="Person.name.given", description="A portion of the given name of the person", type="string" )
1769  public static final String SP_GIVEN = "given";
1770 /**
1771   * <b>Fluent Client</b> search parameter constant for <b>given</b>
1772   * <p>
1773   * Description: <b>A portion of the given name of the person</b><br>
1774   * Type: <b>string</b><br>
1775   * Path: <b>Person.name.given</b><br>
1776   * </p>
1777   */
1778  public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN);
1779
1780 /**
1781   * Search parameter: <b>link</b>
1782   * <p>
1783   * Description: <b>Any link has this Patient, Person, RelatedPerson or Practitioner reference</b><br>
1784   * Type: <b>reference</b><br>
1785   * Path: <b>Person.link.target</b><br>
1786   * </p>
1787   */
1788  @SearchParamDefinition(name="link", path="Person.link.target", description="Any link has this Patient, Person, RelatedPerson or Practitioner reference", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={Patient.class, Person.class, Practitioner.class, RelatedPerson.class } )
1789  public static final String SP_LINK = "link";
1790 /**
1791   * <b>Fluent Client</b> search parameter constant for <b>link</b>
1792   * <p>
1793   * Description: <b>Any link has this Patient, Person, RelatedPerson or Practitioner reference</b><br>
1794   * Type: <b>reference</b><br>
1795   * Path: <b>Person.link.target</b><br>
1796   * </p>
1797   */
1798  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LINK = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LINK);
1799
1800/**
1801   * Constant for fluent queries to be used to add include statements. Specifies
1802   * the path value of "<b>Person:link</b>".
1803   */
1804  public static final ca.uhn.fhir.model.api.Include INCLUDE_LINK = new ca.uhn.fhir.model.api.Include("Person:link").toLocked();
1805
1806 /**
1807   * Search parameter: <b>name</b>
1808   * <p>
1809   * Description: <b>A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text</b><br>
1810   * Type: <b>string</b><br>
1811   * Path: <b>Person.name</b><br>
1812   * </p>
1813   */
1814  @SearchParamDefinition(name="name", path="Person.name", description="A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text", type="string" )
1815  public static final String SP_NAME = "name";
1816 /**
1817   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1818   * <p>
1819   * Description: <b>A server defined search that may match any of the string fields in the HumanName, including family, give, prefix, suffix, suffix, and/or text</b><br>
1820   * Type: <b>string</b><br>
1821   * Path: <b>Person.name</b><br>
1822   * </p>
1823   */
1824  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1825
1826 /**
1827   * Search parameter: <b>organization</b>
1828   * <p>
1829   * Description: <b>The organization at which this person record is being managed</b><br>
1830   * Type: <b>reference</b><br>
1831   * Path: <b>Person.managingOrganization</b><br>
1832   * </p>
1833   */
1834  @SearchParamDefinition(name="organization", path="Person.managingOrganization", description="The organization at which this person record is being managed", type="reference", target={Organization.class } )
1835  public static final String SP_ORGANIZATION = "organization";
1836 /**
1837   * <b>Fluent Client</b> search parameter constant for <b>organization</b>
1838   * <p>
1839   * Description: <b>The organization at which this person record is being managed</b><br>
1840   * Type: <b>reference</b><br>
1841   * Path: <b>Person.managingOrganization</b><br>
1842   * </p>
1843   */
1844  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ORGANIZATION);
1845
1846/**
1847   * Constant for fluent queries to be used to add include statements. Specifies
1848   * the path value of "<b>Person:organization</b>".
1849   */
1850  public static final ca.uhn.fhir.model.api.Include INCLUDE_ORGANIZATION = new ca.uhn.fhir.model.api.Include("Person:organization").toLocked();
1851
1852 /**
1853   * Search parameter: <b>practitioner</b>
1854   * <p>
1855   * Description: <b>The Person links to this Practitioner</b><br>
1856   * Type: <b>reference</b><br>
1857   * Path: <b>Person.link.target.where(resolve() is Practitioner)</b><br>
1858   * </p>
1859   */
1860  @SearchParamDefinition(name="practitioner", path="Person.link.target.where(resolve() is Practitioner)", description="The Person links to this Practitioner", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner") }, target={Practitioner.class } )
1861  public static final String SP_PRACTITIONER = "practitioner";
1862 /**
1863   * <b>Fluent Client</b> search parameter constant for <b>practitioner</b>
1864   * <p>
1865   * Description: <b>The Person links to this Practitioner</b><br>
1866   * Type: <b>reference</b><br>
1867   * Path: <b>Person.link.target.where(resolve() is Practitioner)</b><br>
1868   * </p>
1869   */
1870  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRACTITIONER = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRACTITIONER);
1871
1872/**
1873   * Constant for fluent queries to be used to add include statements. Specifies
1874   * the path value of "<b>Person:practitioner</b>".
1875   */
1876  public static final ca.uhn.fhir.model.api.Include INCLUDE_PRACTITIONER = new ca.uhn.fhir.model.api.Include("Person:practitioner").toLocked();
1877
1878 /**
1879   * Search parameter: <b>relatedperson</b>
1880   * <p>
1881   * Description: <b>The Person links to this RelatedPerson</b><br>
1882   * Type: <b>reference</b><br>
1883   * Path: <b>Person.link.target.where(resolve() is RelatedPerson)</b><br>
1884   * </p>
1885   */
1886  @SearchParamDefinition(name="relatedperson", path="Person.link.target.where(resolve() is RelatedPerson)", description="The Person links to this RelatedPerson", type="reference", target={RelatedPerson.class } )
1887  public static final String SP_RELATEDPERSON = "relatedperson";
1888 /**
1889   * <b>Fluent Client</b> search parameter constant for <b>relatedperson</b>
1890   * <p>
1891   * Description: <b>The Person links to this RelatedPerson</b><br>
1892   * Type: <b>reference</b><br>
1893   * Path: <b>Person.link.target.where(resolve() is RelatedPerson)</b><br>
1894   * </p>
1895   */
1896  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam RELATEDPERSON = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_RELATEDPERSON);
1897
1898/**
1899   * Constant for fluent queries to be used to add include statements. Specifies
1900   * the path value of "<b>Person:relatedperson</b>".
1901   */
1902  public static final ca.uhn.fhir.model.api.Include INCLUDE_RELATEDPERSON = new ca.uhn.fhir.model.api.Include("Person:relatedperson").toLocked();
1903
1904 /**
1905   * Search parameter: <b>identifier</b>
1906   * <p>
1907   * Description: <b>Multiple Resources: 
1908
1909* [Account](account.html): Account number
1910* [AdverseEvent](adverseevent.html): Business identifier for the event
1911* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1912* [Appointment](appointment.html): An Identifier of the Appointment
1913* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1914* [Basic](basic.html): Business identifier
1915* [BodyStructure](bodystructure.html): Bodystructure identifier
1916* [CarePlan](careplan.html): External Ids for this plan
1917* [CareTeam](careteam.html): External Ids for this team
1918* [ChargeItem](chargeitem.html): Business Identifier for item
1919* [Claim](claim.html): The primary identifier of the financial resource
1920* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1921* [ClinicalImpression](clinicalimpression.html): Business identifier
1922* [Communication](communication.html): Unique identifier
1923* [CommunicationRequest](communicationrequest.html): Unique identifier
1924* [Composition](composition.html): Version-independent identifier for the Composition
1925* [Condition](condition.html): A unique identifier of the condition record
1926* [Consent](consent.html): Identifier for this record (external references)
1927* [Contract](contract.html): The identity of the contract
1928* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1929* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1930* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1931* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1932* [DeviceRequest](devicerequest.html): Business identifier for request/order
1933* [DeviceUsage](deviceusage.html): Search by identifier
1934* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1935* [DocumentReference](documentreference.html): Identifier of the attachment binary
1936* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1937* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1938* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1939* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1940* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1941* [Flag](flag.html): Business identifier
1942* [Goal](goal.html): External Ids for this goal
1943* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1944* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1945* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1946* [Immunization](immunization.html): Business identifier
1947* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1948* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1949* [Invoice](invoice.html): Business Identifier for item
1950* [List](list.html): Business identifier
1951* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1952* [Medication](medication.html): Returns medications with this external identifier
1953* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1954* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1955* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1956* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1957* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1958* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1959* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1960* [Observation](observation.html): The unique id for a particular observation
1961* [Person](person.html): A person Identifier
1962* [Procedure](procedure.html): A unique identifier for a procedure
1963* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1964* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1965* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1966* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1967* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1968* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1969* [Specimen](specimen.html): The unique identifier associated with the specimen
1970* [SupplyDelivery](supplydelivery.html): External identifier
1971* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1972* [Task](task.html): Search for a task instance by its business identifier
1973* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1974</b><br>
1975   * Type: <b>token</b><br>
1976   * 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>
1977   * </p>
1978   */
1979  @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" )
1980  public static final String SP_IDENTIFIER = "identifier";
1981 /**
1982   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1983   * <p>
1984   * Description: <b>Multiple Resources: 
1985
1986* [Account](account.html): Account number
1987* [AdverseEvent](adverseevent.html): Business identifier for the event
1988* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1989* [Appointment](appointment.html): An Identifier of the Appointment
1990* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1991* [Basic](basic.html): Business identifier
1992* [BodyStructure](bodystructure.html): Bodystructure identifier
1993* [CarePlan](careplan.html): External Ids for this plan
1994* [CareTeam](careteam.html): External Ids for this team
1995* [ChargeItem](chargeitem.html): Business Identifier for item
1996* [Claim](claim.html): The primary identifier of the financial resource
1997* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1998* [ClinicalImpression](clinicalimpression.html): Business identifier
1999* [Communication](communication.html): Unique identifier
2000* [CommunicationRequest](communicationrequest.html): Unique identifier
2001* [Composition](composition.html): Version-independent identifier for the Composition
2002* [Condition](condition.html): A unique identifier of the condition record
2003* [Consent](consent.html): Identifier for this record (external references)
2004* [Contract](contract.html): The identity of the contract
2005* [Coverage](coverage.html): The primary identifier of the insured and the coverage
2006* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
2007* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
2008* [DetectedIssue](detectedissue.html): Unique id for the detected issue
2009* [DeviceRequest](devicerequest.html): Business identifier for request/order
2010* [DeviceUsage](deviceusage.html): Search by identifier
2011* [DiagnosticReport](diagnosticreport.html): An identifier for the report
2012* [DocumentReference](documentreference.html): Identifier of the attachment binary
2013* [Encounter](encounter.html): Identifier(s) by which this encounter is known
2014* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
2015* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
2016* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
2017* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
2018* [Flag](flag.html): Business identifier
2019* [Goal](goal.html): External Ids for this goal
2020* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
2021* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
2022* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
2023* [Immunization](immunization.html): Business identifier
2024* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
2025* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
2026* [Invoice](invoice.html): Business Identifier for item
2027* [List](list.html): Business identifier
2028* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
2029* [Medication](medication.html): Returns medications with this external identifier
2030* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
2031* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
2032* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
2033* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
2034* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
2035* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
2036* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
2037* [Observation](observation.html): The unique id for a particular observation
2038* [Person](person.html): A person Identifier
2039* [Procedure](procedure.html): A unique identifier for a procedure
2040* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
2041* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
2042* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
2043* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
2044* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
2045* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
2046* [Specimen](specimen.html): The unique identifier associated with the specimen
2047* [SupplyDelivery](supplydelivery.html): External identifier
2048* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
2049* [Task](task.html): Search for a task instance by its business identifier
2050* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
2051</b><br>
2052   * Type: <b>token</b><br>
2053   * 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>
2054   * </p>
2055   */
2056  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
2057
2058 /**
2059   * Search parameter: <b>patient</b>
2060   * <p>
2061   * Description: <b>Multiple Resources: 
2062
2063* [Account](account.html): The entity that caused the expenses
2064* [AdverseEvent](adverseevent.html): Subject impacted by event
2065* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2066* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2067* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2068* [AuditEvent](auditevent.html): Where the activity involved patient data
2069* [Basic](basic.html): Identifies the focus of this resource
2070* [BodyStructure](bodystructure.html): Who this is about
2071* [CarePlan](careplan.html): Who the care plan is for
2072* [CareTeam](careteam.html): Who care team is for
2073* [ChargeItem](chargeitem.html): Individual service was done for/to
2074* [Claim](claim.html): Patient receiving the products or services
2075* [ClaimResponse](claimresponse.html): The subject of care
2076* [ClinicalImpression](clinicalimpression.html): Patient assessed
2077* [Communication](communication.html): Focus of message
2078* [CommunicationRequest](communicationrequest.html): Focus of message
2079* [Composition](composition.html): Who and/or what the composition is about
2080* [Condition](condition.html): Who has the condition?
2081* [Consent](consent.html): Who the consent applies to
2082* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2083* [Coverage](coverage.html): Retrieve coverages for a patient
2084* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2085* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2086* [DetectedIssue](detectedissue.html): Associated patient
2087* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2088* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2089* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2090* [DocumentReference](documentreference.html): Who/what is the subject of the document
2091* [Encounter](encounter.html): The patient present at the encounter
2092* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2093* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2094* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2095* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2096* [Flag](flag.html): The identity of a subject to list flags for
2097* [Goal](goal.html): Who this goal is intended for
2098* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2099* [ImagingSelection](imagingselection.html): Who the study is about
2100* [ImagingStudy](imagingstudy.html): Who the study is about
2101* [Immunization](immunization.html): The patient for the vaccination record
2102* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2103* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2104* [Invoice](invoice.html): Recipient(s) of goods and services
2105* [List](list.html): If all resources have the same subject
2106* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2107* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2108* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2109* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2110* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2111* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2112* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2113* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2114* [Observation](observation.html): The subject that the observation is about (if patient)
2115* [Person](person.html): The Person links to this Patient
2116* [Procedure](procedure.html): Search by subject - a patient
2117* [Provenance](provenance.html): Where the activity involved patient data
2118* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2119* [RelatedPerson](relatedperson.html): The patient this related person is related to
2120* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2121* [ResearchSubject](researchsubject.html): Who or what is part of study
2122* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2123* [ServiceRequest](servicerequest.html): Search by subject - a patient
2124* [Specimen](specimen.html): The patient the specimen comes from
2125* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2126* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2127* [Task](task.html): Search by patient
2128* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2129</b><br>
2130   * Type: <b>reference</b><br>
2131   * 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>
2132   * </p>
2133   */
2134  @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", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } )
2135  public static final String SP_PATIENT = "patient";
2136 /**
2137   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
2138   * <p>
2139   * Description: <b>Multiple Resources: 
2140
2141* [Account](account.html): The entity that caused the expenses
2142* [AdverseEvent](adverseevent.html): Subject impacted by event
2143* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
2144* [Appointment](appointment.html): One of the individuals of the appointment is this patient
2145* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
2146* [AuditEvent](auditevent.html): Where the activity involved patient data
2147* [Basic](basic.html): Identifies the focus of this resource
2148* [BodyStructure](bodystructure.html): Who this is about
2149* [CarePlan](careplan.html): Who the care plan is for
2150* [CareTeam](careteam.html): Who care team is for
2151* [ChargeItem](chargeitem.html): Individual service was done for/to
2152* [Claim](claim.html): Patient receiving the products or services
2153* [ClaimResponse](claimresponse.html): The subject of care
2154* [ClinicalImpression](clinicalimpression.html): Patient assessed
2155* [Communication](communication.html): Focus of message
2156* [CommunicationRequest](communicationrequest.html): Focus of message
2157* [Composition](composition.html): Who and/or what the composition is about
2158* [Condition](condition.html): Who has the condition?
2159* [Consent](consent.html): Who the consent applies to
2160* [Contract](contract.html): The identity of the subject of the contract (if a patient)
2161* [Coverage](coverage.html): Retrieve coverages for a patient
2162* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
2163* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
2164* [DetectedIssue](detectedissue.html): Associated patient
2165* [DeviceRequest](devicerequest.html): Individual the service is ordered for
2166* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
2167* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
2168* [DocumentReference](documentreference.html): Who/what is the subject of the document
2169* [Encounter](encounter.html): The patient present at the encounter
2170* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
2171* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
2172* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
2173* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
2174* [Flag](flag.html): The identity of a subject to list flags for
2175* [Goal](goal.html): Who this goal is intended for
2176* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
2177* [ImagingSelection](imagingselection.html): Who the study is about
2178* [ImagingStudy](imagingstudy.html): Who the study is about
2179* [Immunization](immunization.html): The patient for the vaccination record
2180* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
2181* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
2182* [Invoice](invoice.html): Recipient(s) of goods and services
2183* [List](list.html): If all resources have the same subject
2184* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
2185* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
2186* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
2187* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
2188* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
2189* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
2190* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
2191* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
2192* [Observation](observation.html): The subject that the observation is about (if patient)
2193* [Person](person.html): The Person links to this Patient
2194* [Procedure](procedure.html): Search by subject - a patient
2195* [Provenance](provenance.html): Where the activity involved patient data
2196* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
2197* [RelatedPerson](relatedperson.html): The patient this related person is related to
2198* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
2199* [ResearchSubject](researchsubject.html): Who or what is part of study
2200* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
2201* [ServiceRequest](servicerequest.html): Search by subject - a patient
2202* [Specimen](specimen.html): The patient the specimen comes from
2203* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
2204* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
2205* [Task](task.html): Search by patient
2206* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
2207</b><br>
2208   * Type: <b>reference</b><br>
2209   * 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>
2210   * </p>
2211   */
2212  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
2213
2214/**
2215   * Constant for fluent queries to be used to add include statements. Specifies
2216   * the path value of "<b>Person:patient</b>".
2217   */
2218  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Person:patient").toLocked();
2219
2220 /**
2221   * Search parameter: <b>address-city</b>
2222   * <p>
2223   * Description: <b>Multiple Resources: 
2224
2225* [Patient](patient.html): A city specified in an address
2226* [Person](person.html): A city specified in an address
2227* [Practitioner](practitioner.html): A city specified in an address
2228* [RelatedPerson](relatedperson.html): A city specified in an address
2229</b><br>
2230   * Type: <b>string</b><br>
2231   * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br>
2232   * </p>
2233   */
2234  @SearchParamDefinition(name="address-city", path="Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A city specified in an address\r\n* [Person](person.html): A city specified in an address\r\n* [Practitioner](practitioner.html): A city specified in an address\r\n* [RelatedPerson](relatedperson.html): A city specified in an address\r\n", type="string" )
2235  public static final String SP_ADDRESS_CITY = "address-city";
2236 /**
2237   * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
2238   * <p>
2239   * Description: <b>Multiple Resources: 
2240
2241* [Patient](patient.html): A city specified in an address
2242* [Person](person.html): A city specified in an address
2243* [Practitioner](practitioner.html): A city specified in an address
2244* [RelatedPerson](relatedperson.html): A city specified in an address
2245</b><br>
2246   * Type: <b>string</b><br>
2247   * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br>
2248   * </p>
2249   */
2250  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY);
2251
2252 /**
2253   * Search parameter: <b>address-country</b>
2254   * <p>
2255   * Description: <b>Multiple Resources: 
2256
2257* [Patient](patient.html): A country specified in an address
2258* [Person](person.html): A country specified in an address
2259* [Practitioner](practitioner.html): A country specified in an address
2260* [RelatedPerson](relatedperson.html): A country specified in an address
2261</b><br>
2262   * Type: <b>string</b><br>
2263   * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br>
2264   * </p>
2265   */
2266  @SearchParamDefinition(name="address-country", path="Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A country specified in an address\r\n* [Person](person.html): A country specified in an address\r\n* [Practitioner](practitioner.html): A country specified in an address\r\n* [RelatedPerson](relatedperson.html): A country specified in an address\r\n", type="string" )
2267  public static final String SP_ADDRESS_COUNTRY = "address-country";
2268 /**
2269   * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
2270   * <p>
2271   * Description: <b>Multiple Resources: 
2272
2273* [Patient](patient.html): A country specified in an address
2274* [Person](person.html): A country specified in an address
2275* [Practitioner](practitioner.html): A country specified in an address
2276* [RelatedPerson](relatedperson.html): A country specified in an address
2277</b><br>
2278   * Type: <b>string</b><br>
2279   * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br>
2280   * </p>
2281   */
2282  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY);
2283
2284 /**
2285   * Search parameter: <b>address-postalcode</b>
2286   * <p>
2287   * Description: <b>Multiple Resources: 
2288
2289* [Patient](patient.html): A postalCode specified in an address
2290* [Person](person.html): A postal code specified in an address
2291* [Practitioner](practitioner.html): A postalCode specified in an address
2292* [RelatedPerson](relatedperson.html): A postal code specified in an address
2293</b><br>
2294   * Type: <b>string</b><br>
2295   * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br>
2296   * </p>
2297   */
2298  @SearchParamDefinition(name="address-postalcode", path="Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A postalCode specified in an address\r\n* [Person](person.html): A postal code specified in an address\r\n* [Practitioner](practitioner.html): A postalCode specified in an address\r\n* [RelatedPerson](relatedperson.html): A postal code specified in an address\r\n", type="string" )
2299  public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
2300 /**
2301   * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
2302   * <p>
2303   * Description: <b>Multiple Resources: 
2304
2305* [Patient](patient.html): A postalCode specified in an address
2306* [Person](person.html): A postal code specified in an address
2307* [Practitioner](practitioner.html): A postalCode specified in an address
2308* [RelatedPerson](relatedperson.html): A postal code specified in an address
2309</b><br>
2310   * Type: <b>string</b><br>
2311   * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br>
2312   * </p>
2313   */
2314  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE);
2315
2316 /**
2317   * Search parameter: <b>address-state</b>
2318   * <p>
2319   * Description: <b>Multiple Resources: 
2320
2321* [Patient](patient.html): A state specified in an address
2322* [Person](person.html): A state specified in an address
2323* [Practitioner](practitioner.html): A state specified in an address
2324* [RelatedPerson](relatedperson.html): A state specified in an address
2325</b><br>
2326   * Type: <b>string</b><br>
2327   * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br>
2328   * </p>
2329   */
2330  @SearchParamDefinition(name="address-state", path="Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A state specified in an address\r\n* [Person](person.html): A state specified in an address\r\n* [Practitioner](practitioner.html): A state specified in an address\r\n* [RelatedPerson](relatedperson.html): A state specified in an address\r\n", type="string" )
2331  public static final String SP_ADDRESS_STATE = "address-state";
2332 /**
2333   * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
2334   * <p>
2335   * Description: <b>Multiple Resources: 
2336
2337* [Patient](patient.html): A state specified in an address
2338* [Person](person.html): A state specified in an address
2339* [Practitioner](practitioner.html): A state specified in an address
2340* [RelatedPerson](relatedperson.html): A state specified in an address
2341</b><br>
2342   * Type: <b>string</b><br>
2343   * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br>
2344   * </p>
2345   */
2346  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE);
2347
2348 /**
2349   * Search parameter: <b>address-use</b>
2350   * <p>
2351   * Description: <b>Multiple Resources: 
2352
2353* [Patient](patient.html): A use code specified in an address
2354* [Person](person.html): A use code specified in an address
2355* [Practitioner](practitioner.html): A use code specified in an address
2356* [RelatedPerson](relatedperson.html): A use code specified in an address
2357</b><br>
2358   * Type: <b>token</b><br>
2359   * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br>
2360   * </p>
2361   */
2362  @SearchParamDefinition(name="address-use", path="Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A use code specified in an address\r\n* [Person](person.html): A use code specified in an address\r\n* [Practitioner](practitioner.html): A use code specified in an address\r\n* [RelatedPerson](relatedperson.html): A use code specified in an address\r\n", type="token" )
2363  public static final String SP_ADDRESS_USE = "address-use";
2364 /**
2365   * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
2366   * <p>
2367   * Description: <b>Multiple Resources: 
2368
2369* [Patient](patient.html): A use code specified in an address
2370* [Person](person.html): A use code specified in an address
2371* [Practitioner](practitioner.html): A use code specified in an address
2372* [RelatedPerson](relatedperson.html): A use code specified in an address
2373</b><br>
2374   * Type: <b>token</b><br>
2375   * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br>
2376   * </p>
2377   */
2378  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE);
2379
2380 /**
2381   * Search parameter: <b>address</b>
2382   * <p>
2383   * Description: <b>Multiple Resources: 
2384
2385* [Patient](patient.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2386* [Person](person.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2387* [Practitioner](practitioner.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2388* [RelatedPerson](relatedperson.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2389</b><br>
2390   * Type: <b>string</b><br>
2391   * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br>
2392   * </p>
2393   */
2394  @SearchParamDefinition(name="address", path="Patient.address | Person.address | Practitioner.address | RelatedPerson.address", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\r\n* [Person](person.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\r\n* [Practitioner](practitioner.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\r\n* [RelatedPerson](relatedperson.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text\r\n", type="string" )
2395  public static final String SP_ADDRESS = "address";
2396 /**
2397   * <b>Fluent Client</b> search parameter constant for <b>address</b>
2398   * <p>
2399   * Description: <b>Multiple Resources: 
2400
2401* [Patient](patient.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2402* [Person](person.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2403* [Practitioner](practitioner.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2404* [RelatedPerson](relatedperson.html): A server defined search that may match any of the string fields in the Address, including line, city, district, state, country, postalCode, and/or text
2405</b><br>
2406   * Type: <b>string</b><br>
2407   * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br>
2408   * </p>
2409   */
2410  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS);
2411
2412 /**
2413   * Search parameter: <b>birthdate</b>
2414   * <p>
2415   * Description: <b>Multiple Resources: 
2416
2417* [Patient](patient.html): The patient's date of birth
2418* [Person](person.html): The person's date of birth
2419* [RelatedPerson](relatedperson.html): The Related Person's date of birth
2420</b><br>
2421   * Type: <b>date</b><br>
2422   * Path: <b>Patient.birthDate | Person.birthDate | RelatedPerson.birthDate</b><br>
2423   * </p>
2424   */
2425  @SearchParamDefinition(name="birthdate", path="Patient.birthDate | Person.birthDate | RelatedPerson.birthDate", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The patient's date of birth\r\n* [Person](person.html): The person's date of birth\r\n* [RelatedPerson](relatedperson.html): The Related Person's date of birth\r\n", type="date" )
2426  public static final String SP_BIRTHDATE = "birthdate";
2427 /**
2428   * <b>Fluent Client</b> search parameter constant for <b>birthdate</b>
2429   * <p>
2430   * Description: <b>Multiple Resources: 
2431
2432* [Patient](patient.html): The patient's date of birth
2433* [Person](person.html): The person's date of birth
2434* [RelatedPerson](relatedperson.html): The Related Person's date of birth
2435</b><br>
2436   * Type: <b>date</b><br>
2437   * Path: <b>Patient.birthDate | Person.birthDate | RelatedPerson.birthDate</b><br>
2438   * </p>
2439   */
2440  public static final ca.uhn.fhir.rest.gclient.DateClientParam BIRTHDATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_BIRTHDATE);
2441
2442 /**
2443   * Search parameter: <b>email</b>
2444   * <p>
2445   * Description: <b>Multiple Resources: 
2446
2447* [Patient](patient.html): A value in an email contact
2448* [Person](person.html): A value in an email contact
2449* [Practitioner](practitioner.html): A value in an email contact
2450* [PractitionerRole](practitionerrole.html): A value in an email contact
2451* [RelatedPerson](relatedperson.html): A value in an email contact
2452</b><br>
2453   * Type: <b>token</b><br>
2454   * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br>
2455   * </p>
2456   */
2457  @SearchParamDefinition(name="email", path="Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in an email contact\r\n* [Person](person.html): A value in an email contact\r\n* [Practitioner](practitioner.html): A value in an email contact\r\n* [PractitionerRole](practitionerrole.html): A value in an email contact\r\n* [RelatedPerson](relatedperson.html): A value in an email contact\r\n", type="token" )
2458  public static final String SP_EMAIL = "email";
2459 /**
2460   * <b>Fluent Client</b> search parameter constant for <b>email</b>
2461   * <p>
2462   * Description: <b>Multiple Resources: 
2463
2464* [Patient](patient.html): A value in an email contact
2465* [Person](person.html): A value in an email contact
2466* [Practitioner](practitioner.html): A value in an email contact
2467* [PractitionerRole](practitionerrole.html): A value in an email contact
2468* [RelatedPerson](relatedperson.html): A value in an email contact
2469</b><br>
2470   * Type: <b>token</b><br>
2471   * Path: <b>Patient.telecom.where(system='email') | Person.telecom.where(system='email') | Practitioner.telecom.where(system='email') | PractitionerRole.contact.telecom.where(system='email') | RelatedPerson.telecom.where(system='email')</b><br>
2472   * </p>
2473   */
2474  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL);
2475
2476 /**
2477   * Search parameter: <b>gender</b>
2478   * <p>
2479   * Description: <b>Multiple Resources: 
2480
2481* [Patient](patient.html): Gender of the patient
2482* [Person](person.html): The gender of the person
2483* [Practitioner](practitioner.html): Gender of the practitioner
2484* [RelatedPerson](relatedperson.html): Gender of the related person
2485</b><br>
2486   * Type: <b>token</b><br>
2487   * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br>
2488   * </p>
2489   */
2490  @SearchParamDefinition(name="gender", path="Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): Gender of the patient\r\n* [Person](person.html): The gender of the person\r\n* [Practitioner](practitioner.html): Gender of the practitioner\r\n* [RelatedPerson](relatedperson.html): Gender of the related person\r\n", type="token" )
2491  public static final String SP_GENDER = "gender";
2492 /**
2493   * <b>Fluent Client</b> search parameter constant for <b>gender</b>
2494   * <p>
2495   * Description: <b>Multiple Resources: 
2496
2497* [Patient](patient.html): Gender of the patient
2498* [Person](person.html): The gender of the person
2499* [Practitioner](practitioner.html): Gender of the practitioner
2500* [RelatedPerson](relatedperson.html): Gender of the related person
2501</b><br>
2502   * Type: <b>token</b><br>
2503   * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br>
2504   * </p>
2505   */
2506  public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER);
2507
2508 /**
2509   * Search parameter: <b>phone</b>
2510   * <p>
2511   * Description: <b>Multiple Resources: 
2512
2513* [Patient](patient.html): A value in a phone contact
2514* [Person](person.html): A value in a phone contact
2515* [Practitioner](practitioner.html): A value in a phone contact
2516* [PractitionerRole](practitionerrole.html): A value in a phone contact
2517* [RelatedPerson](relatedperson.html): A value in a phone contact
2518</b><br>
2519   * Type: <b>token</b><br>
2520   * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br>
2521   * </p>
2522   */
2523  @SearchParamDefinition(name="phone", path="Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A value in a phone contact\r\n* [Person](person.html): A value in a phone contact\r\n* [Practitioner](practitioner.html): A value in a phone contact\r\n* [PractitionerRole](practitionerrole.html): A value in a phone contact\r\n* [RelatedPerson](relatedperson.html): A value in a phone contact\r\n", type="token" )
2524  public static final String SP_PHONE = "phone";
2525 /**
2526   * <b>Fluent Client</b> search parameter constant for <b>phone</b>
2527   * <p>
2528   * Description: <b>Multiple Resources: 
2529
2530* [Patient](patient.html): A value in a phone contact
2531* [Person](person.html): A value in a phone contact
2532* [Practitioner](practitioner.html): A value in a phone contact
2533* [PractitionerRole](practitionerrole.html): A value in a phone contact
2534* [RelatedPerson](relatedperson.html): A value in a phone contact
2535</b><br>
2536   * Type: <b>token</b><br>
2537   * Path: <b>Patient.telecom.where(system='phone') | Person.telecom.where(system='phone') | Practitioner.telecom.where(system='phone') | PractitionerRole.contact.telecom.where(system='phone') | RelatedPerson.telecom.where(system='phone')</b><br>
2538   * </p>
2539   */
2540  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE);
2541
2542 /**
2543   * Search parameter: <b>phonetic</b>
2544   * <p>
2545   * Description: <b>Multiple Resources: 
2546
2547* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm
2548* [Person](person.html): A portion of name using some kind of phonetic matching algorithm
2549* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm
2550* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm
2551</b><br>
2552   * Type: <b>string</b><br>
2553   * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br>
2554   * </p>
2555   */
2556  @SearchParamDefinition(name="phonetic", path="Patient.name | Person.name | Practitioner.name | RelatedPerson.name", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm\r\n* [Person](person.html): A portion of name using some kind of phonetic matching algorithm\r\n* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm\r\n* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm\r\n", type="string" )
2557  public static final String SP_PHONETIC = "phonetic";
2558 /**
2559   * <b>Fluent Client</b> search parameter constant for <b>phonetic</b>
2560   * <p>
2561   * Description: <b>Multiple Resources: 
2562
2563* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm
2564* [Person](person.html): A portion of name using some kind of phonetic matching algorithm
2565* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm
2566* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm
2567</b><br>
2568   * Type: <b>string</b><br>
2569   * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br>
2570   * </p>
2571   */
2572  public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC);
2573
2574 /**
2575   * Search parameter: <b>telecom</b>
2576   * <p>
2577   * Description: <b>Multiple Resources: 
2578
2579* [Patient](patient.html): The value in any kind of telecom details of the patient
2580* [Person](person.html): The value in any kind of contact
2581* [Practitioner](practitioner.html): The value in any kind of contact
2582* [PractitionerRole](practitionerrole.html): The value in any kind of contact
2583* [RelatedPerson](relatedperson.html): The value in any kind of contact
2584</b><br>
2585   * Type: <b>token</b><br>
2586   * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br>
2587   * </p>
2588   */
2589  @SearchParamDefinition(name="telecom", path="Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom", description="Multiple Resources: \r\n\r\n* [Patient](patient.html): The value in any kind of telecom details of the patient\r\n* [Person](person.html): The value in any kind of contact\r\n* [Practitioner](practitioner.html): The value in any kind of contact\r\n* [PractitionerRole](practitionerrole.html): The value in any kind of contact\r\n* [RelatedPerson](relatedperson.html): The value in any kind of contact\r\n", type="token" )
2590  public static final String SP_TELECOM = "telecom";
2591 /**
2592   * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
2593   * <p>
2594   * Description: <b>Multiple Resources: 
2595
2596* [Patient](patient.html): The value in any kind of telecom details of the patient
2597* [Person](person.html): The value in any kind of contact
2598* [Practitioner](practitioner.html): The value in any kind of contact
2599* [PractitionerRole](practitionerrole.html): The value in any kind of contact
2600* [RelatedPerson](relatedperson.html): The value in any kind of contact
2601</b><br>
2602   * Type: <b>token</b><br>
2603   * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br>
2604   * </p>
2605   */
2606  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM);
2607
2608
2609}
2610