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