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