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 * Information about a person that is involved in a patient's health or the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
052 */
053@ResourceDef(name="RelatedPerson", profile="http://hl7.org/fhir/StructureDefinition/RelatedPerson")
054public class RelatedPerson extends DomainResource {
055
056    @Block()
057    public static class RelatedPersonCommunicationComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * 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.
060         */
061        @Child(name = "language", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=false, summary=false)
062        @Description(shortDefinition="The language which can be used to communicate with the related person about the patient's 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." )
063        @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/all-languages")
064        protected CodeableConcept language;
065
066        /**
067         * Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).
068         */
069        @Child(name = "preferred", type = {BooleanType.class}, order=2, min=0, max=1, modifier=false, summary=false)
070        @Description(shortDefinition="Language preference indicator", formalDefinition="Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level)." )
071        protected BooleanType preferred;
072
073        private static final long serialVersionUID = 633792918L;
074
075    /**
076     * Constructor
077     */
078      public RelatedPersonCommunicationComponent() {
079        super();
080      }
081
082    /**
083     * Constructor
084     */
085      public RelatedPersonCommunicationComponent(CodeableConcept language) {
086        super();
087        this.setLanguage(language);
088      }
089
090        /**
091         * @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.)
092         */
093        public CodeableConcept getLanguage() { 
094          if (this.language == null)
095            if (Configuration.errorOnAutoCreate())
096              throw new Error("Attempt to auto-create RelatedPersonCommunicationComponent.language");
097            else if (Configuration.doAutoCreate())
098              this.language = new CodeableConcept(); // cc
099          return this.language;
100        }
101
102        public boolean hasLanguage() { 
103          return this.language != null && !this.language.isEmpty();
104        }
105
106        /**
107         * @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.)
108         */
109        public RelatedPersonCommunicationComponent setLanguage(CodeableConcept value) { 
110          this.language = value;
111          return this;
112        }
113
114        /**
115         * @return {@link #preferred} (Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
116         */
117        public BooleanType getPreferredElement() { 
118          if (this.preferred == null)
119            if (Configuration.errorOnAutoCreate())
120              throw new Error("Attempt to auto-create RelatedPersonCommunicationComponent.preferred");
121            else if (Configuration.doAutoCreate())
122              this.preferred = new BooleanType(); // bb
123          return this.preferred;
124        }
125
126        public boolean hasPreferredElement() { 
127          return this.preferred != null && !this.preferred.isEmpty();
128        }
129
130        public boolean hasPreferred() { 
131          return this.preferred != null && !this.preferred.isEmpty();
132        }
133
134        /**
135         * @param value {@link #preferred} (Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).). This is the underlying object with id, value and extensions. The accessor "getPreferred" gives direct access to the value
136         */
137        public RelatedPersonCommunicationComponent setPreferredElement(BooleanType value) { 
138          this.preferred = value;
139          return this;
140        }
141
142        /**
143         * @return Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).
144         */
145        public boolean getPreferred() { 
146          return this.preferred == null || this.preferred.isEmpty() ? false : this.preferred.getValue();
147        }
148
149        /**
150         * @param value Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).
151         */
152        public RelatedPersonCommunicationComponent setPreferred(boolean value) { 
153            if (this.preferred == null)
154              this.preferred = new BooleanType();
155            this.preferred.setValue(value);
156          return this;
157        }
158
159        protected void listChildren(List<Property> children) {
160          super.listChildren(children);
161          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));
162          children.add(new Property("preferred", "boolean", "Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).", 0, 1, preferred));
163        }
164
165        @Override
166        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
167          switch (_hash) {
168          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);
169          case -1294005119: /*preferred*/  return new Property("preferred", "boolean", "Indicates whether or not the related person prefers this language (over other languages he or she masters up a certain level).", 0, 1, preferred);
170          default: return super.getNamedProperty(_hash, _name, _checkValid);
171          }
172
173        }
174
175      @Override
176      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
177        switch (hash) {
178        case -1613589672: /*language*/ return this.language == null ? new Base[0] : new Base[] {this.language}; // CodeableConcept
179        case -1294005119: /*preferred*/ return this.preferred == null ? new Base[0] : new Base[] {this.preferred}; // BooleanType
180        default: return super.getProperty(hash, name, checkValid);
181        }
182
183      }
184
185      @Override
186      public Base setProperty(int hash, String name, Base value) throws FHIRException {
187        switch (hash) {
188        case -1613589672: // language
189          this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
190          return value;
191        case -1294005119: // preferred
192          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
193          return value;
194        default: return super.setProperty(hash, name, value);
195        }
196
197      }
198
199      @Override
200      public Base setProperty(String name, Base value) throws FHIRException {
201        if (name.equals("language")) {
202          this.language = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
203        } else if (name.equals("preferred")) {
204          this.preferred = TypeConvertor.castToBoolean(value); // BooleanType
205        } else
206          return super.setProperty(name, value);
207        return value;
208      }
209
210      @Override
211      public Base makeProperty(int hash, String name) throws FHIRException {
212        switch (hash) {
213        case -1613589672:  return getLanguage();
214        case -1294005119:  return getPreferredElement();
215        default: return super.makeProperty(hash, name);
216        }
217
218      }
219
220      @Override
221      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
222        switch (hash) {
223        case -1613589672: /*language*/ return new String[] {"CodeableConcept"};
224        case -1294005119: /*preferred*/ return new String[] {"boolean"};
225        default: return super.getTypesForProperty(hash, name);
226        }
227
228      }
229
230      @Override
231      public Base addChild(String name) throws FHIRException {
232        if (name.equals("language")) {
233          this.language = new CodeableConcept();
234          return this.language;
235        }
236        else if (name.equals("preferred")) {
237          throw new FHIRException("Cannot call addChild on a singleton property RelatedPerson.communication.preferred");
238        }
239        else
240          return super.addChild(name);
241      }
242
243      public RelatedPersonCommunicationComponent copy() {
244        RelatedPersonCommunicationComponent dst = new RelatedPersonCommunicationComponent();
245        copyValues(dst);
246        return dst;
247      }
248
249      public void copyValues(RelatedPersonCommunicationComponent dst) {
250        super.copyValues(dst);
251        dst.language = language == null ? null : language.copy();
252        dst.preferred = preferred == null ? null : preferred.copy();
253      }
254
255      @Override
256      public boolean equalsDeep(Base other_) {
257        if (!super.equalsDeep(other_))
258          return false;
259        if (!(other_ instanceof RelatedPersonCommunicationComponent))
260          return false;
261        RelatedPersonCommunicationComponent o = (RelatedPersonCommunicationComponent) other_;
262        return compareDeep(language, o.language, true) && compareDeep(preferred, o.preferred, true);
263      }
264
265      @Override
266      public boolean equalsShallow(Base other_) {
267        if (!super.equalsShallow(other_))
268          return false;
269        if (!(other_ instanceof RelatedPersonCommunicationComponent))
270          return false;
271        RelatedPersonCommunicationComponent o = (RelatedPersonCommunicationComponent) other_;
272        return compareValues(preferred, o.preferred, true);
273      }
274
275      public boolean isEmpty() {
276        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(language, preferred);
277      }
278
279  public String fhirType() {
280    return "RelatedPerson.communication";
281
282  }
283
284  }
285
286    /**
287     * Identifier for a person within a particular scope.
288     */
289    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
290    @Description(shortDefinition="A human identifier for this person", formalDefinition="Identifier for a person within a particular scope." )
291    protected List<Identifier> identifier;
292
293    /**
294     * Whether this related person record is in active use.
295     */
296    @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true)
297    @Description(shortDefinition="Whether this related person's record is in active use", formalDefinition="Whether this related person record is in active use." )
298    protected BooleanType active;
299
300    /**
301     * The patient this person is related to.
302     */
303    @Child(name = "patient", type = {Patient.class}, order=2, min=1, max=1, modifier=false, summary=true)
304    @Description(shortDefinition="The patient this person is related to", formalDefinition="The patient this person is related to." )
305    protected Reference patient;
306
307    /**
308     * The nature of the relationship between the related person and the patient.
309     */
310    @Child(name = "relationship", type = {CodeableConcept.class}, order=3, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
311    @Description(shortDefinition="The relationship of the related person to the patient", formalDefinition="The nature of the relationship between the related person and the patient." )
312    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/relatedperson-relationshiptype")
313    protected List<CodeableConcept> relationship;
314
315    /**
316     * A name associated with the person.
317     */
318    @Child(name = "name", type = {HumanName.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
319    @Description(shortDefinition="A name associated with the person", formalDefinition="A name associated with the person." )
320    protected List<HumanName> name;
321
322    /**
323     * A contact detail for the person, e.g. a telephone number or an email address.
324     */
325    @Child(name = "telecom", type = {ContactPoint.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
326    @Description(shortDefinition="A contact detail for the person", formalDefinition="A contact detail for the person, e.g. a telephone number or an email address." )
327    protected List<ContactPoint> telecom;
328
329    /**
330     * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
331     */
332    @Child(name = "gender", type = {CodeType.class}, order=6, min=0, max=1, modifier=false, summary=true)
333    @Description(shortDefinition="male | female | other | unknown", formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes." )
334    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/administrative-gender")
335    protected Enumeration<AdministrativeGender> gender;
336
337    /**
338     * The date on which the related person was born.
339     */
340    @Child(name = "birthDate", type = {DateType.class}, order=7, min=0, max=1, modifier=false, summary=true)
341    @Description(shortDefinition="The date on which the related person was born", formalDefinition="The date on which the related person was born." )
342    protected DateType birthDate;
343
344    /**
345     * Address where the related person can be contacted or visited.
346     */
347    @Child(name = "address", type = {Address.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
348    @Description(shortDefinition="Address where the related person can be contacted or visited", formalDefinition="Address where the related person can be contacted or visited." )
349    protected List<Address> address;
350
351    /**
352     * Image of the person.
353     */
354    @Child(name = "photo", type = {Attachment.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
355    @Description(shortDefinition="Image of the person", formalDefinition="Image of the person." )
356    protected List<Attachment> photo;
357
358    /**
359     * The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.
360     */
361    @Child(name = "period", type = {Period.class}, order=10, min=0, max=1, modifier=false, summary=false)
362    @Description(shortDefinition="Period of time that this relationship is considered valid", formalDefinition="The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown." )
363    protected Period period;
364
365    /**
366     * A language which may be used to communicate with the related person about the patient's health.
367     */
368    @Child(name = "communication", type = {}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
369    @Description(shortDefinition="A language which may be used to communicate with the related person about the patient's health", formalDefinition="A language which may be used to communicate with the related person about the patient's health." )
370    protected List<RelatedPersonCommunicationComponent> communication;
371
372    private static final long serialVersionUID = -857475397L;
373
374  /**
375   * Constructor
376   */
377    public RelatedPerson() {
378      super();
379    }
380
381  /**
382   * Constructor
383   */
384    public RelatedPerson(Reference patient) {
385      super();
386      this.setPatient(patient);
387    }
388
389    /**
390     * @return {@link #identifier} (Identifier for a person within a particular scope.)
391     */
392    public List<Identifier> getIdentifier() { 
393      if (this.identifier == null)
394        this.identifier = new ArrayList<Identifier>();
395      return this.identifier;
396    }
397
398    /**
399     * @return Returns a reference to <code>this</code> for easy method chaining
400     */
401    public RelatedPerson setIdentifier(List<Identifier> theIdentifier) { 
402      this.identifier = theIdentifier;
403      return this;
404    }
405
406    public boolean hasIdentifier() { 
407      if (this.identifier == null)
408        return false;
409      for (Identifier item : this.identifier)
410        if (!item.isEmpty())
411          return true;
412      return false;
413    }
414
415    public Identifier addIdentifier() { //3
416      Identifier t = new Identifier();
417      if (this.identifier == null)
418        this.identifier = new ArrayList<Identifier>();
419      this.identifier.add(t);
420      return t;
421    }
422
423    public RelatedPerson addIdentifier(Identifier t) { //3
424      if (t == null)
425        return this;
426      if (this.identifier == null)
427        this.identifier = new ArrayList<Identifier>();
428      this.identifier.add(t);
429      return this;
430    }
431
432    /**
433     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
434     */
435    public Identifier getIdentifierFirstRep() { 
436      if (getIdentifier().isEmpty()) {
437        addIdentifier();
438      }
439      return getIdentifier().get(0);
440    }
441
442    /**
443     * @return {@link #active} (Whether this related person record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
444     */
445    public BooleanType getActiveElement() { 
446      if (this.active == null)
447        if (Configuration.errorOnAutoCreate())
448          throw new Error("Attempt to auto-create RelatedPerson.active");
449        else if (Configuration.doAutoCreate())
450          this.active = new BooleanType(); // bb
451      return this.active;
452    }
453
454    public boolean hasActiveElement() { 
455      return this.active != null && !this.active.isEmpty();
456    }
457
458    public boolean hasActive() { 
459      return this.active != null && !this.active.isEmpty();
460    }
461
462    /**
463     * @param value {@link #active} (Whether this related person record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
464     */
465    public RelatedPerson setActiveElement(BooleanType value) { 
466      this.active = value;
467      return this;
468    }
469
470    /**
471     * @return Whether this related person record is in active use.
472     */
473    public boolean getActive() { 
474      return this.active == null || this.active.isEmpty() ? false : this.active.getValue();
475    }
476
477    /**
478     * @param value Whether this related person record is in active use.
479     */
480    public RelatedPerson setActive(boolean value) { 
481        if (this.active == null)
482          this.active = new BooleanType();
483        this.active.setValue(value);
484      return this;
485    }
486
487    /**
488     * @return {@link #patient} (The patient this person is related to.)
489     */
490    public Reference getPatient() { 
491      if (this.patient == null)
492        if (Configuration.errorOnAutoCreate())
493          throw new Error("Attempt to auto-create RelatedPerson.patient");
494        else if (Configuration.doAutoCreate())
495          this.patient = new Reference(); // cc
496      return this.patient;
497    }
498
499    public boolean hasPatient() { 
500      return this.patient != null && !this.patient.isEmpty();
501    }
502
503    /**
504     * @param value {@link #patient} (The patient this person is related to.)
505     */
506    public RelatedPerson setPatient(Reference value) { 
507      this.patient = value;
508      return this;
509    }
510
511    /**
512     * @return {@link #relationship} (The nature of the relationship between the related person and the patient.)
513     */
514    public List<CodeableConcept> getRelationship() { 
515      if (this.relationship == null)
516        this.relationship = new ArrayList<CodeableConcept>();
517      return this.relationship;
518    }
519
520    /**
521     * @return Returns a reference to <code>this</code> for easy method chaining
522     */
523    public RelatedPerson setRelationship(List<CodeableConcept> theRelationship) { 
524      this.relationship = theRelationship;
525      return this;
526    }
527
528    public boolean hasRelationship() { 
529      if (this.relationship == null)
530        return false;
531      for (CodeableConcept item : this.relationship)
532        if (!item.isEmpty())
533          return true;
534      return false;
535    }
536
537    public CodeableConcept addRelationship() { //3
538      CodeableConcept t = new CodeableConcept();
539      if (this.relationship == null)
540        this.relationship = new ArrayList<CodeableConcept>();
541      this.relationship.add(t);
542      return t;
543    }
544
545    public RelatedPerson addRelationship(CodeableConcept t) { //3
546      if (t == null)
547        return this;
548      if (this.relationship == null)
549        this.relationship = new ArrayList<CodeableConcept>();
550      this.relationship.add(t);
551      return this;
552    }
553
554    /**
555     * @return The first repetition of repeating field {@link #relationship}, creating it if it does not already exist {3}
556     */
557    public CodeableConcept getRelationshipFirstRep() { 
558      if (getRelationship().isEmpty()) {
559        addRelationship();
560      }
561      return getRelationship().get(0);
562    }
563
564    /**
565     * @return {@link #name} (A name associated with the person.)
566     */
567    public List<HumanName> getName() { 
568      if (this.name == null)
569        this.name = new ArrayList<HumanName>();
570      return this.name;
571    }
572
573    /**
574     * @return Returns a reference to <code>this</code> for easy method chaining
575     */
576    public RelatedPerson setName(List<HumanName> theName) { 
577      this.name = theName;
578      return this;
579    }
580
581    public boolean hasName() { 
582      if (this.name == null)
583        return false;
584      for (HumanName item : this.name)
585        if (!item.isEmpty())
586          return true;
587      return false;
588    }
589
590    public HumanName addName() { //3
591      HumanName t = new HumanName();
592      if (this.name == null)
593        this.name = new ArrayList<HumanName>();
594      this.name.add(t);
595      return t;
596    }
597
598    public RelatedPerson addName(HumanName t) { //3
599      if (t == null)
600        return this;
601      if (this.name == null)
602        this.name = new ArrayList<HumanName>();
603      this.name.add(t);
604      return this;
605    }
606
607    /**
608     * @return The first repetition of repeating field {@link #name}, creating it if it does not already exist {3}
609     */
610    public HumanName getNameFirstRep() { 
611      if (getName().isEmpty()) {
612        addName();
613      }
614      return getName().get(0);
615    }
616
617    /**
618     * @return {@link #telecom} (A contact detail for the person, e.g. a telephone number or an email address.)
619     */
620    public List<ContactPoint> getTelecom() { 
621      if (this.telecom == null)
622        this.telecom = new ArrayList<ContactPoint>();
623      return this.telecom;
624    }
625
626    /**
627     * @return Returns a reference to <code>this</code> for easy method chaining
628     */
629    public RelatedPerson setTelecom(List<ContactPoint> theTelecom) { 
630      this.telecom = theTelecom;
631      return this;
632    }
633
634    public boolean hasTelecom() { 
635      if (this.telecom == null)
636        return false;
637      for (ContactPoint item : this.telecom)
638        if (!item.isEmpty())
639          return true;
640      return false;
641    }
642
643    public ContactPoint addTelecom() { //3
644      ContactPoint t = new ContactPoint();
645      if (this.telecom == null)
646        this.telecom = new ArrayList<ContactPoint>();
647      this.telecom.add(t);
648      return t;
649    }
650
651    public RelatedPerson addTelecom(ContactPoint t) { //3
652      if (t == null)
653        return this;
654      if (this.telecom == null)
655        this.telecom = new ArrayList<ContactPoint>();
656      this.telecom.add(t);
657      return this;
658    }
659
660    /**
661     * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist {3}
662     */
663    public ContactPoint getTelecomFirstRep() { 
664      if (getTelecom().isEmpty()) {
665        addTelecom();
666      }
667      return getTelecom().get(0);
668    }
669
670    /**
671     * @return {@link #gender} (Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.). This is the underlying object with id, value and extensions. The accessor "getGender" gives direct access to the value
672     */
673    public Enumeration<AdministrativeGender> getGenderElement() { 
674      if (this.gender == null)
675        if (Configuration.errorOnAutoCreate())
676          throw new Error("Attempt to auto-create RelatedPerson.gender");
677        else if (Configuration.doAutoCreate())
678          this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory()); // bb
679      return this.gender;
680    }
681
682    public boolean hasGenderElement() { 
683      return this.gender != null && !this.gender.isEmpty();
684    }
685
686    public boolean hasGender() { 
687      return this.gender != null && !this.gender.isEmpty();
688    }
689
690    /**
691     * @param value {@link #gender} (Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.). This is the underlying object with id, value and extensions. The accessor "getGender" gives direct access to the value
692     */
693    public RelatedPerson setGenderElement(Enumeration<AdministrativeGender> value) { 
694      this.gender = value;
695      return this;
696    }
697
698    /**
699     * @return Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
700     */
701    public AdministrativeGender getGender() { 
702      return this.gender == null ? null : this.gender.getValue();
703    }
704
705    /**
706     * @param value Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
707     */
708    public RelatedPerson setGender(AdministrativeGender value) { 
709      if (value == null)
710        this.gender = null;
711      else {
712        if (this.gender == null)
713          this.gender = new Enumeration<AdministrativeGender>(new AdministrativeGenderEnumFactory());
714        this.gender.setValue(value);
715      }
716      return this;
717    }
718
719    /**
720     * @return {@link #birthDate} (The date on which the related person was born.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value
721     */
722    public DateType getBirthDateElement() { 
723      if (this.birthDate == null)
724        if (Configuration.errorOnAutoCreate())
725          throw new Error("Attempt to auto-create RelatedPerson.birthDate");
726        else if (Configuration.doAutoCreate())
727          this.birthDate = new DateType(); // bb
728      return this.birthDate;
729    }
730
731    public boolean hasBirthDateElement() { 
732      return this.birthDate != null && !this.birthDate.isEmpty();
733    }
734
735    public boolean hasBirthDate() { 
736      return this.birthDate != null && !this.birthDate.isEmpty();
737    }
738
739    /**
740     * @param value {@link #birthDate} (The date on which the related person was born.). This is the underlying object with id, value and extensions. The accessor "getBirthDate" gives direct access to the value
741     */
742    public RelatedPerson setBirthDateElement(DateType value) { 
743      this.birthDate = value;
744      return this;
745    }
746
747    /**
748     * @return The date on which the related person was born.
749     */
750    public Date getBirthDate() { 
751      return this.birthDate == null ? null : this.birthDate.getValue();
752    }
753
754    /**
755     * @param value The date on which the related person was born.
756     */
757    public RelatedPerson setBirthDate(Date value) { 
758      if (value == null)
759        this.birthDate = null;
760      else {
761        if (this.birthDate == null)
762          this.birthDate = new DateType();
763        this.birthDate.setValue(value);
764      }
765      return this;
766    }
767
768    /**
769     * @return {@link #address} (Address where the related person can be contacted or visited.)
770     */
771    public List<Address> getAddress() { 
772      if (this.address == null)
773        this.address = new ArrayList<Address>();
774      return this.address;
775    }
776
777    /**
778     * @return Returns a reference to <code>this</code> for easy method chaining
779     */
780    public RelatedPerson setAddress(List<Address> theAddress) { 
781      this.address = theAddress;
782      return this;
783    }
784
785    public boolean hasAddress() { 
786      if (this.address == null)
787        return false;
788      for (Address item : this.address)
789        if (!item.isEmpty())
790          return true;
791      return false;
792    }
793
794    public Address addAddress() { //3
795      Address t = new Address();
796      if (this.address == null)
797        this.address = new ArrayList<Address>();
798      this.address.add(t);
799      return t;
800    }
801
802    public RelatedPerson addAddress(Address t) { //3
803      if (t == null)
804        return this;
805      if (this.address == null)
806        this.address = new ArrayList<Address>();
807      this.address.add(t);
808      return this;
809    }
810
811    /**
812     * @return The first repetition of repeating field {@link #address}, creating it if it does not already exist {3}
813     */
814    public Address getAddressFirstRep() { 
815      if (getAddress().isEmpty()) {
816        addAddress();
817      }
818      return getAddress().get(0);
819    }
820
821    /**
822     * @return {@link #photo} (Image of the person.)
823     */
824    public List<Attachment> getPhoto() { 
825      if (this.photo == null)
826        this.photo = new ArrayList<Attachment>();
827      return this.photo;
828    }
829
830    /**
831     * @return Returns a reference to <code>this</code> for easy method chaining
832     */
833    public RelatedPerson setPhoto(List<Attachment> thePhoto) { 
834      this.photo = thePhoto;
835      return this;
836    }
837
838    public boolean hasPhoto() { 
839      if (this.photo == null)
840        return false;
841      for (Attachment item : this.photo)
842        if (!item.isEmpty())
843          return true;
844      return false;
845    }
846
847    public Attachment addPhoto() { //3
848      Attachment t = new Attachment();
849      if (this.photo == null)
850        this.photo = new ArrayList<Attachment>();
851      this.photo.add(t);
852      return t;
853    }
854
855    public RelatedPerson addPhoto(Attachment t) { //3
856      if (t == null)
857        return this;
858      if (this.photo == null)
859        this.photo = new ArrayList<Attachment>();
860      this.photo.add(t);
861      return this;
862    }
863
864    /**
865     * @return The first repetition of repeating field {@link #photo}, creating it if it does not already exist {3}
866     */
867    public Attachment getPhotoFirstRep() { 
868      if (getPhoto().isEmpty()) {
869        addPhoto();
870      }
871      return getPhoto().get(0);
872    }
873
874    /**
875     * @return {@link #period} (The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.)
876     */
877    public Period getPeriod() { 
878      if (this.period == null)
879        if (Configuration.errorOnAutoCreate())
880          throw new Error("Attempt to auto-create RelatedPerson.period");
881        else if (Configuration.doAutoCreate())
882          this.period = new Period(); // cc
883      return this.period;
884    }
885
886    public boolean hasPeriod() { 
887      return this.period != null && !this.period.isEmpty();
888    }
889
890    /**
891     * @param value {@link #period} (The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.)
892     */
893    public RelatedPerson setPeriod(Period value) { 
894      this.period = value;
895      return this;
896    }
897
898    /**
899     * @return {@link #communication} (A language which may be used to communicate with the related person about the patient's health.)
900     */
901    public List<RelatedPersonCommunicationComponent> getCommunication() { 
902      if (this.communication == null)
903        this.communication = new ArrayList<RelatedPersonCommunicationComponent>();
904      return this.communication;
905    }
906
907    /**
908     * @return Returns a reference to <code>this</code> for easy method chaining
909     */
910    public RelatedPerson setCommunication(List<RelatedPersonCommunicationComponent> theCommunication) { 
911      this.communication = theCommunication;
912      return this;
913    }
914
915    public boolean hasCommunication() { 
916      if (this.communication == null)
917        return false;
918      for (RelatedPersonCommunicationComponent item : this.communication)
919        if (!item.isEmpty())
920          return true;
921      return false;
922    }
923
924    public RelatedPersonCommunicationComponent addCommunication() { //3
925      RelatedPersonCommunicationComponent t = new RelatedPersonCommunicationComponent();
926      if (this.communication == null)
927        this.communication = new ArrayList<RelatedPersonCommunicationComponent>();
928      this.communication.add(t);
929      return t;
930    }
931
932    public RelatedPerson addCommunication(RelatedPersonCommunicationComponent t) { //3
933      if (t == null)
934        return this;
935      if (this.communication == null)
936        this.communication = new ArrayList<RelatedPersonCommunicationComponent>();
937      this.communication.add(t);
938      return this;
939    }
940
941    /**
942     * @return The first repetition of repeating field {@link #communication}, creating it if it does not already exist {3}
943     */
944    public RelatedPersonCommunicationComponent getCommunicationFirstRep() { 
945      if (getCommunication().isEmpty()) {
946        addCommunication();
947      }
948      return getCommunication().get(0);
949    }
950
951      protected void listChildren(List<Property> children) {
952        super.listChildren(children);
953        children.add(new Property("identifier", "Identifier", "Identifier for a person within a particular scope.", 0, java.lang.Integer.MAX_VALUE, identifier));
954        children.add(new Property("active", "boolean", "Whether this related person record is in active use.", 0, 1, active));
955        children.add(new Property("patient", "Reference(Patient)", "The patient this person is related to.", 0, 1, patient));
956        children.add(new Property("relationship", "CodeableConcept", "The nature of the relationship between the related person and the patient.", 0, java.lang.Integer.MAX_VALUE, relationship));
957        children.add(new Property("name", "HumanName", "A name associated with the person.", 0, java.lang.Integer.MAX_VALUE, name));
958        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));
959        children.add(new Property("gender", "code", "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.", 0, 1, gender));
960        children.add(new Property("birthDate", "date", "The date on which the related person was born.", 0, 1, birthDate));
961        children.add(new Property("address", "Address", "Address where the related person can be contacted or visited.", 0, java.lang.Integer.MAX_VALUE, address));
962        children.add(new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo));
963        children.add(new Property("period", "Period", "The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.", 0, 1, period));
964        children.add(new Property("communication", "", "A language which may be used to communicate with the related person about the patient's health.", 0, java.lang.Integer.MAX_VALUE, communication));
965      }
966
967      @Override
968      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
969        switch (_hash) {
970        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for a person within a particular scope.", 0, java.lang.Integer.MAX_VALUE, identifier);
971        case -1422950650: /*active*/  return new Property("active", "boolean", "Whether this related person record is in active use.", 0, 1, active);
972        case -791418107: /*patient*/  return new Property("patient", "Reference(Patient)", "The patient this person is related to.", 0, 1, patient);
973        case -261851592: /*relationship*/  return new Property("relationship", "CodeableConcept", "The nature of the relationship between the related person and the patient.", 0, java.lang.Integer.MAX_VALUE, relationship);
974        case 3373707: /*name*/  return new Property("name", "HumanName", "A name associated with the person.", 0, java.lang.Integer.MAX_VALUE, name);
975        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);
976        case -1249512767: /*gender*/  return new Property("gender", "code", "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.", 0, 1, gender);
977        case -1210031859: /*birthDate*/  return new Property("birthDate", "date", "The date on which the related person was born.", 0, 1, birthDate);
978        case -1147692044: /*address*/  return new Property("address", "Address", "Address where the related person can be contacted or visited.", 0, java.lang.Integer.MAX_VALUE, address);
979        case 106642994: /*photo*/  return new Property("photo", "Attachment", "Image of the person.", 0, java.lang.Integer.MAX_VALUE, photo);
980        case -991726143: /*period*/  return new Property("period", "Period", "The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown.", 0, 1, period);
981        case -1035284522: /*communication*/  return new Property("communication", "", "A language which may be used to communicate with the related person about the patient's health.", 0, java.lang.Integer.MAX_VALUE, communication);
982        default: return super.getNamedProperty(_hash, _name, _checkValid);
983        }
984
985      }
986
987      @Override
988      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
989        switch (hash) {
990        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
991        case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType
992        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
993        case -261851592: /*relationship*/ return this.relationship == null ? new Base[0] : this.relationship.toArray(new Base[this.relationship.size()]); // CodeableConcept
994        case 3373707: /*name*/ return this.name == null ? new Base[0] : this.name.toArray(new Base[this.name.size()]); // HumanName
995        case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint
996        case -1249512767: /*gender*/ return this.gender == null ? new Base[0] : new Base[] {this.gender}; // Enumeration<AdministrativeGender>
997        case -1210031859: /*birthDate*/ return this.birthDate == null ? new Base[0] : new Base[] {this.birthDate}; // DateType
998        case -1147692044: /*address*/ return this.address == null ? new Base[0] : this.address.toArray(new Base[this.address.size()]); // Address
999        case 106642994: /*photo*/ return this.photo == null ? new Base[0] : this.photo.toArray(new Base[this.photo.size()]); // Attachment
1000        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
1001        case -1035284522: /*communication*/ return this.communication == null ? new Base[0] : this.communication.toArray(new Base[this.communication.size()]); // RelatedPersonCommunicationComponent
1002        default: return super.getProperty(hash, name, checkValid);
1003        }
1004
1005      }
1006
1007      @Override
1008      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1009        switch (hash) {
1010        case -1618432855: // identifier
1011          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1012          return value;
1013        case -1422950650: // active
1014          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1015          return value;
1016        case -791418107: // patient
1017          this.patient = TypeConvertor.castToReference(value); // Reference
1018          return value;
1019        case -261851592: // relationship
1020          this.getRelationship().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1021          return value;
1022        case 3373707: // name
1023          this.getName().add(TypeConvertor.castToHumanName(value)); // HumanName
1024          return value;
1025        case -1429363305: // telecom
1026          this.getTelecom().add(TypeConvertor.castToContactPoint(value)); // ContactPoint
1027          return value;
1028        case -1249512767: // gender
1029          value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value));
1030          this.gender = (Enumeration) value; // Enumeration<AdministrativeGender>
1031          return value;
1032        case -1210031859: // birthDate
1033          this.birthDate = TypeConvertor.castToDate(value); // DateType
1034          return value;
1035        case -1147692044: // address
1036          this.getAddress().add(TypeConvertor.castToAddress(value)); // Address
1037          return value;
1038        case 106642994: // photo
1039          this.getPhoto().add(TypeConvertor.castToAttachment(value)); // Attachment
1040          return value;
1041        case -991726143: // period
1042          this.period = TypeConvertor.castToPeriod(value); // Period
1043          return value;
1044        case -1035284522: // communication
1045          this.getCommunication().add((RelatedPersonCommunicationComponent) value); // RelatedPersonCommunicationComponent
1046          return value;
1047        default: return super.setProperty(hash, name, value);
1048        }
1049
1050      }
1051
1052      @Override
1053      public Base setProperty(String name, Base value) throws FHIRException {
1054        if (name.equals("identifier")) {
1055          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1056        } else if (name.equals("active")) {
1057          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1058        } else if (name.equals("patient")) {
1059          this.patient = TypeConvertor.castToReference(value); // Reference
1060        } else if (name.equals("relationship")) {
1061          this.getRelationship().add(TypeConvertor.castToCodeableConcept(value));
1062        } else if (name.equals("name")) {
1063          this.getName().add(TypeConvertor.castToHumanName(value));
1064        } else if (name.equals("telecom")) {
1065          this.getTelecom().add(TypeConvertor.castToContactPoint(value));
1066        } else if (name.equals("gender")) {
1067          value = new AdministrativeGenderEnumFactory().fromType(TypeConvertor.castToCode(value));
1068          this.gender = (Enumeration) value; // Enumeration<AdministrativeGender>
1069        } else if (name.equals("birthDate")) {
1070          this.birthDate = TypeConvertor.castToDate(value); // DateType
1071        } else if (name.equals("address")) {
1072          this.getAddress().add(TypeConvertor.castToAddress(value));
1073        } else if (name.equals("photo")) {
1074          this.getPhoto().add(TypeConvertor.castToAttachment(value));
1075        } else if (name.equals("period")) {
1076          this.period = TypeConvertor.castToPeriod(value); // Period
1077        } else if (name.equals("communication")) {
1078          this.getCommunication().add((RelatedPersonCommunicationComponent) value);
1079        } else
1080          return super.setProperty(name, value);
1081        return value;
1082      }
1083
1084      @Override
1085      public Base makeProperty(int hash, String name) throws FHIRException {
1086        switch (hash) {
1087        case -1618432855:  return addIdentifier(); 
1088        case -1422950650:  return getActiveElement();
1089        case -791418107:  return getPatient();
1090        case -261851592:  return addRelationship(); 
1091        case 3373707:  return addName(); 
1092        case -1429363305:  return addTelecom(); 
1093        case -1249512767:  return getGenderElement();
1094        case -1210031859:  return getBirthDateElement();
1095        case -1147692044:  return addAddress(); 
1096        case 106642994:  return addPhoto(); 
1097        case -991726143:  return getPeriod();
1098        case -1035284522:  return addCommunication(); 
1099        default: return super.makeProperty(hash, name);
1100        }
1101
1102      }
1103
1104      @Override
1105      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1106        switch (hash) {
1107        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1108        case -1422950650: /*active*/ return new String[] {"boolean"};
1109        case -791418107: /*patient*/ return new String[] {"Reference"};
1110        case -261851592: /*relationship*/ return new String[] {"CodeableConcept"};
1111        case 3373707: /*name*/ return new String[] {"HumanName"};
1112        case -1429363305: /*telecom*/ return new String[] {"ContactPoint"};
1113        case -1249512767: /*gender*/ return new String[] {"code"};
1114        case -1210031859: /*birthDate*/ return new String[] {"date"};
1115        case -1147692044: /*address*/ return new String[] {"Address"};
1116        case 106642994: /*photo*/ return new String[] {"Attachment"};
1117        case -991726143: /*period*/ return new String[] {"Period"};
1118        case -1035284522: /*communication*/ return new String[] {};
1119        default: return super.getTypesForProperty(hash, name);
1120        }
1121
1122      }
1123
1124      @Override
1125      public Base addChild(String name) throws FHIRException {
1126        if (name.equals("identifier")) {
1127          return addIdentifier();
1128        }
1129        else if (name.equals("active")) {
1130          throw new FHIRException("Cannot call addChild on a singleton property RelatedPerson.active");
1131        }
1132        else if (name.equals("patient")) {
1133          this.patient = new Reference();
1134          return this.patient;
1135        }
1136        else if (name.equals("relationship")) {
1137          return addRelationship();
1138        }
1139        else if (name.equals("name")) {
1140          return addName();
1141        }
1142        else if (name.equals("telecom")) {
1143          return addTelecom();
1144        }
1145        else if (name.equals("gender")) {
1146          throw new FHIRException("Cannot call addChild on a singleton property RelatedPerson.gender");
1147        }
1148        else if (name.equals("birthDate")) {
1149          throw new FHIRException("Cannot call addChild on a singleton property RelatedPerson.birthDate");
1150        }
1151        else if (name.equals("address")) {
1152          return addAddress();
1153        }
1154        else if (name.equals("photo")) {
1155          return addPhoto();
1156        }
1157        else if (name.equals("period")) {
1158          this.period = new Period();
1159          return this.period;
1160        }
1161        else if (name.equals("communication")) {
1162          return addCommunication();
1163        }
1164        else
1165          return super.addChild(name);
1166      }
1167
1168  public String fhirType() {
1169    return "RelatedPerson";
1170
1171  }
1172
1173      public RelatedPerson copy() {
1174        RelatedPerson dst = new RelatedPerson();
1175        copyValues(dst);
1176        return dst;
1177      }
1178
1179      public void copyValues(RelatedPerson dst) {
1180        super.copyValues(dst);
1181        if (identifier != null) {
1182          dst.identifier = new ArrayList<Identifier>();
1183          for (Identifier i : identifier)
1184            dst.identifier.add(i.copy());
1185        };
1186        dst.active = active == null ? null : active.copy();
1187        dst.patient = patient == null ? null : patient.copy();
1188        if (relationship != null) {
1189          dst.relationship = new ArrayList<CodeableConcept>();
1190          for (CodeableConcept i : relationship)
1191            dst.relationship.add(i.copy());
1192        };
1193        if (name != null) {
1194          dst.name = new ArrayList<HumanName>();
1195          for (HumanName i : name)
1196            dst.name.add(i.copy());
1197        };
1198        if (telecom != null) {
1199          dst.telecom = new ArrayList<ContactPoint>();
1200          for (ContactPoint i : telecom)
1201            dst.telecom.add(i.copy());
1202        };
1203        dst.gender = gender == null ? null : gender.copy();
1204        dst.birthDate = birthDate == null ? null : birthDate.copy();
1205        if (address != null) {
1206          dst.address = new ArrayList<Address>();
1207          for (Address i : address)
1208            dst.address.add(i.copy());
1209        };
1210        if (photo != null) {
1211          dst.photo = new ArrayList<Attachment>();
1212          for (Attachment i : photo)
1213            dst.photo.add(i.copy());
1214        };
1215        dst.period = period == null ? null : period.copy();
1216        if (communication != null) {
1217          dst.communication = new ArrayList<RelatedPersonCommunicationComponent>();
1218          for (RelatedPersonCommunicationComponent i : communication)
1219            dst.communication.add(i.copy());
1220        };
1221      }
1222
1223      protected RelatedPerson typedCopy() {
1224        return copy();
1225      }
1226
1227      @Override
1228      public boolean equalsDeep(Base other_) {
1229        if (!super.equalsDeep(other_))
1230          return false;
1231        if (!(other_ instanceof RelatedPerson))
1232          return false;
1233        RelatedPerson o = (RelatedPerson) other_;
1234        return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(patient, o.patient, true)
1235           && compareDeep(relationship, o.relationship, true) && compareDeep(name, o.name, true) && compareDeep(telecom, o.telecom, true)
1236           && compareDeep(gender, o.gender, true) && compareDeep(birthDate, o.birthDate, true) && compareDeep(address, o.address, true)
1237           && compareDeep(photo, o.photo, true) && compareDeep(period, o.period, true) && compareDeep(communication, o.communication, true)
1238          ;
1239      }
1240
1241      @Override
1242      public boolean equalsShallow(Base other_) {
1243        if (!super.equalsShallow(other_))
1244          return false;
1245        if (!(other_ instanceof RelatedPerson))
1246          return false;
1247        RelatedPerson o = (RelatedPerson) other_;
1248        return compareValues(active, o.active, true) && compareValues(gender, o.gender, true) && compareValues(birthDate, o.birthDate, true)
1249          ;
1250      }
1251
1252      public boolean isEmpty() {
1253        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, patient
1254          , relationship, name, telecom, gender, birthDate, address, photo, period, communication
1255          );
1256      }
1257
1258  @Override
1259  public ResourceType getResourceType() {
1260    return ResourceType.RelatedPerson;
1261   }
1262
1263 /**
1264   * Search parameter: <b>active</b>
1265   * <p>
1266   * Description: <b>Indicates if the related person record is active</b><br>
1267   * Type: <b>token</b><br>
1268   * Path: <b>RelatedPerson.active</b><br>
1269   * </p>
1270   */
1271  @SearchParamDefinition(name="active", path="RelatedPerson.active", description="Indicates if the related person record is active", type="token" )
1272  public static final String SP_ACTIVE = "active";
1273 /**
1274   * <b>Fluent Client</b> search parameter constant for <b>active</b>
1275   * <p>
1276   * Description: <b>Indicates if the related person record is active</b><br>
1277   * Type: <b>token</b><br>
1278   * Path: <b>RelatedPerson.active</b><br>
1279   * </p>
1280   */
1281  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE);
1282
1283 /**
1284   * Search parameter: <b>family</b>
1285   * <p>
1286   * Description: <b>A portion of the family name of the related person</b><br>
1287   * Type: <b>string</b><br>
1288   * Path: <b>RelatedPerson.name.family</b><br>
1289   * </p>
1290   */
1291  @SearchParamDefinition(name="family", path="RelatedPerson.name.family", description="A portion of the family name of the related person", type="string" )
1292  public static final String SP_FAMILY = "family";
1293 /**
1294   * <b>Fluent Client</b> search parameter constant for <b>family</b>
1295   * <p>
1296   * Description: <b>A portion of the family name of the related person</b><br>
1297   * Type: <b>string</b><br>
1298   * Path: <b>RelatedPerson.name.family</b><br>
1299   * </p>
1300   */
1301  public static final ca.uhn.fhir.rest.gclient.StringClientParam FAMILY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_FAMILY);
1302
1303 /**
1304   * Search parameter: <b>given</b>
1305   * <p>
1306   * Description: <b>A portion of the given name of the related person</b><br>
1307   * Type: <b>string</b><br>
1308   * Path: <b>RelatedPerson.name.given</b><br>
1309   * </p>
1310   */
1311  @SearchParamDefinition(name="given", path="RelatedPerson.name.given", description="A portion of the given name of the related person", type="string" )
1312  public static final String SP_GIVEN = "given";
1313 /**
1314   * <b>Fluent Client</b> search parameter constant for <b>given</b>
1315   * <p>
1316   * Description: <b>A portion of the given name of the related person</b><br>
1317   * Type: <b>string</b><br>
1318   * Path: <b>RelatedPerson.name.given</b><br>
1319   * </p>
1320   */
1321  public static final ca.uhn.fhir.rest.gclient.StringClientParam GIVEN = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_GIVEN);
1322
1323 /**
1324   * Search parameter: <b>name</b>
1325   * <p>
1326   * 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>
1327   * Type: <b>string</b><br>
1328   * Path: <b>RelatedPerson.name</b><br>
1329   * </p>
1330   */
1331  @SearchParamDefinition(name="name", path="RelatedPerson.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" )
1332  public static final String SP_NAME = "name";
1333 /**
1334   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1335   * <p>
1336   * 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>
1337   * Type: <b>string</b><br>
1338   * Path: <b>RelatedPerson.name</b><br>
1339   * </p>
1340   */
1341  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1342
1343 /**
1344   * Search parameter: <b>relationship</b>
1345   * <p>
1346   * Description: <b>The relationship between the patient and the relatedperson</b><br>
1347   * Type: <b>token</b><br>
1348   * Path: <b>RelatedPerson.relationship</b><br>
1349   * </p>
1350   */
1351  @SearchParamDefinition(name="relationship", path="RelatedPerson.relationship", description="The relationship between the patient and the relatedperson", type="token" )
1352  public static final String SP_RELATIONSHIP = "relationship";
1353 /**
1354   * <b>Fluent Client</b> search parameter constant for <b>relationship</b>
1355   * <p>
1356   * Description: <b>The relationship between the patient and the relatedperson</b><br>
1357   * Type: <b>token</b><br>
1358   * Path: <b>RelatedPerson.relationship</b><br>
1359   * </p>
1360   */
1361  public static final ca.uhn.fhir.rest.gclient.TokenClientParam RELATIONSHIP = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_RELATIONSHIP);
1362
1363 /**
1364   * Search parameter: <b>identifier</b>
1365   * <p>
1366   * Description: <b>Multiple Resources: 
1367
1368* [Account](account.html): Account number
1369* [AdverseEvent](adverseevent.html): Business identifier for the event
1370* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1371* [Appointment](appointment.html): An Identifier of the Appointment
1372* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1373* [Basic](basic.html): Business identifier
1374* [BodyStructure](bodystructure.html): Bodystructure identifier
1375* [CarePlan](careplan.html): External Ids for this plan
1376* [CareTeam](careteam.html): External Ids for this team
1377* [ChargeItem](chargeitem.html): Business Identifier for item
1378* [Claim](claim.html): The primary identifier of the financial resource
1379* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1380* [ClinicalImpression](clinicalimpression.html): Business identifier
1381* [Communication](communication.html): Unique identifier
1382* [CommunicationRequest](communicationrequest.html): Unique identifier
1383* [Composition](composition.html): Version-independent identifier for the Composition
1384* [Condition](condition.html): A unique identifier of the condition record
1385* [Consent](consent.html): Identifier for this record (external references)
1386* [Contract](contract.html): The identity of the contract
1387* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1388* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1389* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1390* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1391* [DeviceRequest](devicerequest.html): Business identifier for request/order
1392* [DeviceUsage](deviceusage.html): Search by identifier
1393* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1394* [DocumentReference](documentreference.html): Identifier of the attachment binary
1395* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1396* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1397* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1398* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1399* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1400* [Flag](flag.html): Business identifier
1401* [Goal](goal.html): External Ids for this goal
1402* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1403* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1404* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1405* [Immunization](immunization.html): Business identifier
1406* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1407* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1408* [Invoice](invoice.html): Business Identifier for item
1409* [List](list.html): Business identifier
1410* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1411* [Medication](medication.html): Returns medications with this external identifier
1412* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1413* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1414* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1415* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1416* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1417* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1418* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1419* [Observation](observation.html): The unique id for a particular observation
1420* [Person](person.html): A person Identifier
1421* [Procedure](procedure.html): A unique identifier for a procedure
1422* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1423* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1424* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1425* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1426* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1427* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1428* [Specimen](specimen.html): The unique identifier associated with the specimen
1429* [SupplyDelivery](supplydelivery.html): External identifier
1430* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1431* [Task](task.html): Search for a task instance by its business identifier
1432* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1433</b><br>
1434   * Type: <b>token</b><br>
1435   * 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>
1436   * </p>
1437   */
1438  @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" )
1439  public static final String SP_IDENTIFIER = "identifier";
1440 /**
1441   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1442   * <p>
1443   * Description: <b>Multiple Resources: 
1444
1445* [Account](account.html): Account number
1446* [AdverseEvent](adverseevent.html): Business identifier for the event
1447* [AllergyIntolerance](allergyintolerance.html): External ids for this item
1448* [Appointment](appointment.html): An Identifier of the Appointment
1449* [AppointmentResponse](appointmentresponse.html): An Identifier in this appointment response
1450* [Basic](basic.html): Business identifier
1451* [BodyStructure](bodystructure.html): Bodystructure identifier
1452* [CarePlan](careplan.html): External Ids for this plan
1453* [CareTeam](careteam.html): External Ids for this team
1454* [ChargeItem](chargeitem.html): Business Identifier for item
1455* [Claim](claim.html): The primary identifier of the financial resource
1456* [ClaimResponse](claimresponse.html): The identity of the ClaimResponse
1457* [ClinicalImpression](clinicalimpression.html): Business identifier
1458* [Communication](communication.html): Unique identifier
1459* [CommunicationRequest](communicationrequest.html): Unique identifier
1460* [Composition](composition.html): Version-independent identifier for the Composition
1461* [Condition](condition.html): A unique identifier of the condition record
1462* [Consent](consent.html): Identifier for this record (external references)
1463* [Contract](contract.html): The identity of the contract
1464* [Coverage](coverage.html): The primary identifier of the insured and the coverage
1465* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The business identifier of the Eligibility
1466* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The business identifier
1467* [DetectedIssue](detectedissue.html): Unique id for the detected issue
1468* [DeviceRequest](devicerequest.html): Business identifier for request/order
1469* [DeviceUsage](deviceusage.html): Search by identifier
1470* [DiagnosticReport](diagnosticreport.html): An identifier for the report
1471* [DocumentReference](documentreference.html): Identifier of the attachment binary
1472* [Encounter](encounter.html): Identifier(s) by which this encounter is known
1473* [EnrollmentRequest](enrollmentrequest.html): The business identifier of the Enrollment
1474* [EpisodeOfCare](episodeofcare.html): Business Identifier(s) relevant for this EpisodeOfCare
1475* [ExplanationOfBenefit](explanationofbenefit.html): The business identifier of the Explanation of Benefit
1476* [FamilyMemberHistory](familymemberhistory.html): A search by a record identifier
1477* [Flag](flag.html): Business identifier
1478* [Goal](goal.html): External Ids for this goal
1479* [GuidanceResponse](guidanceresponse.html): The identifier of the guidance response
1480* [ImagingSelection](imagingselection.html): Identifiers for the imaging selection
1481* [ImagingStudy](imagingstudy.html): Identifiers for the Study, such as DICOM Study Instance UID
1482* [Immunization](immunization.html): Business identifier
1483* [ImmunizationEvaluation](immunizationevaluation.html): ID of the evaluation
1484* [ImmunizationRecommendation](immunizationrecommendation.html): Business identifier
1485* [Invoice](invoice.html): Business Identifier for item
1486* [List](list.html): Business identifier
1487* [MeasureReport](measurereport.html): External identifier of the measure report to be returned
1488* [Medication](medication.html): Returns medications with this external identifier
1489* [MedicationAdministration](medicationadministration.html): Return administrations with this external identifier
1490* [MedicationDispense](medicationdispense.html): Returns dispenses with this external identifier
1491* [MedicationRequest](medicationrequest.html): Return prescriptions with this external identifier
1492* [MedicationStatement](medicationstatement.html): Return statements with this external identifier
1493* [MolecularSequence](molecularsequence.html): The unique identity for a particular sequence
1494* [NutritionIntake](nutritionintake.html): Return statements with this external identifier
1495* [NutritionOrder](nutritionorder.html): Return nutrition orders with this external identifier
1496* [Observation](observation.html): The unique id for a particular observation
1497* [Person](person.html): A person Identifier
1498* [Procedure](procedure.html): A unique identifier for a procedure
1499* [QuestionnaireResponse](questionnaireresponse.html): The unique identifier for the questionnaire response
1500* [RelatedPerson](relatedperson.html): An Identifier of the RelatedPerson
1501* [RequestOrchestration](requestorchestration.html): External identifiers for the request orchestration
1502* [ResearchSubject](researchsubject.html): Business Identifier for research subject in a study
1503* [RiskAssessment](riskassessment.html): Unique identifier for the assessment
1504* [ServiceRequest](servicerequest.html): Identifiers assigned to this order
1505* [Specimen](specimen.html): The unique identifier associated with the specimen
1506* [SupplyDelivery](supplydelivery.html): External identifier
1507* [SupplyRequest](supplyrequest.html): Business Identifier for SupplyRequest
1508* [Task](task.html): Search for a task instance by its business identifier
1509* [VisionPrescription](visionprescription.html): Return prescriptions with this external identifier
1510</b><br>
1511   * Type: <b>token</b><br>
1512   * 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>
1513   * </p>
1514   */
1515  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1516
1517 /**
1518   * Search parameter: <b>patient</b>
1519   * <p>
1520   * Description: <b>Multiple Resources: 
1521
1522* [Account](account.html): The entity that caused the expenses
1523* [AdverseEvent](adverseevent.html): Subject impacted by event
1524* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1525* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1526* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1527* [AuditEvent](auditevent.html): Where the activity involved patient data
1528* [Basic](basic.html): Identifies the focus of this resource
1529* [BodyStructure](bodystructure.html): Who this is about
1530* [CarePlan](careplan.html): Who the care plan is for
1531* [CareTeam](careteam.html): Who care team is for
1532* [ChargeItem](chargeitem.html): Individual service was done for/to
1533* [Claim](claim.html): Patient receiving the products or services
1534* [ClaimResponse](claimresponse.html): The subject of care
1535* [ClinicalImpression](clinicalimpression.html): Patient assessed
1536* [Communication](communication.html): Focus of message
1537* [CommunicationRequest](communicationrequest.html): Focus of message
1538* [Composition](composition.html): Who and/or what the composition is about
1539* [Condition](condition.html): Who has the condition?
1540* [Consent](consent.html): Who the consent applies to
1541* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1542* [Coverage](coverage.html): Retrieve coverages for a patient
1543* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1544* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1545* [DetectedIssue](detectedissue.html): Associated patient
1546* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1547* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1548* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1549* [DocumentReference](documentreference.html): Who/what is the subject of the document
1550* [Encounter](encounter.html): The patient present at the encounter
1551* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1552* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1553* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1554* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1555* [Flag](flag.html): The identity of a subject to list flags for
1556* [Goal](goal.html): Who this goal is intended for
1557* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1558* [ImagingSelection](imagingselection.html): Who the study is about
1559* [ImagingStudy](imagingstudy.html): Who the study is about
1560* [Immunization](immunization.html): The patient for the vaccination record
1561* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1562* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1563* [Invoice](invoice.html): Recipient(s) of goods and services
1564* [List](list.html): If all resources have the same subject
1565* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1566* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1567* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1568* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1569* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1570* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1571* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1572* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1573* [Observation](observation.html): The subject that the observation is about (if patient)
1574* [Person](person.html): The Person links to this Patient
1575* [Procedure](procedure.html): Search by subject - a patient
1576* [Provenance](provenance.html): Where the activity involved patient data
1577* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1578* [RelatedPerson](relatedperson.html): The patient this related person is related to
1579* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1580* [ResearchSubject](researchsubject.html): Who or what is part of study
1581* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1582* [ServiceRequest](servicerequest.html): Search by subject - a patient
1583* [Specimen](specimen.html): The patient the specimen comes from
1584* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1585* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1586* [Task](task.html): Search by patient
1587* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1588</b><br>
1589   * Type: <b>reference</b><br>
1590   * 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>
1591   * </p>
1592   */
1593  @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 } )
1594  public static final String SP_PATIENT = "patient";
1595 /**
1596   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1597   * <p>
1598   * Description: <b>Multiple Resources: 
1599
1600* [Account](account.html): The entity that caused the expenses
1601* [AdverseEvent](adverseevent.html): Subject impacted by event
1602* [AllergyIntolerance](allergyintolerance.html): Who the sensitivity is for
1603* [Appointment](appointment.html): One of the individuals of the appointment is this patient
1604* [AppointmentResponse](appointmentresponse.html): This Response is for this Patient
1605* [AuditEvent](auditevent.html): Where the activity involved patient data
1606* [Basic](basic.html): Identifies the focus of this resource
1607* [BodyStructure](bodystructure.html): Who this is about
1608* [CarePlan](careplan.html): Who the care plan is for
1609* [CareTeam](careteam.html): Who care team is for
1610* [ChargeItem](chargeitem.html): Individual service was done for/to
1611* [Claim](claim.html): Patient receiving the products or services
1612* [ClaimResponse](claimresponse.html): The subject of care
1613* [ClinicalImpression](clinicalimpression.html): Patient assessed
1614* [Communication](communication.html): Focus of message
1615* [CommunicationRequest](communicationrequest.html): Focus of message
1616* [Composition](composition.html): Who and/or what the composition is about
1617* [Condition](condition.html): Who has the condition?
1618* [Consent](consent.html): Who the consent applies to
1619* [Contract](contract.html): The identity of the subject of the contract (if a patient)
1620* [Coverage](coverage.html): Retrieve coverages for a patient
1621* [CoverageEligibilityRequest](coverageeligibilityrequest.html): The reference to the patient
1622* [CoverageEligibilityResponse](coverageeligibilityresponse.html): The reference to the patient
1623* [DetectedIssue](detectedissue.html): Associated patient
1624* [DeviceRequest](devicerequest.html): Individual the service is ordered for
1625* [DeviceUsage](deviceusage.html): Search by patient who used / uses the device
1626* [DiagnosticReport](diagnosticreport.html): The subject of the report if a patient
1627* [DocumentReference](documentreference.html): Who/what is the subject of the document
1628* [Encounter](encounter.html): The patient present at the encounter
1629* [EnrollmentRequest](enrollmentrequest.html): The party to be enrolled
1630* [EpisodeOfCare](episodeofcare.html): The patient who is the focus of this episode of care
1631* [ExplanationOfBenefit](explanationofbenefit.html): The reference to the patient
1632* [FamilyMemberHistory](familymemberhistory.html): The identity of a subject to list family member history items for
1633* [Flag](flag.html): The identity of a subject to list flags for
1634* [Goal](goal.html): Who this goal is intended for
1635* [GuidanceResponse](guidanceresponse.html): The identity of a patient to search for guidance response results
1636* [ImagingSelection](imagingselection.html): Who the study is about
1637* [ImagingStudy](imagingstudy.html): Who the study is about
1638* [Immunization](immunization.html): The patient for the vaccination record
1639* [ImmunizationEvaluation](immunizationevaluation.html): The patient being evaluated
1640* [ImmunizationRecommendation](immunizationrecommendation.html): Who this profile is for
1641* [Invoice](invoice.html): Recipient(s) of goods and services
1642* [List](list.html): If all resources have the same subject
1643* [MeasureReport](measurereport.html): The identity of a patient to search for individual measure report results for
1644* [MedicationAdministration](medicationadministration.html): The identity of a patient to list administrations  for
1645* [MedicationDispense](medicationdispense.html): The identity of a patient to list dispenses  for
1646* [MedicationRequest](medicationrequest.html): Returns prescriptions for a specific patient
1647* [MedicationStatement](medicationstatement.html): Returns statements for a specific patient.
1648* [MolecularSequence](molecularsequence.html): The subject that the sequence is about
1649* [NutritionIntake](nutritionintake.html): Returns statements for a specific patient.
1650* [NutritionOrder](nutritionorder.html): The identity of the individual or set of individuals who requires the diet, formula or nutritional supplement
1651* [Observation](observation.html): The subject that the observation is about (if patient)
1652* [Person](person.html): The Person links to this Patient
1653* [Procedure](procedure.html): Search by subject - a patient
1654* [Provenance](provenance.html): Where the activity involved patient data
1655* [QuestionnaireResponse](questionnaireresponse.html): The patient that is the subject of the questionnaire response
1656* [RelatedPerson](relatedperson.html): The patient this related person is related to
1657* [RequestOrchestration](requestorchestration.html): The identity of a patient to search for request orchestrations
1658* [ResearchSubject](researchsubject.html): Who or what is part of study
1659* [RiskAssessment](riskassessment.html): Who/what does assessment apply to?
1660* [ServiceRequest](servicerequest.html): Search by subject - a patient
1661* [Specimen](specimen.html): The patient the specimen comes from
1662* [SupplyDelivery](supplydelivery.html): Patient for whom the item is supplied
1663* [SupplyRequest](supplyrequest.html): The patient or subject for whom the supply is destined
1664* [Task](task.html): Search by patient
1665* [VisionPrescription](visionprescription.html): The identity of a patient to list dispenses for
1666</b><br>
1667   * Type: <b>reference</b><br>
1668   * 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>
1669   * </p>
1670   */
1671  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1672
1673/**
1674   * Constant for fluent queries to be used to add include statements. Specifies
1675   * the path value of "<b>RelatedPerson:patient</b>".
1676   */
1677  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("RelatedPerson:patient").toLocked();
1678
1679 /**
1680   * Search parameter: <b>address-city</b>
1681   * <p>
1682   * Description: <b>Multiple Resources: 
1683
1684* [Patient](patient.html): A city specified in an address
1685* [Person](person.html): A city specified in an address
1686* [Practitioner](practitioner.html): A city specified in an address
1687* [RelatedPerson](relatedperson.html): A city specified in an address
1688</b><br>
1689   * Type: <b>string</b><br>
1690   * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br>
1691   * </p>
1692   */
1693  @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" )
1694  public static final String SP_ADDRESS_CITY = "address-city";
1695 /**
1696   * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
1697   * <p>
1698   * Description: <b>Multiple Resources: 
1699
1700* [Patient](patient.html): A city specified in an address
1701* [Person](person.html): A city specified in an address
1702* [Practitioner](practitioner.html): A city specified in an address
1703* [RelatedPerson](relatedperson.html): A city specified in an address
1704</b><br>
1705   * Type: <b>string</b><br>
1706   * Path: <b>Patient.address.city | Person.address.city | Practitioner.address.city | RelatedPerson.address.city</b><br>
1707   * </p>
1708   */
1709  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY);
1710
1711 /**
1712   * Search parameter: <b>address-country</b>
1713   * <p>
1714   * Description: <b>Multiple Resources: 
1715
1716* [Patient](patient.html): A country specified in an address
1717* [Person](person.html): A country specified in an address
1718* [Practitioner](practitioner.html): A country specified in an address
1719* [RelatedPerson](relatedperson.html): A country specified in an address
1720</b><br>
1721   * Type: <b>string</b><br>
1722   * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br>
1723   * </p>
1724   */
1725  @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" )
1726  public static final String SP_ADDRESS_COUNTRY = "address-country";
1727 /**
1728   * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
1729   * <p>
1730   * Description: <b>Multiple Resources: 
1731
1732* [Patient](patient.html): A country specified in an address
1733* [Person](person.html): A country specified in an address
1734* [Practitioner](practitioner.html): A country specified in an address
1735* [RelatedPerson](relatedperson.html): A country specified in an address
1736</b><br>
1737   * Type: <b>string</b><br>
1738   * Path: <b>Patient.address.country | Person.address.country | Practitioner.address.country | RelatedPerson.address.country</b><br>
1739   * </p>
1740   */
1741  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY);
1742
1743 /**
1744   * Search parameter: <b>address-postalcode</b>
1745   * <p>
1746   * Description: <b>Multiple Resources: 
1747
1748* [Patient](patient.html): A postalCode specified in an address
1749* [Person](person.html): A postal code specified in an address
1750* [Practitioner](practitioner.html): A postalCode specified in an address
1751* [RelatedPerson](relatedperson.html): A postal code specified in an address
1752</b><br>
1753   * Type: <b>string</b><br>
1754   * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br>
1755   * </p>
1756   */
1757  @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" )
1758  public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
1759 /**
1760   * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
1761   * <p>
1762   * Description: <b>Multiple Resources: 
1763
1764* [Patient](patient.html): A postalCode specified in an address
1765* [Person](person.html): A postal code specified in an address
1766* [Practitioner](practitioner.html): A postalCode specified in an address
1767* [RelatedPerson](relatedperson.html): A postal code specified in an address
1768</b><br>
1769   * Type: <b>string</b><br>
1770   * Path: <b>Patient.address.postalCode | Person.address.postalCode | Practitioner.address.postalCode | RelatedPerson.address.postalCode</b><br>
1771   * </p>
1772   */
1773  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE);
1774
1775 /**
1776   * Search parameter: <b>address-state</b>
1777   * <p>
1778   * Description: <b>Multiple Resources: 
1779
1780* [Patient](patient.html): A state specified in an address
1781* [Person](person.html): A state specified in an address
1782* [Practitioner](practitioner.html): A state specified in an address
1783* [RelatedPerson](relatedperson.html): A state specified in an address
1784</b><br>
1785   * Type: <b>string</b><br>
1786   * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br>
1787   * </p>
1788   */
1789  @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" )
1790  public static final String SP_ADDRESS_STATE = "address-state";
1791 /**
1792   * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
1793   * <p>
1794   * Description: <b>Multiple Resources: 
1795
1796* [Patient](patient.html): A state specified in an address
1797* [Person](person.html): A state specified in an address
1798* [Practitioner](practitioner.html): A state specified in an address
1799* [RelatedPerson](relatedperson.html): A state specified in an address
1800</b><br>
1801   * Type: <b>string</b><br>
1802   * Path: <b>Patient.address.state | Person.address.state | Practitioner.address.state | RelatedPerson.address.state</b><br>
1803   * </p>
1804   */
1805  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE);
1806
1807 /**
1808   * Search parameter: <b>address-use</b>
1809   * <p>
1810   * Description: <b>Multiple Resources: 
1811
1812* [Patient](patient.html): A use code specified in an address
1813* [Person](person.html): A use code specified in an address
1814* [Practitioner](practitioner.html): A use code specified in an address
1815* [RelatedPerson](relatedperson.html): A use code specified in an address
1816</b><br>
1817   * Type: <b>token</b><br>
1818   * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br>
1819   * </p>
1820   */
1821  @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" )
1822  public static final String SP_ADDRESS_USE = "address-use";
1823 /**
1824   * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
1825   * <p>
1826   * Description: <b>Multiple Resources: 
1827
1828* [Patient](patient.html): A use code specified in an address
1829* [Person](person.html): A use code specified in an address
1830* [Practitioner](practitioner.html): A use code specified in an address
1831* [RelatedPerson](relatedperson.html): A use code specified in an address
1832</b><br>
1833   * Type: <b>token</b><br>
1834   * Path: <b>Patient.address.use | Person.address.use | Practitioner.address.use | RelatedPerson.address.use</b><br>
1835   * </p>
1836   */
1837  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE);
1838
1839 /**
1840   * Search parameter: <b>address</b>
1841   * <p>
1842   * Description: <b>Multiple Resources: 
1843
1844* [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
1845* [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
1846* [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
1847* [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
1848</b><br>
1849   * Type: <b>string</b><br>
1850   * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br>
1851   * </p>
1852   */
1853  @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" )
1854  public static final String SP_ADDRESS = "address";
1855 /**
1856   * <b>Fluent Client</b> search parameter constant for <b>address</b>
1857   * <p>
1858   * Description: <b>Multiple Resources: 
1859
1860* [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
1861* [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
1862* [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
1863* [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
1864</b><br>
1865   * Type: <b>string</b><br>
1866   * Path: <b>Patient.address | Person.address | Practitioner.address | RelatedPerson.address</b><br>
1867   * </p>
1868   */
1869  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS);
1870
1871 /**
1872   * Search parameter: <b>birthdate</b>
1873   * <p>
1874   * Description: <b>Multiple Resources: 
1875
1876* [Patient](patient.html): The patient's date of birth
1877* [Person](person.html): The person's date of birth
1878* [RelatedPerson](relatedperson.html): The Related Person's date of birth
1879</b><br>
1880   * Type: <b>date</b><br>
1881   * Path: <b>Patient.birthDate | Person.birthDate | RelatedPerson.birthDate</b><br>
1882   * </p>
1883   */
1884  @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" )
1885  public static final String SP_BIRTHDATE = "birthdate";
1886 /**
1887   * <b>Fluent Client</b> search parameter constant for <b>birthdate</b>
1888   * <p>
1889   * Description: <b>Multiple Resources: 
1890
1891* [Patient](patient.html): The patient's date of birth
1892* [Person](person.html): The person's date of birth
1893* [RelatedPerson](relatedperson.html): The Related Person's date of birth
1894</b><br>
1895   * Type: <b>date</b><br>
1896   * Path: <b>Patient.birthDate | Person.birthDate | RelatedPerson.birthDate</b><br>
1897   * </p>
1898   */
1899  public static final ca.uhn.fhir.rest.gclient.DateClientParam BIRTHDATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_BIRTHDATE);
1900
1901 /**
1902   * Search parameter: <b>email</b>
1903   * <p>
1904   * Description: <b>Multiple Resources: 
1905
1906* [Patient](patient.html): A value in an email contact
1907* [Person](person.html): A value in an email contact
1908* [Practitioner](practitioner.html): A value in an email contact
1909* [PractitionerRole](practitionerrole.html): A value in an email contact
1910* [RelatedPerson](relatedperson.html): A value in an email contact
1911</b><br>
1912   * Type: <b>token</b><br>
1913   * 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>
1914   * </p>
1915   */
1916  @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" )
1917  public static final String SP_EMAIL = "email";
1918 /**
1919   * <b>Fluent Client</b> search parameter constant for <b>email</b>
1920   * <p>
1921   * Description: <b>Multiple Resources: 
1922
1923* [Patient](patient.html): A value in an email contact
1924* [Person](person.html): A value in an email contact
1925* [Practitioner](practitioner.html): A value in an email contact
1926* [PractitionerRole](practitionerrole.html): A value in an email contact
1927* [RelatedPerson](relatedperson.html): A value in an email contact
1928</b><br>
1929   * Type: <b>token</b><br>
1930   * 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>
1931   * </p>
1932   */
1933  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL);
1934
1935 /**
1936   * Search parameter: <b>gender</b>
1937   * <p>
1938   * Description: <b>Multiple Resources: 
1939
1940* [Patient](patient.html): Gender of the patient
1941* [Person](person.html): The gender of the person
1942* [Practitioner](practitioner.html): Gender of the practitioner
1943* [RelatedPerson](relatedperson.html): Gender of the related person
1944</b><br>
1945   * Type: <b>token</b><br>
1946   * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br>
1947   * </p>
1948   */
1949  @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" )
1950  public static final String SP_GENDER = "gender";
1951 /**
1952   * <b>Fluent Client</b> search parameter constant for <b>gender</b>
1953   * <p>
1954   * Description: <b>Multiple Resources: 
1955
1956* [Patient](patient.html): Gender of the patient
1957* [Person](person.html): The gender of the person
1958* [Practitioner](practitioner.html): Gender of the practitioner
1959* [RelatedPerson](relatedperson.html): Gender of the related person
1960</b><br>
1961   * Type: <b>token</b><br>
1962   * Path: <b>Patient.gender | Person.gender | Practitioner.gender | RelatedPerson.gender</b><br>
1963   * </p>
1964   */
1965  public static final ca.uhn.fhir.rest.gclient.TokenClientParam GENDER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_GENDER);
1966
1967 /**
1968   * Search parameter: <b>phone</b>
1969   * <p>
1970   * Description: <b>Multiple Resources: 
1971
1972* [Patient](patient.html): A value in a phone contact
1973* [Person](person.html): A value in a phone contact
1974* [Practitioner](practitioner.html): A value in a phone contact
1975* [PractitionerRole](practitionerrole.html): A value in a phone contact
1976* [RelatedPerson](relatedperson.html): A value in a phone contact
1977</b><br>
1978   * Type: <b>token</b><br>
1979   * 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>
1980   * </p>
1981   */
1982  @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" )
1983  public static final String SP_PHONE = "phone";
1984 /**
1985   * <b>Fluent Client</b> search parameter constant for <b>phone</b>
1986   * <p>
1987   * Description: <b>Multiple Resources: 
1988
1989* [Patient](patient.html): A value in a phone contact
1990* [Person](person.html): A value in a phone contact
1991* [Practitioner](practitioner.html): A value in a phone contact
1992* [PractitionerRole](practitionerrole.html): A value in a phone contact
1993* [RelatedPerson](relatedperson.html): A value in a phone contact
1994</b><br>
1995   * Type: <b>token</b><br>
1996   * 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>
1997   * </p>
1998   */
1999  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE);
2000
2001 /**
2002   * Search parameter: <b>phonetic</b>
2003   * <p>
2004   * Description: <b>Multiple Resources: 
2005
2006* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm
2007* [Person](person.html): A portion of name using some kind of phonetic matching algorithm
2008* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm
2009* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm
2010</b><br>
2011   * Type: <b>string</b><br>
2012   * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br>
2013   * </p>
2014   */
2015  @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" )
2016  public static final String SP_PHONETIC = "phonetic";
2017 /**
2018   * <b>Fluent Client</b> search parameter constant for <b>phonetic</b>
2019   * <p>
2020   * Description: <b>Multiple Resources: 
2021
2022* [Patient](patient.html): A portion of either family or given name using some kind of phonetic matching algorithm
2023* [Person](person.html): A portion of name using some kind of phonetic matching algorithm
2024* [Practitioner](practitioner.html): A portion of either family or given name using some kind of phonetic matching algorithm
2025* [RelatedPerson](relatedperson.html): A portion of name using some kind of phonetic matching algorithm
2026</b><br>
2027   * Type: <b>string</b><br>
2028   * Path: <b>Patient.name | Person.name | Practitioner.name | RelatedPerson.name</b><br>
2029   * </p>
2030   */
2031  public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC);
2032
2033 /**
2034   * Search parameter: <b>telecom</b>
2035   * <p>
2036   * Description: <b>Multiple Resources: 
2037
2038* [Patient](patient.html): The value in any kind of telecom details of the patient
2039* [Person](person.html): The value in any kind of contact
2040* [Practitioner](practitioner.html): The value in any kind of contact
2041* [PractitionerRole](practitionerrole.html): The value in any kind of contact
2042* [RelatedPerson](relatedperson.html): The value in any kind of contact
2043</b><br>
2044   * Type: <b>token</b><br>
2045   * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br>
2046   * </p>
2047   */
2048  @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" )
2049  public static final String SP_TELECOM = "telecom";
2050 /**
2051   * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
2052   * <p>
2053   * Description: <b>Multiple Resources: 
2054
2055* [Patient](patient.html): The value in any kind of telecom details of the patient
2056* [Person](person.html): The value in any kind of contact
2057* [Practitioner](practitioner.html): The value in any kind of contact
2058* [PractitionerRole](practitionerrole.html): The value in any kind of contact
2059* [RelatedPerson](relatedperson.html): The value in any kind of contact
2060</b><br>
2061   * Type: <b>token</b><br>
2062   * Path: <b>Patient.telecom | Person.telecom | Practitioner.telecom | PractitionerRole.contact.telecom | RelatedPerson.telecom</b><br>
2063   * </p>
2064   */
2065  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM);
2066
2067
2068}
2069