001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Thu, Mar 23, 2023 19:59+1100 for FHIR v5.0.0
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc.
052 */
053@ResourceDef(name="Organization", profile="http://hl7.org/fhir/StructureDefinition/Organization")
054public class Organization extends DomainResource {
055
056    @Block()
057    public static class OrganizationQualificationComponent extends BackboneElement implements IBaseBackboneElement {
058        /**
059         * An identifier allocated to this qualification for this organization.
060         */
061        @Child(name = "identifier", type = {Identifier.class}, order=1, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
062        @Description(shortDefinition="An identifier for this qualification for the organization", formalDefinition="An identifier allocated to this qualification for this organization." )
063        protected List<Identifier> identifier;
064
065        /**
066         * Coded representation of the qualification.
067         */
068        @Child(name = "code", type = {CodeableConcept.class}, order=2, min=1, max=1, modifier=false, summary=false)
069        @Description(shortDefinition="Coded representation of the qualification", formalDefinition="Coded representation of the qualification." )
070        protected CodeableConcept code;
071
072        /**
073         * Period during which the qualification is valid.
074         */
075        @Child(name = "period", type = {Period.class}, order=3, min=0, max=1, modifier=false, summary=false)
076        @Description(shortDefinition="Period during which the qualification is valid", formalDefinition="Period during which the qualification is valid." )
077        protected Period period;
078
079        /**
080         * Organization that regulates and issues the qualification.
081         */
082        @Child(name = "issuer", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false)
083        @Description(shortDefinition="Organization that regulates and issues the qualification", formalDefinition="Organization that regulates and issues the qualification." )
084        protected Reference issuer;
085
086        private static final long serialVersionUID = 1561812204L;
087
088    /**
089     * Constructor
090     */
091      public OrganizationQualificationComponent() {
092        super();
093      }
094
095    /**
096     * Constructor
097     */
098      public OrganizationQualificationComponent(CodeableConcept code) {
099        super();
100        this.setCode(code);
101      }
102
103        /**
104         * @return {@link #identifier} (An identifier allocated to this qualification for this organization.)
105         */
106        public List<Identifier> getIdentifier() { 
107          if (this.identifier == null)
108            this.identifier = new ArrayList<Identifier>();
109          return this.identifier;
110        }
111
112        /**
113         * @return Returns a reference to <code>this</code> for easy method chaining
114         */
115        public OrganizationQualificationComponent setIdentifier(List<Identifier> theIdentifier) { 
116          this.identifier = theIdentifier;
117          return this;
118        }
119
120        public boolean hasIdentifier() { 
121          if (this.identifier == null)
122            return false;
123          for (Identifier item : this.identifier)
124            if (!item.isEmpty())
125              return true;
126          return false;
127        }
128
129        public Identifier addIdentifier() { //3
130          Identifier t = new Identifier();
131          if (this.identifier == null)
132            this.identifier = new ArrayList<Identifier>();
133          this.identifier.add(t);
134          return t;
135        }
136
137        public OrganizationQualificationComponent addIdentifier(Identifier t) { //3
138          if (t == null)
139            return this;
140          if (this.identifier == null)
141            this.identifier = new ArrayList<Identifier>();
142          this.identifier.add(t);
143          return this;
144        }
145
146        /**
147         * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
148         */
149        public Identifier getIdentifierFirstRep() { 
150          if (getIdentifier().isEmpty()) {
151            addIdentifier();
152          }
153          return getIdentifier().get(0);
154        }
155
156        /**
157         * @return {@link #code} (Coded representation of the qualification.)
158         */
159        public CodeableConcept getCode() { 
160          if (this.code == null)
161            if (Configuration.errorOnAutoCreate())
162              throw new Error("Attempt to auto-create OrganizationQualificationComponent.code");
163            else if (Configuration.doAutoCreate())
164              this.code = new CodeableConcept(); // cc
165          return this.code;
166        }
167
168        public boolean hasCode() { 
169          return this.code != null && !this.code.isEmpty();
170        }
171
172        /**
173         * @param value {@link #code} (Coded representation of the qualification.)
174         */
175        public OrganizationQualificationComponent setCode(CodeableConcept value) { 
176          this.code = value;
177          return this;
178        }
179
180        /**
181         * @return {@link #period} (Period during which the qualification is valid.)
182         */
183        public Period getPeriod() { 
184          if (this.period == null)
185            if (Configuration.errorOnAutoCreate())
186              throw new Error("Attempt to auto-create OrganizationQualificationComponent.period");
187            else if (Configuration.doAutoCreate())
188              this.period = new Period(); // cc
189          return this.period;
190        }
191
192        public boolean hasPeriod() { 
193          return this.period != null && !this.period.isEmpty();
194        }
195
196        /**
197         * @param value {@link #period} (Period during which the qualification is valid.)
198         */
199        public OrganizationQualificationComponent setPeriod(Period value) { 
200          this.period = value;
201          return this;
202        }
203
204        /**
205         * @return {@link #issuer} (Organization that regulates and issues the qualification.)
206         */
207        public Reference getIssuer() { 
208          if (this.issuer == null)
209            if (Configuration.errorOnAutoCreate())
210              throw new Error("Attempt to auto-create OrganizationQualificationComponent.issuer");
211            else if (Configuration.doAutoCreate())
212              this.issuer = new Reference(); // cc
213          return this.issuer;
214        }
215
216        public boolean hasIssuer() { 
217          return this.issuer != null && !this.issuer.isEmpty();
218        }
219
220        /**
221         * @param value {@link #issuer} (Organization that regulates and issues the qualification.)
222         */
223        public OrganizationQualificationComponent setIssuer(Reference value) { 
224          this.issuer = value;
225          return this;
226        }
227
228        protected void listChildren(List<Property> children) {
229          super.listChildren(children);
230          children.add(new Property("identifier", "Identifier", "An identifier allocated to this qualification for this organization.", 0, java.lang.Integer.MAX_VALUE, identifier));
231          children.add(new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code));
232          children.add(new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period));
233          children.add(new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer));
234        }
235
236        @Override
237        public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
238          switch (_hash) {
239          case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "An identifier allocated to this qualification for this organization.", 0, java.lang.Integer.MAX_VALUE, identifier);
240          case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Coded representation of the qualification.", 0, 1, code);
241          case -991726143: /*period*/  return new Property("period", "Period", "Period during which the qualification is valid.", 0, 1, period);
242          case -1179159879: /*issuer*/  return new Property("issuer", "Reference(Organization)", "Organization that regulates and issues the qualification.", 0, 1, issuer);
243          default: return super.getNamedProperty(_hash, _name, _checkValid);
244          }
245
246        }
247
248      @Override
249      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
250        switch (hash) {
251        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
252        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
253        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
254        case -1179159879: /*issuer*/ return this.issuer == null ? new Base[0] : new Base[] {this.issuer}; // Reference
255        default: return super.getProperty(hash, name, checkValid);
256        }
257
258      }
259
260      @Override
261      public Base setProperty(int hash, String name, Base value) throws FHIRException {
262        switch (hash) {
263        case -1618432855: // identifier
264          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
265          return value;
266        case 3059181: // code
267          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
268          return value;
269        case -991726143: // period
270          this.period = TypeConvertor.castToPeriod(value); // Period
271          return value;
272        case -1179159879: // issuer
273          this.issuer = TypeConvertor.castToReference(value); // Reference
274          return value;
275        default: return super.setProperty(hash, name, value);
276        }
277
278      }
279
280      @Override
281      public Base setProperty(String name, Base value) throws FHIRException {
282        if (name.equals("identifier")) {
283          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
284        } else if (name.equals("code")) {
285          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
286        } else if (name.equals("period")) {
287          this.period = TypeConvertor.castToPeriod(value); // Period
288        } else if (name.equals("issuer")) {
289          this.issuer = TypeConvertor.castToReference(value); // Reference
290        } else
291          return super.setProperty(name, value);
292        return value;
293      }
294
295      @Override
296      public Base makeProperty(int hash, String name) throws FHIRException {
297        switch (hash) {
298        case -1618432855:  return addIdentifier(); 
299        case 3059181:  return getCode();
300        case -991726143:  return getPeriod();
301        case -1179159879:  return getIssuer();
302        default: return super.makeProperty(hash, name);
303        }
304
305      }
306
307      @Override
308      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
309        switch (hash) {
310        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
311        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
312        case -991726143: /*period*/ return new String[] {"Period"};
313        case -1179159879: /*issuer*/ return new String[] {"Reference"};
314        default: return super.getTypesForProperty(hash, name);
315        }
316
317      }
318
319      @Override
320      public Base addChild(String name) throws FHIRException {
321        if (name.equals("identifier")) {
322          return addIdentifier();
323        }
324        else if (name.equals("code")) {
325          this.code = new CodeableConcept();
326          return this.code;
327        }
328        else if (name.equals("period")) {
329          this.period = new Period();
330          return this.period;
331        }
332        else if (name.equals("issuer")) {
333          this.issuer = new Reference();
334          return this.issuer;
335        }
336        else
337          return super.addChild(name);
338      }
339
340      public OrganizationQualificationComponent copy() {
341        OrganizationQualificationComponent dst = new OrganizationQualificationComponent();
342        copyValues(dst);
343        return dst;
344      }
345
346      public void copyValues(OrganizationQualificationComponent dst) {
347        super.copyValues(dst);
348        if (identifier != null) {
349          dst.identifier = new ArrayList<Identifier>();
350          for (Identifier i : identifier)
351            dst.identifier.add(i.copy());
352        };
353        dst.code = code == null ? null : code.copy();
354        dst.period = period == null ? null : period.copy();
355        dst.issuer = issuer == null ? null : issuer.copy();
356      }
357
358      @Override
359      public boolean equalsDeep(Base other_) {
360        if (!super.equalsDeep(other_))
361          return false;
362        if (!(other_ instanceof OrganizationQualificationComponent))
363          return false;
364        OrganizationQualificationComponent o = (OrganizationQualificationComponent) other_;
365        return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(period, o.period, true)
366           && compareDeep(issuer, o.issuer, true);
367      }
368
369      @Override
370      public boolean equalsShallow(Base other_) {
371        if (!super.equalsShallow(other_))
372          return false;
373        if (!(other_ instanceof OrganizationQualificationComponent))
374          return false;
375        OrganizationQualificationComponent o = (OrganizationQualificationComponent) other_;
376        return true;
377      }
378
379      public boolean isEmpty() {
380        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, period
381          , issuer);
382      }
383
384  public String fhirType() {
385    return "Organization.qualification";
386
387  }
388
389  }
390
391    /**
392     * Identifier for the organization that is used to identify the organization across multiple disparate systems.
393     */
394    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
395    @Description(shortDefinition="Identifies this organization  across multiple systems", formalDefinition="Identifier for the organization that is used to identify the organization across multiple disparate systems." )
396    protected List<Identifier> identifier;
397
398    /**
399     * Whether the organization's record is still in active use.
400     */
401    @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=true, summary=true)
402    @Description(shortDefinition="Whether the organization's record is still in active use", formalDefinition="Whether the organization's record is still in active use." )
403    protected BooleanType active;
404
405    /**
406     * The kind(s) of organization that this is.
407     */
408    @Child(name = "type", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
409    @Description(shortDefinition="Kind of organization", formalDefinition="The kind(s) of organization that this is." )
410    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/organization-type")
411    protected List<CodeableConcept> type;
412
413    /**
414     * A name associated with the organization.
415     */
416    @Child(name = "name", type = {StringType.class}, order=3, min=0, max=1, modifier=false, summary=true)
417    @Description(shortDefinition="Name used for the organization", formalDefinition="A name associated with the organization." )
418    protected StringType name;
419
420    /**
421     * A list of alternate names that the organization is known as, or was known as in the past.
422     */
423    @Child(name = "alias", type = {StringType.class}, order=4, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
424    @Description(shortDefinition="A list of alternate names that the organization is known as, or was known as in the past", formalDefinition="A list of alternate names that the organization is known as, or was known as in the past." )
425    protected List<StringType> alias;
426
427    /**
428     * Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.
429     */
430    @Child(name = "description", type = {MarkdownType.class}, order=5, min=0, max=1, modifier=false, summary=true)
431    @Description(shortDefinition="Additional details about the Organization that could be displayed as further information to identify the Organization beyond its name", formalDefinition="Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected." )
432    protected MarkdownType description;
433
434    /**
435     * The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.
436     */
437    @Child(name = "contact", type = {ExtendedContactDetail.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
438    @Description(shortDefinition="Official contact details for the Organization", formalDefinition="The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites." )
439    protected List<ExtendedContactDetail> contact;
440
441    /**
442     * The organization of which this organization forms a part.
443     */
444    @Child(name = "partOf", type = {Organization.class}, order=7, min=0, max=1, modifier=false, summary=true)
445    @Description(shortDefinition="The organization of which this organization forms a part", formalDefinition="The organization of which this organization forms a part." )
446    protected Reference partOf;
447
448    /**
449     * Technical endpoints providing access to services operated for the organization.
450     */
451    @Child(name = "endpoint", type = {Endpoint.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
452    @Description(shortDefinition="Technical endpoints providing access to services operated for the organization", formalDefinition="Technical endpoints providing access to services operated for the organization." )
453    protected List<Reference> endpoint;
454
455    /**
456     * The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.
457
458For example, an approval to provide a type of services issued by a certifying body (such as the US Joint Commission) to an organization.
459     */
460    @Child(name = "qualification", type = {}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
461    @Description(shortDefinition="Qualifications, certifications, accreditations, licenses, training, etc. pertaining to the provision of care", formalDefinition="The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.\r\rFor example, an approval to provide a type of services issued by a certifying body (such as the US Joint Commission) to an organization." )
462    protected List<OrganizationQualificationComponent> qualification;
463
464    private static final long serialVersionUID = 1270045104L;
465
466  /**
467   * Constructor
468   */
469    public Organization() {
470      super();
471    }
472
473    /**
474     * @return {@link #identifier} (Identifier for the organization that is used to identify the organization across multiple disparate systems.)
475     */
476    public List<Identifier> getIdentifier() { 
477      if (this.identifier == null)
478        this.identifier = new ArrayList<Identifier>();
479      return this.identifier;
480    }
481
482    /**
483     * @return Returns a reference to <code>this</code> for easy method chaining
484     */
485    public Organization setIdentifier(List<Identifier> theIdentifier) { 
486      this.identifier = theIdentifier;
487      return this;
488    }
489
490    public boolean hasIdentifier() { 
491      if (this.identifier == null)
492        return false;
493      for (Identifier item : this.identifier)
494        if (!item.isEmpty())
495          return true;
496      return false;
497    }
498
499    public Identifier addIdentifier() { //3
500      Identifier t = new Identifier();
501      if (this.identifier == null)
502        this.identifier = new ArrayList<Identifier>();
503      this.identifier.add(t);
504      return t;
505    }
506
507    public Organization addIdentifier(Identifier t) { //3
508      if (t == null)
509        return this;
510      if (this.identifier == null)
511        this.identifier = new ArrayList<Identifier>();
512      this.identifier.add(t);
513      return this;
514    }
515
516    /**
517     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
518     */
519    public Identifier getIdentifierFirstRep() { 
520      if (getIdentifier().isEmpty()) {
521        addIdentifier();
522      }
523      return getIdentifier().get(0);
524    }
525
526    /**
527     * @return {@link #active} (Whether the organization's record is still in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
528     */
529    public BooleanType getActiveElement() { 
530      if (this.active == null)
531        if (Configuration.errorOnAutoCreate())
532          throw new Error("Attempt to auto-create Organization.active");
533        else if (Configuration.doAutoCreate())
534          this.active = new BooleanType(); // bb
535      return this.active;
536    }
537
538    public boolean hasActiveElement() { 
539      return this.active != null && !this.active.isEmpty();
540    }
541
542    public boolean hasActive() { 
543      return this.active != null && !this.active.isEmpty();
544    }
545
546    /**
547     * @param value {@link #active} (Whether the organization's record is still in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
548     */
549    public Organization setActiveElement(BooleanType value) { 
550      this.active = value;
551      return this;
552    }
553
554    /**
555     * @return Whether the organization's record is still in active use.
556     */
557    public boolean getActive() { 
558      return this.active == null || this.active.isEmpty() ? false : this.active.getValue();
559    }
560
561    /**
562     * @param value Whether the organization's record is still in active use.
563     */
564    public Organization setActive(boolean value) { 
565        if (this.active == null)
566          this.active = new BooleanType();
567        this.active.setValue(value);
568      return this;
569    }
570
571    /**
572     * @return {@link #type} (The kind(s) of organization that this is.)
573     */
574    public List<CodeableConcept> getType() { 
575      if (this.type == null)
576        this.type = new ArrayList<CodeableConcept>();
577      return this.type;
578    }
579
580    /**
581     * @return Returns a reference to <code>this</code> for easy method chaining
582     */
583    public Organization setType(List<CodeableConcept> theType) { 
584      this.type = theType;
585      return this;
586    }
587
588    public boolean hasType() { 
589      if (this.type == null)
590        return false;
591      for (CodeableConcept item : this.type)
592        if (!item.isEmpty())
593          return true;
594      return false;
595    }
596
597    public CodeableConcept addType() { //3
598      CodeableConcept t = new CodeableConcept();
599      if (this.type == null)
600        this.type = new ArrayList<CodeableConcept>();
601      this.type.add(t);
602      return t;
603    }
604
605    public Organization addType(CodeableConcept t) { //3
606      if (t == null)
607        return this;
608      if (this.type == null)
609        this.type = new ArrayList<CodeableConcept>();
610      this.type.add(t);
611      return this;
612    }
613
614    /**
615     * @return The first repetition of repeating field {@link #type}, creating it if it does not already exist {3}
616     */
617    public CodeableConcept getTypeFirstRep() { 
618      if (getType().isEmpty()) {
619        addType();
620      }
621      return getType().get(0);
622    }
623
624    /**
625     * @return {@link #name} (A name associated with the organization.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
626     */
627    public StringType getNameElement() { 
628      if (this.name == null)
629        if (Configuration.errorOnAutoCreate())
630          throw new Error("Attempt to auto-create Organization.name");
631        else if (Configuration.doAutoCreate())
632          this.name = new StringType(); // bb
633      return this.name;
634    }
635
636    public boolean hasNameElement() { 
637      return this.name != null && !this.name.isEmpty();
638    }
639
640    public boolean hasName() { 
641      return this.name != null && !this.name.isEmpty();
642    }
643
644    /**
645     * @param value {@link #name} (A name associated with the organization.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
646     */
647    public Organization setNameElement(StringType value) { 
648      this.name = value;
649      return this;
650    }
651
652    /**
653     * @return A name associated with the organization.
654     */
655    public String getName() { 
656      return this.name == null ? null : this.name.getValue();
657    }
658
659    /**
660     * @param value A name associated with the organization.
661     */
662    public Organization setName(String value) { 
663      if (Utilities.noString(value))
664        this.name = null;
665      else {
666        if (this.name == null)
667          this.name = new StringType();
668        this.name.setValue(value);
669      }
670      return this;
671    }
672
673    /**
674     * @return {@link #alias} (A list of alternate names that the organization is known as, or was known as in the past.)
675     */
676    public List<StringType> getAlias() { 
677      if (this.alias == null)
678        this.alias = new ArrayList<StringType>();
679      return this.alias;
680    }
681
682    /**
683     * @return Returns a reference to <code>this</code> for easy method chaining
684     */
685    public Organization setAlias(List<StringType> theAlias) { 
686      this.alias = theAlias;
687      return this;
688    }
689
690    public boolean hasAlias() { 
691      if (this.alias == null)
692        return false;
693      for (StringType item : this.alias)
694        if (!item.isEmpty())
695          return true;
696      return false;
697    }
698
699    /**
700     * @return {@link #alias} (A list of alternate names that the organization is known as, or was known as in the past.)
701     */
702    public StringType addAliasElement() {//2 
703      StringType t = new StringType();
704      if (this.alias == null)
705        this.alias = new ArrayList<StringType>();
706      this.alias.add(t);
707      return t;
708    }
709
710    /**
711     * @param value {@link #alias} (A list of alternate names that the organization is known as, or was known as in the past.)
712     */
713    public Organization addAlias(String value) { //1
714      StringType t = new StringType();
715      t.setValue(value);
716      if (this.alias == null)
717        this.alias = new ArrayList<StringType>();
718      this.alias.add(t);
719      return this;
720    }
721
722    /**
723     * @param value {@link #alias} (A list of alternate names that the organization is known as, or was known as in the past.)
724     */
725    public boolean hasAlias(String value) { 
726      if (this.alias == null)
727        return false;
728      for (StringType v : this.alias)
729        if (v.getValue().equals(value)) // string
730          return true;
731      return false;
732    }
733
734    /**
735     * @return {@link #description} (Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
736     */
737    public MarkdownType getDescriptionElement() { 
738      if (this.description == null)
739        if (Configuration.errorOnAutoCreate())
740          throw new Error("Attempt to auto-create Organization.description");
741        else if (Configuration.doAutoCreate())
742          this.description = new MarkdownType(); // bb
743      return this.description;
744    }
745
746    public boolean hasDescriptionElement() { 
747      return this.description != null && !this.description.isEmpty();
748    }
749
750    public boolean hasDescription() { 
751      return this.description != null && !this.description.isEmpty();
752    }
753
754    /**
755     * @param value {@link #description} (Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
756     */
757    public Organization setDescriptionElement(MarkdownType value) { 
758      this.description = value;
759      return this;
760    }
761
762    /**
763     * @return Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.
764     */
765    public String getDescription() { 
766      return this.description == null ? null : this.description.getValue();
767    }
768
769    /**
770     * @param value Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.
771     */
772    public Organization setDescription(String value) { 
773      if (Utilities.noString(value))
774        this.description = null;
775      else {
776        if (this.description == null)
777          this.description = new MarkdownType();
778        this.description.setValue(value);
779      }
780      return this;
781    }
782
783    /**
784     * @return {@link #contact} (The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.)
785     */
786    public List<ExtendedContactDetail> getContact() { 
787      if (this.contact == null)
788        this.contact = new ArrayList<ExtendedContactDetail>();
789      return this.contact;
790    }
791
792    /**
793     * @return Returns a reference to <code>this</code> for easy method chaining
794     */
795    public Organization setContact(List<ExtendedContactDetail> theContact) { 
796      this.contact = theContact;
797      return this;
798    }
799
800    public boolean hasContact() { 
801      if (this.contact == null)
802        return false;
803      for (ExtendedContactDetail item : this.contact)
804        if (!item.isEmpty())
805          return true;
806      return false;
807    }
808
809    public ExtendedContactDetail addContact() { //3
810      ExtendedContactDetail t = new ExtendedContactDetail();
811      if (this.contact == null)
812        this.contact = new ArrayList<ExtendedContactDetail>();
813      this.contact.add(t);
814      return t;
815    }
816
817    public Organization addContact(ExtendedContactDetail t) { //3
818      if (t == null)
819        return this;
820      if (this.contact == null)
821        this.contact = new ArrayList<ExtendedContactDetail>();
822      this.contact.add(t);
823      return this;
824    }
825
826    /**
827     * @return The first repetition of repeating field {@link #contact}, creating it if it does not already exist {3}
828     */
829    public ExtendedContactDetail getContactFirstRep() { 
830      if (getContact().isEmpty()) {
831        addContact();
832      }
833      return getContact().get(0);
834    }
835
836    /**
837     * @return {@link #partOf} (The organization of which this organization forms a part.)
838     */
839    public Reference getPartOf() { 
840      if (this.partOf == null)
841        if (Configuration.errorOnAutoCreate())
842          throw new Error("Attempt to auto-create Organization.partOf");
843        else if (Configuration.doAutoCreate())
844          this.partOf = new Reference(); // cc
845      return this.partOf;
846    }
847
848    public boolean hasPartOf() { 
849      return this.partOf != null && !this.partOf.isEmpty();
850    }
851
852    /**
853     * @param value {@link #partOf} (The organization of which this organization forms a part.)
854     */
855    public Organization setPartOf(Reference value) { 
856      this.partOf = value;
857      return this;
858    }
859
860    /**
861     * @return {@link #endpoint} (Technical endpoints providing access to services operated for the organization.)
862     */
863    public List<Reference> getEndpoint() { 
864      if (this.endpoint == null)
865        this.endpoint = new ArrayList<Reference>();
866      return this.endpoint;
867    }
868
869    /**
870     * @return Returns a reference to <code>this</code> for easy method chaining
871     */
872    public Organization setEndpoint(List<Reference> theEndpoint) { 
873      this.endpoint = theEndpoint;
874      return this;
875    }
876
877    public boolean hasEndpoint() { 
878      if (this.endpoint == null)
879        return false;
880      for (Reference item : this.endpoint)
881        if (!item.isEmpty())
882          return true;
883      return false;
884    }
885
886    public Reference addEndpoint() { //3
887      Reference t = new Reference();
888      if (this.endpoint == null)
889        this.endpoint = new ArrayList<Reference>();
890      this.endpoint.add(t);
891      return t;
892    }
893
894    public Organization addEndpoint(Reference t) { //3
895      if (t == null)
896        return this;
897      if (this.endpoint == null)
898        this.endpoint = new ArrayList<Reference>();
899      this.endpoint.add(t);
900      return this;
901    }
902
903    /**
904     * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist {3}
905     */
906    public Reference getEndpointFirstRep() { 
907      if (getEndpoint().isEmpty()) {
908        addEndpoint();
909      }
910      return getEndpoint().get(0);
911    }
912
913    /**
914     * @return {@link #qualification} (The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.
915
916For example, an approval to provide a type of services issued by a certifying body (such as the US Joint Commission) to an organization.)
917     */
918    public List<OrganizationQualificationComponent> getQualification() { 
919      if (this.qualification == null)
920        this.qualification = new ArrayList<OrganizationQualificationComponent>();
921      return this.qualification;
922    }
923
924    /**
925     * @return Returns a reference to <code>this</code> for easy method chaining
926     */
927    public Organization setQualification(List<OrganizationQualificationComponent> theQualification) { 
928      this.qualification = theQualification;
929      return this;
930    }
931
932    public boolean hasQualification() { 
933      if (this.qualification == null)
934        return false;
935      for (OrganizationQualificationComponent item : this.qualification)
936        if (!item.isEmpty())
937          return true;
938      return false;
939    }
940
941    public OrganizationQualificationComponent addQualification() { //3
942      OrganizationQualificationComponent t = new OrganizationQualificationComponent();
943      if (this.qualification == null)
944        this.qualification = new ArrayList<OrganizationQualificationComponent>();
945      this.qualification.add(t);
946      return t;
947    }
948
949    public Organization addQualification(OrganizationQualificationComponent t) { //3
950      if (t == null)
951        return this;
952      if (this.qualification == null)
953        this.qualification = new ArrayList<OrganizationQualificationComponent>();
954      this.qualification.add(t);
955      return this;
956    }
957
958    /**
959     * @return The first repetition of repeating field {@link #qualification}, creating it if it does not already exist {3}
960     */
961    public OrganizationQualificationComponent getQualificationFirstRep() { 
962      if (getQualification().isEmpty()) {
963        addQualification();
964      }
965      return getQualification().get(0);
966    }
967
968      protected void listChildren(List<Property> children) {
969        super.listChildren(children);
970        children.add(new Property("identifier", "Identifier", "Identifier for the organization that is used to identify the organization across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier));
971        children.add(new Property("active", "boolean", "Whether the organization's record is still in active use.", 0, 1, active));
972        children.add(new Property("type", "CodeableConcept", "The kind(s) of organization that this is.", 0, java.lang.Integer.MAX_VALUE, type));
973        children.add(new Property("name", "string", "A name associated with the organization.", 0, 1, name));
974        children.add(new Property("alias", "string", "A list of alternate names that the organization is known as, or was known as in the past.", 0, java.lang.Integer.MAX_VALUE, alias));
975        children.add(new Property("description", "markdown", "Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.", 0, 1, description));
976        children.add(new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact));
977        children.add(new Property("partOf", "Reference(Organization)", "The organization of which this organization forms a part.", 0, 1, partOf));
978        children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the organization.", 0, java.lang.Integer.MAX_VALUE, endpoint));
979        children.add(new Property("qualification", "", "The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.\r\rFor example, an approval to provide a type of services issued by a certifying body (such as the US Joint Commission) to an organization.", 0, java.lang.Integer.MAX_VALUE, qualification));
980      }
981
982      @Override
983      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
984        switch (_hash) {
985        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier for the organization that is used to identify the organization across multiple disparate systems.", 0, java.lang.Integer.MAX_VALUE, identifier);
986        case -1422950650: /*active*/  return new Property("active", "boolean", "Whether the organization's record is still in active use.", 0, 1, active);
987        case 3575610: /*type*/  return new Property("type", "CodeableConcept", "The kind(s) of organization that this is.", 0, java.lang.Integer.MAX_VALUE, type);
988        case 3373707: /*name*/  return new Property("name", "string", "A name associated with the organization.", 0, 1, name);
989        case 92902992: /*alias*/  return new Property("alias", "string", "A list of alternate names that the organization is known as, or was known as in the past.", 0, java.lang.Integer.MAX_VALUE, alias);
990        case -1724546052: /*description*/  return new Property("description", "markdown", "Description of the organization, which helps provide additional general context on the organization to ensure that the correct organization is selected.", 0, 1, description);
991        case 951526432: /*contact*/  return new Property("contact", "ExtendedContactDetail", "The contact details of communication devices available relevant to the specific Organization. This can include addresses, phone numbers, fax numbers, mobile numbers, email addresses and web sites.", 0, java.lang.Integer.MAX_VALUE, contact);
992        case -995410646: /*partOf*/  return new Property("partOf", "Reference(Organization)", "The organization of which this organization forms a part.", 0, 1, partOf);
993        case 1741102485: /*endpoint*/  return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for the organization.", 0, java.lang.Integer.MAX_VALUE, endpoint);
994        case -631333393: /*qualification*/  return new Property("qualification", "", "The official certifications, accreditations, training, designations and licenses that authorize and/or otherwise endorse the provision of care by the organization.\r\rFor example, an approval to provide a type of services issued by a certifying body (such as the US Joint Commission) to an organization.", 0, java.lang.Integer.MAX_VALUE, qualification);
995        default: return super.getNamedProperty(_hash, _name, _checkValid);
996        }
997
998      }
999
1000      @Override
1001      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
1002        switch (hash) {
1003        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
1004        case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType
1005        case 3575610: /*type*/ return this.type == null ? new Base[0] : this.type.toArray(new Base[this.type.size()]); // CodeableConcept
1006        case 3373707: /*name*/ return this.name == null ? new Base[0] : new Base[] {this.name}; // StringType
1007        case 92902992: /*alias*/ return this.alias == null ? new Base[0] : this.alias.toArray(new Base[this.alias.size()]); // StringType
1008        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // MarkdownType
1009        case 951526432: /*contact*/ return this.contact == null ? new Base[0] : this.contact.toArray(new Base[this.contact.size()]); // ExtendedContactDetail
1010        case -995410646: /*partOf*/ return this.partOf == null ? new Base[0] : new Base[] {this.partOf}; // Reference
1011        case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference
1012        case -631333393: /*qualification*/ return this.qualification == null ? new Base[0] : this.qualification.toArray(new Base[this.qualification.size()]); // OrganizationQualificationComponent
1013        default: return super.getProperty(hash, name, checkValid);
1014        }
1015
1016      }
1017
1018      @Override
1019      public Base setProperty(int hash, String name, Base value) throws FHIRException {
1020        switch (hash) {
1021        case -1618432855: // identifier
1022          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
1023          return value;
1024        case -1422950650: // active
1025          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1026          return value;
1027        case 3575610: // type
1028          this.getType().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
1029          return value;
1030        case 3373707: // name
1031          this.name = TypeConvertor.castToString(value); // StringType
1032          return value;
1033        case 92902992: // alias
1034          this.getAlias().add(TypeConvertor.castToString(value)); // StringType
1035          return value;
1036        case -1724546052: // description
1037          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1038          return value;
1039        case 951526432: // contact
1040          this.getContact().add(TypeConvertor.castToExtendedContactDetail(value)); // ExtendedContactDetail
1041          return value;
1042        case -995410646: // partOf
1043          this.partOf = TypeConvertor.castToReference(value); // Reference
1044          return value;
1045        case 1741102485: // endpoint
1046          this.getEndpoint().add(TypeConvertor.castToReference(value)); // Reference
1047          return value;
1048        case -631333393: // qualification
1049          this.getQualification().add((OrganizationQualificationComponent) value); // OrganizationQualificationComponent
1050          return value;
1051        default: return super.setProperty(hash, name, value);
1052        }
1053
1054      }
1055
1056      @Override
1057      public Base setProperty(String name, Base value) throws FHIRException {
1058        if (name.equals("identifier")) {
1059          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
1060        } else if (name.equals("active")) {
1061          this.active = TypeConvertor.castToBoolean(value); // BooleanType
1062        } else if (name.equals("type")) {
1063          this.getType().add(TypeConvertor.castToCodeableConcept(value));
1064        } else if (name.equals("name")) {
1065          this.name = TypeConvertor.castToString(value); // StringType
1066        } else if (name.equals("alias")) {
1067          this.getAlias().add(TypeConvertor.castToString(value));
1068        } else if (name.equals("description")) {
1069          this.description = TypeConvertor.castToMarkdown(value); // MarkdownType
1070        } else if (name.equals("contact")) {
1071          this.getContact().add(TypeConvertor.castToExtendedContactDetail(value));
1072        } else if (name.equals("partOf")) {
1073          this.partOf = TypeConvertor.castToReference(value); // Reference
1074        } else if (name.equals("endpoint")) {
1075          this.getEndpoint().add(TypeConvertor.castToReference(value));
1076        } else if (name.equals("qualification")) {
1077          this.getQualification().add((OrganizationQualificationComponent) value);
1078        } else
1079          return super.setProperty(name, value);
1080        return value;
1081      }
1082
1083      @Override
1084      public Base makeProperty(int hash, String name) throws FHIRException {
1085        switch (hash) {
1086        case -1618432855:  return addIdentifier(); 
1087        case -1422950650:  return getActiveElement();
1088        case 3575610:  return addType(); 
1089        case 3373707:  return getNameElement();
1090        case 92902992:  return addAliasElement();
1091        case -1724546052:  return getDescriptionElement();
1092        case 951526432:  return addContact(); 
1093        case -995410646:  return getPartOf();
1094        case 1741102485:  return addEndpoint(); 
1095        case -631333393:  return addQualification(); 
1096        default: return super.makeProperty(hash, name);
1097        }
1098
1099      }
1100
1101      @Override
1102      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
1103        switch (hash) {
1104        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
1105        case -1422950650: /*active*/ return new String[] {"boolean"};
1106        case 3575610: /*type*/ return new String[] {"CodeableConcept"};
1107        case 3373707: /*name*/ return new String[] {"string"};
1108        case 92902992: /*alias*/ return new String[] {"string"};
1109        case -1724546052: /*description*/ return new String[] {"markdown"};
1110        case 951526432: /*contact*/ return new String[] {"ExtendedContactDetail"};
1111        case -995410646: /*partOf*/ return new String[] {"Reference"};
1112        case 1741102485: /*endpoint*/ return new String[] {"Reference"};
1113        case -631333393: /*qualification*/ return new String[] {};
1114        default: return super.getTypesForProperty(hash, name);
1115        }
1116
1117      }
1118
1119      @Override
1120      public Base addChild(String name) throws FHIRException {
1121        if (name.equals("identifier")) {
1122          return addIdentifier();
1123        }
1124        else if (name.equals("active")) {
1125          throw new FHIRException("Cannot call addChild on a singleton property Organization.active");
1126        }
1127        else if (name.equals("type")) {
1128          return addType();
1129        }
1130        else if (name.equals("name")) {
1131          throw new FHIRException("Cannot call addChild on a singleton property Organization.name");
1132        }
1133        else if (name.equals("alias")) {
1134          throw new FHIRException("Cannot call addChild on a singleton property Organization.alias");
1135        }
1136        else if (name.equals("description")) {
1137          throw new FHIRException("Cannot call addChild on a singleton property Organization.description");
1138        }
1139        else if (name.equals("contact")) {
1140          return addContact();
1141        }
1142        else if (name.equals("partOf")) {
1143          this.partOf = new Reference();
1144          return this.partOf;
1145        }
1146        else if (name.equals("endpoint")) {
1147          return addEndpoint();
1148        }
1149        else if (name.equals("qualification")) {
1150          return addQualification();
1151        }
1152        else
1153          return super.addChild(name);
1154      }
1155
1156  public String fhirType() {
1157    return "Organization";
1158
1159  }
1160
1161      public Organization copy() {
1162        Organization dst = new Organization();
1163        copyValues(dst);
1164        return dst;
1165      }
1166
1167      public void copyValues(Organization dst) {
1168        super.copyValues(dst);
1169        if (identifier != null) {
1170          dst.identifier = new ArrayList<Identifier>();
1171          for (Identifier i : identifier)
1172            dst.identifier.add(i.copy());
1173        };
1174        dst.active = active == null ? null : active.copy();
1175        if (type != null) {
1176          dst.type = new ArrayList<CodeableConcept>();
1177          for (CodeableConcept i : type)
1178            dst.type.add(i.copy());
1179        };
1180        dst.name = name == null ? null : name.copy();
1181        if (alias != null) {
1182          dst.alias = new ArrayList<StringType>();
1183          for (StringType i : alias)
1184            dst.alias.add(i.copy());
1185        };
1186        dst.description = description == null ? null : description.copy();
1187        if (contact != null) {
1188          dst.contact = new ArrayList<ExtendedContactDetail>();
1189          for (ExtendedContactDetail i : contact)
1190            dst.contact.add(i.copy());
1191        };
1192        dst.partOf = partOf == null ? null : partOf.copy();
1193        if (endpoint != null) {
1194          dst.endpoint = new ArrayList<Reference>();
1195          for (Reference i : endpoint)
1196            dst.endpoint.add(i.copy());
1197        };
1198        if (qualification != null) {
1199          dst.qualification = new ArrayList<OrganizationQualificationComponent>();
1200          for (OrganizationQualificationComponent i : qualification)
1201            dst.qualification.add(i.copy());
1202        };
1203      }
1204
1205      protected Organization typedCopy() {
1206        return copy();
1207      }
1208
1209      @Override
1210      public boolean equalsDeep(Base other_) {
1211        if (!super.equalsDeep(other_))
1212          return false;
1213        if (!(other_ instanceof Organization))
1214          return false;
1215        Organization o = (Organization) other_;
1216        return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(type, o.type, true)
1217           && compareDeep(name, o.name, true) && compareDeep(alias, o.alias, true) && compareDeep(description, o.description, true)
1218           && compareDeep(contact, o.contact, true) && compareDeep(partOf, o.partOf, true) && compareDeep(endpoint, o.endpoint, true)
1219           && compareDeep(qualification, o.qualification, true);
1220      }
1221
1222      @Override
1223      public boolean equalsShallow(Base other_) {
1224        if (!super.equalsShallow(other_))
1225          return false;
1226        if (!(other_ instanceof Organization))
1227          return false;
1228        Organization o = (Organization) other_;
1229        return compareValues(active, o.active, true) && compareValues(name, o.name, true) && compareValues(alias, o.alias, true)
1230           && compareValues(description, o.description, true);
1231      }
1232
1233      public boolean isEmpty() {
1234        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, type
1235          , name, alias, description, contact, partOf, endpoint, qualification);
1236      }
1237
1238  @Override
1239  public ResourceType getResourceType() {
1240    return ResourceType.Organization;
1241   }
1242
1243 /**
1244   * Search parameter: <b>active</b>
1245   * <p>
1246   * Description: <b>Is the Organization record active</b><br>
1247   * Type: <b>token</b><br>
1248   * Path: <b>Organization.active</b><br>
1249   * </p>
1250   */
1251  @SearchParamDefinition(name="active", path="Organization.active", description="Is the Organization record active", type="token" )
1252  public static final String SP_ACTIVE = "active";
1253 /**
1254   * <b>Fluent Client</b> search parameter constant for <b>active</b>
1255   * <p>
1256   * Description: <b>Is the Organization record active</b><br>
1257   * Type: <b>token</b><br>
1258   * Path: <b>Organization.active</b><br>
1259   * </p>
1260   */
1261  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE);
1262
1263 /**
1264   * Search parameter: <b>address-city</b>
1265   * <p>
1266   * Description: <b>A city specified in an address</b><br>
1267   * Type: <b>string</b><br>
1268   * Path: <b>Organization.contact.address.city</b><br>
1269   * </p>
1270   */
1271  @SearchParamDefinition(name="address-city", path="Organization.contact.address.city", description="A city specified in an address", type="string" )
1272  public static final String SP_ADDRESS_CITY = "address-city";
1273 /**
1274   * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
1275   * <p>
1276   * Description: <b>A city specified in an address</b><br>
1277   * Type: <b>string</b><br>
1278   * Path: <b>Organization.contact.address.city</b><br>
1279   * </p>
1280   */
1281  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_CITY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_CITY);
1282
1283 /**
1284   * Search parameter: <b>address-country</b>
1285   * <p>
1286   * Description: <b>A country specified in an address</b><br>
1287   * Type: <b>string</b><br>
1288   * Path: <b>Organization.contact.address.country</b><br>
1289   * </p>
1290   */
1291  @SearchParamDefinition(name="address-country", path="Organization.contact.address.country", description="A country specified in an address", type="string" )
1292  public static final String SP_ADDRESS_COUNTRY = "address-country";
1293 /**
1294   * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
1295   * <p>
1296   * Description: <b>A country specified in an address</b><br>
1297   * Type: <b>string</b><br>
1298   * Path: <b>Organization.contact.address.country</b><br>
1299   * </p>
1300   */
1301  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_COUNTRY = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_COUNTRY);
1302
1303 /**
1304   * Search parameter: <b>address-postalcode</b>
1305   * <p>
1306   * Description: <b>A postal code specified in an address</b><br>
1307   * Type: <b>string</b><br>
1308   * Path: <b>Organization.contact.address.postalCode</b><br>
1309   * </p>
1310   */
1311  @SearchParamDefinition(name="address-postalcode", path="Organization.contact.address.postalCode", description="A postal code specified in an address", type="string" )
1312  public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
1313 /**
1314   * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
1315   * <p>
1316   * Description: <b>A postal code specified in an address</b><br>
1317   * Type: <b>string</b><br>
1318   * Path: <b>Organization.contact.address.postalCode</b><br>
1319   * </p>
1320   */
1321  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_POSTALCODE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_POSTALCODE);
1322
1323 /**
1324   * Search parameter: <b>address-state</b>
1325   * <p>
1326   * Description: <b>A state specified in an address</b><br>
1327   * Type: <b>string</b><br>
1328   * Path: <b>Organization.contact.address.state</b><br>
1329   * </p>
1330   */
1331  @SearchParamDefinition(name="address-state", path="Organization.contact.address.state", description="A state specified in an address", type="string" )
1332  public static final String SP_ADDRESS_STATE = "address-state";
1333 /**
1334   * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
1335   * <p>
1336   * Description: <b>A state specified in an address</b><br>
1337   * Type: <b>string</b><br>
1338   * Path: <b>Organization.contact.address.state</b><br>
1339   * </p>
1340   */
1341  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS_STATE = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS_STATE);
1342
1343 /**
1344   * Search parameter: <b>address-use</b>
1345   * <p>
1346   * Description: <b>A use code specified in an address</b><br>
1347   * Type: <b>token</b><br>
1348   * Path: <b>Organization.contact.address.use</b><br>
1349   * </p>
1350   */
1351  @SearchParamDefinition(name="address-use", path="Organization.contact.address.use", description="A use code specified in an address", type="token" )
1352  public static final String SP_ADDRESS_USE = "address-use";
1353 /**
1354   * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
1355   * <p>
1356   * Description: <b>A use code specified in an address</b><br>
1357   * Type: <b>token</b><br>
1358   * Path: <b>Organization.contact.address.use</b><br>
1359   * </p>
1360   */
1361  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ADDRESS_USE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ADDRESS_USE);
1362
1363 /**
1364   * Search parameter: <b>address</b>
1365   * <p>
1366   * Description: <b>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</b><br>
1367   * Type: <b>string</b><br>
1368   * Path: <b>Organization.contact.address</b><br>
1369   * </p>
1370   */
1371  @SearchParamDefinition(name="address", path="Organization.contact.address", description="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", type="string" )
1372  public static final String SP_ADDRESS = "address";
1373 /**
1374   * <b>Fluent Client</b> search parameter constant for <b>address</b>
1375   * <p>
1376   * Description: <b>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</b><br>
1377   * Type: <b>string</b><br>
1378   * Path: <b>Organization.contact.address</b><br>
1379   * </p>
1380   */
1381  public static final ca.uhn.fhir.rest.gclient.StringClientParam ADDRESS = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_ADDRESS);
1382
1383 /**
1384   * Search parameter: <b>endpoint</b>
1385   * <p>
1386   * Description: <b>Technical endpoints providing access to services operated for the organization</b><br>
1387   * Type: <b>reference</b><br>
1388   * Path: <b>Organization.endpoint</b><br>
1389   * </p>
1390   */
1391  @SearchParamDefinition(name="endpoint", path="Organization.endpoint", description="Technical endpoints providing access to services operated for the organization", type="reference", target={Endpoint.class } )
1392  public static final String SP_ENDPOINT = "endpoint";
1393 /**
1394   * <b>Fluent Client</b> search parameter constant for <b>endpoint</b>
1395   * <p>
1396   * Description: <b>Technical endpoints providing access to services operated for the organization</b><br>
1397   * Type: <b>reference</b><br>
1398   * Path: <b>Organization.endpoint</b><br>
1399   * </p>
1400   */
1401  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT);
1402
1403/**
1404   * Constant for fluent queries to be used to add include statements. Specifies
1405   * the path value of "<b>Organization:endpoint</b>".
1406   */
1407  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("Organization:endpoint").toLocked();
1408
1409 /**
1410   * Search parameter: <b>identifier</b>
1411   * <p>
1412   * Description: <b>Any identifier for the organization (not the accreditation issuer's identifier)</b><br>
1413   * Type: <b>token</b><br>
1414   * Path: <b>Organization.identifier | Organization.qualification.identifier</b><br>
1415   * </p>
1416   */
1417  @SearchParamDefinition(name="identifier", path="Organization.identifier | Organization.qualification.identifier", description="Any identifier for the organization (not the accreditation issuer's identifier)", type="token" )
1418  public static final String SP_IDENTIFIER = "identifier";
1419 /**
1420   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1421   * <p>
1422   * Description: <b>Any identifier for the organization (not the accreditation issuer's identifier)</b><br>
1423   * Type: <b>token</b><br>
1424   * Path: <b>Organization.identifier | Organization.qualification.identifier</b><br>
1425   * </p>
1426   */
1427  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1428
1429 /**
1430   * Search parameter: <b>name</b>
1431   * <p>
1432   * Description: <b>A portion of the organization's name or alias</b><br>
1433   * Type: <b>string</b><br>
1434   * Path: <b>Organization.name | Organization.alias</b><br>
1435   * </p>
1436   */
1437  @SearchParamDefinition(name="name", path="Organization.name | Organization.alias", description="A portion of the organization's name or alias", type="string" )
1438  public static final String SP_NAME = "name";
1439 /**
1440   * <b>Fluent Client</b> search parameter constant for <b>name</b>
1441   * <p>
1442   * Description: <b>A portion of the organization's name or alias</b><br>
1443   * Type: <b>string</b><br>
1444   * Path: <b>Organization.name | Organization.alias</b><br>
1445   * </p>
1446   */
1447  public static final ca.uhn.fhir.rest.gclient.StringClientParam NAME = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_NAME);
1448
1449 /**
1450   * Search parameter: <b>partof</b>
1451   * <p>
1452   * Description: <b>An organization of which this organization forms a part</b><br>
1453   * Type: <b>reference</b><br>
1454   * Path: <b>Organization.partOf</b><br>
1455   * </p>
1456   */
1457  @SearchParamDefinition(name="partof", path="Organization.partOf", description="An organization of which this organization forms a part", type="reference", target={Organization.class } )
1458  public static final String SP_PARTOF = "partof";
1459 /**
1460   * <b>Fluent Client</b> search parameter constant for <b>partof</b>
1461   * <p>
1462   * Description: <b>An organization of which this organization forms a part</b><br>
1463   * Type: <b>reference</b><br>
1464   * Path: <b>Organization.partOf</b><br>
1465   * </p>
1466   */
1467  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTOF = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTOF);
1468
1469/**
1470   * Constant for fluent queries to be used to add include statements. Specifies
1471   * the path value of "<b>Organization:partof</b>".
1472   */
1473  public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTOF = new ca.uhn.fhir.model.api.Include("Organization:partof").toLocked();
1474
1475 /**
1476   * Search parameter: <b>phonetic</b>
1477   * <p>
1478   * Description: <b>A portion of the organization's name using some kind of phonetic matching algorithm</b><br>
1479   * Type: <b>string</b><br>
1480   * Path: <b>Organization.name</b><br>
1481   * </p>
1482   */
1483  @SearchParamDefinition(name="phonetic", path="Organization.name", description="A portion of the organization's name using some kind of phonetic matching algorithm", type="string" )
1484  public static final String SP_PHONETIC = "phonetic";
1485 /**
1486   * <b>Fluent Client</b> search parameter constant for <b>phonetic</b>
1487   * <p>
1488   * Description: <b>A portion of the organization's name using some kind of phonetic matching algorithm</b><br>
1489   * Type: <b>string</b><br>
1490   * Path: <b>Organization.name</b><br>
1491   * </p>
1492   */
1493  public static final ca.uhn.fhir.rest.gclient.StringClientParam PHONETIC = new ca.uhn.fhir.rest.gclient.StringClientParam(SP_PHONETIC);
1494
1495 /**
1496   * Search parameter: <b>type</b>
1497   * <p>
1498   * Description: <b>A code for the type of organization</b><br>
1499   * Type: <b>token</b><br>
1500   * Path: <b>Organization.type</b><br>
1501   * </p>
1502   */
1503  @SearchParamDefinition(name="type", path="Organization.type", description="A code for the type of organization", type="token" )
1504  public static final String SP_TYPE = "type";
1505 /**
1506   * <b>Fluent Client</b> search parameter constant for <b>type</b>
1507   * <p>
1508   * Description: <b>A code for the type of organization</b><br>
1509   * Type: <b>token</b><br>
1510   * Path: <b>Organization.type</b><br>
1511   * </p>
1512   */
1513  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TYPE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TYPE);
1514
1515
1516}
1517