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