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