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 Thu, Sep 13, 2018 09:04-0400 for FHIR v3.5.0
033
034import java.util.*;
035
036import ca.uhn.fhir.model.api.annotation.ResourceDef;
037import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
038import ca.uhn.fhir.model.api.annotation.Child;
039import ca.uhn.fhir.model.api.annotation.ChildOrder;
040import ca.uhn.fhir.model.api.annotation.Description;
041import ca.uhn.fhir.model.api.annotation.Block;
042import org.hl7.fhir.instance.model.api.*;
043import org.hl7.fhir.exceptions.FHIRException;
044/**
045 * Defines an affiliation/assotiation/relationship between 2 distinct oganizations, that is not a part-of relationship/sub-division relationship.
046 */
047@ResourceDef(name="OrganizationAffiliation", profile="http://hl7.org/fhir/StructureDefinition/OrganizationAffiliation")
048public class OrganizationAffiliation extends DomainResource {
049
050    /**
051     * Business identifiers that are specific to this role.
052     */
053    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
054    @Description(shortDefinition="Business identifiers that are specific to this role", formalDefinition="Business identifiers that are specific to this role." )
055    protected List<Identifier> identifier;
056
057    /**
058     * Whether this organization affiliation record is in active use.
059     */
060    @Child(name = "active", type = {BooleanType.class}, order=1, min=0, max=1, modifier=false, summary=true)
061    @Description(shortDefinition="Whether this organization affiliation record is in active use", formalDefinition="Whether this organization affiliation record is in active use." )
062    protected BooleanType active;
063
064    /**
065     * The period during which the participatingOrganization is affiliated with the primary organization.
066     */
067    @Child(name = "period", type = {Period.class}, order=2, min=0, max=1, modifier=false, summary=true)
068    @Description(shortDefinition="The period during which the participatingOrganization is affiliated with the primary organization", formalDefinition="The period during which the participatingOrganization is affiliated with the primary organization." )
069    protected Period period;
070
071    /**
072     * Organization where the role is available (primary organization/has members).
073     */
074    @Child(name = "organization", type = {Organization.class}, order=3, min=0, max=1, modifier=false, summary=true)
075    @Description(shortDefinition="Organization where the role is available", formalDefinition="Organization where the role is available (primary organization/has members)." )
076    protected Reference organization;
077
078    /**
079     * The actual object that is the target of the reference (Organization where the role is available (primary organization/has members).)
080     */
081    protected Organization organizationTarget;
082
083    /**
084     * The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).
085     */
086    @Child(name = "participatingOrganization", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=true)
087    @Description(shortDefinition="Organization that provides/performs the role (e.g. providing services or is a member of)", formalDefinition="The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of)." )
088    protected Reference participatingOrganization;
089
090    /**
091     * The actual object that is the target of the reference (The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).)
092     */
093    protected Organization participatingOrganizationTarget;
094
095    /**
096     * Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).
097     */
098    @Child(name = "network", type = {Organization.class}, order=5, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
099    @Description(shortDefinition="Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)", formalDefinition="Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)." )
100    protected List<Reference> network;
101    /**
102     * The actual objects that are the target of the reference (Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).)
103     */
104    protected List<Organization> networkTarget;
105
106
107    /**
108     * Definition of the role the participatingOrganization plays in the association.
109     */
110    @Child(name = "code", type = {CodeableConcept.class}, order=6, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
111    @Description(shortDefinition="Definition of the role the participatingOrganization plays", formalDefinition="Definition of the role the participatingOrganization plays in the association." )
112    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/organization-role")
113    protected List<CodeableConcept> code;
114
115    /**
116     * Specific specialty of the participatingOrganization in the context of the role.
117     */
118    @Child(name = "specialty", type = {CodeableConcept.class}, order=7, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
119    @Description(shortDefinition="Specific specialty of the participatingOrganization in the context of the role", formalDefinition="Specific specialty of the participatingOrganization in the context of the role." )
120    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/c80-practice-codes")
121    protected List<CodeableConcept> specialty;
122
123    /**
124     * The location(s) at which the role occurs.
125     */
126    @Child(name = "location", type = {Location.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
127    @Description(shortDefinition="The location(s) at which the role occurs", formalDefinition="The location(s) at which the role occurs." )
128    protected List<Reference> location;
129    /**
130     * The actual objects that are the target of the reference (The location(s) at which the role occurs.)
131     */
132    protected List<Location> locationTarget;
133
134
135    /**
136     * Healthcare services provided through the role.
137     */
138    @Child(name = "healthcareService", type = {HealthcareService.class}, order=9, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
139    @Description(shortDefinition="Healthcare services provided through the role", formalDefinition="Healthcare services provided through the role." )
140    protected List<Reference> healthcareService;
141    /**
142     * The actual objects that are the target of the reference (Healthcare services provided through the role.)
143     */
144    protected List<HealthcareService> healthcareServiceTarget;
145
146
147    /**
148     * Contact details at the participatingOrganization relevant to this Affiliation.
149     */
150    @Child(name = "telecom", type = {ContactPoint.class}, order=10, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
151    @Description(shortDefinition="Contact details at the participatingOrganization relevant to this Affiliation", formalDefinition="Contact details at the participatingOrganization relevant to this Affiliation." )
152    protected List<ContactPoint> telecom;
153
154    /**
155     * Technical endpoints providing access to services operated for this role.
156     */
157    @Child(name = "endpoint", type = {Endpoint.class}, order=11, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
158    @Description(shortDefinition="Technical endpoints providing access to services operated for this role", formalDefinition="Technical endpoints providing access to services operated for this role." )
159    protected List<Reference> endpoint;
160    /**
161     * The actual objects that are the target of the reference (Technical endpoints providing access to services operated for this role.)
162     */
163    protected List<Endpoint> endpointTarget;
164
165
166    private static final long serialVersionUID = -62510821L;
167
168  /**
169   * Constructor
170   */
171    public OrganizationAffiliation() {
172      super();
173    }
174
175    /**
176     * @return {@link #identifier} (Business identifiers that are specific to this role.)
177     */
178    public List<Identifier> getIdentifier() { 
179      if (this.identifier == null)
180        this.identifier = new ArrayList<Identifier>();
181      return this.identifier;
182    }
183
184    /**
185     * @return Returns a reference to <code>this</code> for easy method chaining
186     */
187    public OrganizationAffiliation setIdentifier(List<Identifier> theIdentifier) { 
188      this.identifier = theIdentifier;
189      return this;
190    }
191
192    public boolean hasIdentifier() { 
193      if (this.identifier == null)
194        return false;
195      for (Identifier item : this.identifier)
196        if (!item.isEmpty())
197          return true;
198      return false;
199    }
200
201    public Identifier addIdentifier() { //3
202      Identifier t = new Identifier();
203      if (this.identifier == null)
204        this.identifier = new ArrayList<Identifier>();
205      this.identifier.add(t);
206      return t;
207    }
208
209    public OrganizationAffiliation addIdentifier(Identifier t) { //3
210      if (t == null)
211        return this;
212      if (this.identifier == null)
213        this.identifier = new ArrayList<Identifier>();
214      this.identifier.add(t);
215      return this;
216    }
217
218    /**
219     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist
220     */
221    public Identifier getIdentifierFirstRep() { 
222      if (getIdentifier().isEmpty()) {
223        addIdentifier();
224      }
225      return getIdentifier().get(0);
226    }
227
228    /**
229     * @return {@link #active} (Whether this organization affiliation record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
230     */
231    public BooleanType getActiveElement() { 
232      if (this.active == null)
233        if (Configuration.errorOnAutoCreate())
234          throw new Error("Attempt to auto-create OrganizationAffiliation.active");
235        else if (Configuration.doAutoCreate())
236          this.active = new BooleanType(); // bb
237      return this.active;
238    }
239
240    public boolean hasActiveElement() { 
241      return this.active != null && !this.active.isEmpty();
242    }
243
244    public boolean hasActive() { 
245      return this.active != null && !this.active.isEmpty();
246    }
247
248    /**
249     * @param value {@link #active} (Whether this organization affiliation record is in active use.). This is the underlying object with id, value and extensions. The accessor "getActive" gives direct access to the value
250     */
251    public OrganizationAffiliation setActiveElement(BooleanType value) { 
252      this.active = value;
253      return this;
254    }
255
256    /**
257     * @return Whether this organization affiliation record is in active use.
258     */
259    public boolean getActive() { 
260      return this.active == null || this.active.isEmpty() ? false : this.active.getValue();
261    }
262
263    /**
264     * @param value Whether this organization affiliation record is in active use.
265     */
266    public OrganizationAffiliation setActive(boolean value) { 
267        if (this.active == null)
268          this.active = new BooleanType();
269        this.active.setValue(value);
270      return this;
271    }
272
273    /**
274     * @return {@link #period} (The period during which the participatingOrganization is affiliated with the primary organization.)
275     */
276    public Period getPeriod() { 
277      if (this.period == null)
278        if (Configuration.errorOnAutoCreate())
279          throw new Error("Attempt to auto-create OrganizationAffiliation.period");
280        else if (Configuration.doAutoCreate())
281          this.period = new Period(); // cc
282      return this.period;
283    }
284
285    public boolean hasPeriod() { 
286      return this.period != null && !this.period.isEmpty();
287    }
288
289    /**
290     * @param value {@link #period} (The period during which the participatingOrganization is affiliated with the primary organization.)
291     */
292    public OrganizationAffiliation setPeriod(Period value) { 
293      this.period = value;
294      return this;
295    }
296
297    /**
298     * @return {@link #organization} (Organization where the role is available (primary organization/has members).)
299     */
300    public Reference getOrganization() { 
301      if (this.organization == null)
302        if (Configuration.errorOnAutoCreate())
303          throw new Error("Attempt to auto-create OrganizationAffiliation.organization");
304        else if (Configuration.doAutoCreate())
305          this.organization = new Reference(); // cc
306      return this.organization;
307    }
308
309    public boolean hasOrganization() { 
310      return this.organization != null && !this.organization.isEmpty();
311    }
312
313    /**
314     * @param value {@link #organization} (Organization where the role is available (primary organization/has members).)
315     */
316    public OrganizationAffiliation setOrganization(Reference value) { 
317      this.organization = value;
318      return this;
319    }
320
321    /**
322     * @return {@link #organization} 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. (Organization where the role is available (primary organization/has members).)
323     */
324    public Organization getOrganizationTarget() { 
325      if (this.organizationTarget == null)
326        if (Configuration.errorOnAutoCreate())
327          throw new Error("Attempt to auto-create OrganizationAffiliation.organization");
328        else if (Configuration.doAutoCreate())
329          this.organizationTarget = new Organization(); // aa
330      return this.organizationTarget;
331    }
332
333    /**
334     * @param value {@link #organization} 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. (Organization where the role is available (primary organization/has members).)
335     */
336    public OrganizationAffiliation setOrganizationTarget(Organization value) { 
337      this.organizationTarget = value;
338      return this;
339    }
340
341    /**
342     * @return {@link #participatingOrganization} (The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).)
343     */
344    public Reference getParticipatingOrganization() { 
345      if (this.participatingOrganization == null)
346        if (Configuration.errorOnAutoCreate())
347          throw new Error("Attempt to auto-create OrganizationAffiliation.participatingOrganization");
348        else if (Configuration.doAutoCreate())
349          this.participatingOrganization = new Reference(); // cc
350      return this.participatingOrganization;
351    }
352
353    public boolean hasParticipatingOrganization() { 
354      return this.participatingOrganization != null && !this.participatingOrganization.isEmpty();
355    }
356
357    /**
358     * @param value {@link #participatingOrganization} (The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).)
359     */
360    public OrganizationAffiliation setParticipatingOrganization(Reference value) { 
361      this.participatingOrganization = value;
362      return this;
363    }
364
365    /**
366     * @return {@link #participatingOrganization} 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 Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).)
367     */
368    public Organization getParticipatingOrganizationTarget() { 
369      if (this.participatingOrganizationTarget == null)
370        if (Configuration.errorOnAutoCreate())
371          throw new Error("Attempt to auto-create OrganizationAffiliation.participatingOrganization");
372        else if (Configuration.doAutoCreate())
373          this.participatingOrganizationTarget = new Organization(); // aa
374      return this.participatingOrganizationTarget;
375    }
376
377    /**
378     * @param value {@link #participatingOrganization} 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 Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).)
379     */
380    public OrganizationAffiliation setParticipatingOrganizationTarget(Organization value) { 
381      this.participatingOrganizationTarget = value;
382      return this;
383    }
384
385    /**
386     * @return {@link #network} (Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).)
387     */
388    public List<Reference> getNetwork() { 
389      if (this.network == null)
390        this.network = new ArrayList<Reference>();
391      return this.network;
392    }
393
394    /**
395     * @return Returns a reference to <code>this</code> for easy method chaining
396     */
397    public OrganizationAffiliation setNetwork(List<Reference> theNetwork) { 
398      this.network = theNetwork;
399      return this;
400    }
401
402    public boolean hasNetwork() { 
403      if (this.network == null)
404        return false;
405      for (Reference item : this.network)
406        if (!item.isEmpty())
407          return true;
408      return false;
409    }
410
411    public Reference addNetwork() { //3
412      Reference t = new Reference();
413      if (this.network == null)
414        this.network = new ArrayList<Reference>();
415      this.network.add(t);
416      return t;
417    }
418
419    public OrganizationAffiliation addNetwork(Reference t) { //3
420      if (t == null)
421        return this;
422      if (this.network == null)
423        this.network = new ArrayList<Reference>();
424      this.network.add(t);
425      return this;
426    }
427
428    /**
429     * @return The first repetition of repeating field {@link #network}, creating it if it does not already exist
430     */
431    public Reference getNetworkFirstRep() { 
432      if (getNetwork().isEmpty()) {
433        addNetwork();
434      }
435      return getNetwork().get(0);
436    }
437
438    /**
439     * @deprecated Use Reference#setResource(IBaseResource) instead
440     */
441    @Deprecated
442    public List<Organization> getNetworkTarget() { 
443      if (this.networkTarget == null)
444        this.networkTarget = new ArrayList<Organization>();
445      return this.networkTarget;
446    }
447
448    /**
449     * @deprecated Use Reference#setResource(IBaseResource) instead
450     */
451    @Deprecated
452    public Organization addNetworkTarget() { 
453      Organization r = new Organization();
454      if (this.networkTarget == null)
455        this.networkTarget = new ArrayList<Organization>();
456      this.networkTarget.add(r);
457      return r;
458    }
459
460    /**
461     * @return {@link #code} (Definition of the role the participatingOrganization plays in the association.)
462     */
463    public List<CodeableConcept> getCode() { 
464      if (this.code == null)
465        this.code = new ArrayList<CodeableConcept>();
466      return this.code;
467    }
468
469    /**
470     * @return Returns a reference to <code>this</code> for easy method chaining
471     */
472    public OrganizationAffiliation setCode(List<CodeableConcept> theCode) { 
473      this.code = theCode;
474      return this;
475    }
476
477    public boolean hasCode() { 
478      if (this.code == null)
479        return false;
480      for (CodeableConcept item : this.code)
481        if (!item.isEmpty())
482          return true;
483      return false;
484    }
485
486    public CodeableConcept addCode() { //3
487      CodeableConcept t = new CodeableConcept();
488      if (this.code == null)
489        this.code = new ArrayList<CodeableConcept>();
490      this.code.add(t);
491      return t;
492    }
493
494    public OrganizationAffiliation addCode(CodeableConcept t) { //3
495      if (t == null)
496        return this;
497      if (this.code == null)
498        this.code = new ArrayList<CodeableConcept>();
499      this.code.add(t);
500      return this;
501    }
502
503    /**
504     * @return The first repetition of repeating field {@link #code}, creating it if it does not already exist
505     */
506    public CodeableConcept getCodeFirstRep() { 
507      if (getCode().isEmpty()) {
508        addCode();
509      }
510      return getCode().get(0);
511    }
512
513    /**
514     * @return {@link #specialty} (Specific specialty of the participatingOrganization in the context of the role.)
515     */
516    public List<CodeableConcept> getSpecialty() { 
517      if (this.specialty == null)
518        this.specialty = new ArrayList<CodeableConcept>();
519      return this.specialty;
520    }
521
522    /**
523     * @return Returns a reference to <code>this</code> for easy method chaining
524     */
525    public OrganizationAffiliation setSpecialty(List<CodeableConcept> theSpecialty) { 
526      this.specialty = theSpecialty;
527      return this;
528    }
529
530    public boolean hasSpecialty() { 
531      if (this.specialty == null)
532        return false;
533      for (CodeableConcept item : this.specialty)
534        if (!item.isEmpty())
535          return true;
536      return false;
537    }
538
539    public CodeableConcept addSpecialty() { //3
540      CodeableConcept t = new CodeableConcept();
541      if (this.specialty == null)
542        this.specialty = new ArrayList<CodeableConcept>();
543      this.specialty.add(t);
544      return t;
545    }
546
547    public OrganizationAffiliation addSpecialty(CodeableConcept t) { //3
548      if (t == null)
549        return this;
550      if (this.specialty == null)
551        this.specialty = new ArrayList<CodeableConcept>();
552      this.specialty.add(t);
553      return this;
554    }
555
556    /**
557     * @return The first repetition of repeating field {@link #specialty}, creating it if it does not already exist
558     */
559    public CodeableConcept getSpecialtyFirstRep() { 
560      if (getSpecialty().isEmpty()) {
561        addSpecialty();
562      }
563      return getSpecialty().get(0);
564    }
565
566    /**
567     * @return {@link #location} (The location(s) at which the role occurs.)
568     */
569    public List<Reference> getLocation() { 
570      if (this.location == null)
571        this.location = new ArrayList<Reference>();
572      return this.location;
573    }
574
575    /**
576     * @return Returns a reference to <code>this</code> for easy method chaining
577     */
578    public OrganizationAffiliation setLocation(List<Reference> theLocation) { 
579      this.location = theLocation;
580      return this;
581    }
582
583    public boolean hasLocation() { 
584      if (this.location == null)
585        return false;
586      for (Reference item : this.location)
587        if (!item.isEmpty())
588          return true;
589      return false;
590    }
591
592    public Reference addLocation() { //3
593      Reference t = new Reference();
594      if (this.location == null)
595        this.location = new ArrayList<Reference>();
596      this.location.add(t);
597      return t;
598    }
599
600    public OrganizationAffiliation addLocation(Reference t) { //3
601      if (t == null)
602        return this;
603      if (this.location == null)
604        this.location = new ArrayList<Reference>();
605      this.location.add(t);
606      return this;
607    }
608
609    /**
610     * @return The first repetition of repeating field {@link #location}, creating it if it does not already exist
611     */
612    public Reference getLocationFirstRep() { 
613      if (getLocation().isEmpty()) {
614        addLocation();
615      }
616      return getLocation().get(0);
617    }
618
619    /**
620     * @deprecated Use Reference#setResource(IBaseResource) instead
621     */
622    @Deprecated
623    public List<Location> getLocationTarget() { 
624      if (this.locationTarget == null)
625        this.locationTarget = new ArrayList<Location>();
626      return this.locationTarget;
627    }
628
629    /**
630     * @deprecated Use Reference#setResource(IBaseResource) instead
631     */
632    @Deprecated
633    public Location addLocationTarget() { 
634      Location r = new Location();
635      if (this.locationTarget == null)
636        this.locationTarget = new ArrayList<Location>();
637      this.locationTarget.add(r);
638      return r;
639    }
640
641    /**
642     * @return {@link #healthcareService} (Healthcare services provided through the role.)
643     */
644    public List<Reference> getHealthcareService() { 
645      if (this.healthcareService == null)
646        this.healthcareService = new ArrayList<Reference>();
647      return this.healthcareService;
648    }
649
650    /**
651     * @return Returns a reference to <code>this</code> for easy method chaining
652     */
653    public OrganizationAffiliation setHealthcareService(List<Reference> theHealthcareService) { 
654      this.healthcareService = theHealthcareService;
655      return this;
656    }
657
658    public boolean hasHealthcareService() { 
659      if (this.healthcareService == null)
660        return false;
661      for (Reference item : this.healthcareService)
662        if (!item.isEmpty())
663          return true;
664      return false;
665    }
666
667    public Reference addHealthcareService() { //3
668      Reference t = new Reference();
669      if (this.healthcareService == null)
670        this.healthcareService = new ArrayList<Reference>();
671      this.healthcareService.add(t);
672      return t;
673    }
674
675    public OrganizationAffiliation addHealthcareService(Reference t) { //3
676      if (t == null)
677        return this;
678      if (this.healthcareService == null)
679        this.healthcareService = new ArrayList<Reference>();
680      this.healthcareService.add(t);
681      return this;
682    }
683
684    /**
685     * @return The first repetition of repeating field {@link #healthcareService}, creating it if it does not already exist
686     */
687    public Reference getHealthcareServiceFirstRep() { 
688      if (getHealthcareService().isEmpty()) {
689        addHealthcareService();
690      }
691      return getHealthcareService().get(0);
692    }
693
694    /**
695     * @deprecated Use Reference#setResource(IBaseResource) instead
696     */
697    @Deprecated
698    public List<HealthcareService> getHealthcareServiceTarget() { 
699      if (this.healthcareServiceTarget == null)
700        this.healthcareServiceTarget = new ArrayList<HealthcareService>();
701      return this.healthcareServiceTarget;
702    }
703
704    /**
705     * @deprecated Use Reference#setResource(IBaseResource) instead
706     */
707    @Deprecated
708    public HealthcareService addHealthcareServiceTarget() { 
709      HealthcareService r = new HealthcareService();
710      if (this.healthcareServiceTarget == null)
711        this.healthcareServiceTarget = new ArrayList<HealthcareService>();
712      this.healthcareServiceTarget.add(r);
713      return r;
714    }
715
716    /**
717     * @return {@link #telecom} (Contact details at the participatingOrganization relevant to this Affiliation.)
718     */
719    public List<ContactPoint> getTelecom() { 
720      if (this.telecom == null)
721        this.telecom = new ArrayList<ContactPoint>();
722      return this.telecom;
723    }
724
725    /**
726     * @return Returns a reference to <code>this</code> for easy method chaining
727     */
728    public OrganizationAffiliation setTelecom(List<ContactPoint> theTelecom) { 
729      this.telecom = theTelecom;
730      return this;
731    }
732
733    public boolean hasTelecom() { 
734      if (this.telecom == null)
735        return false;
736      for (ContactPoint item : this.telecom)
737        if (!item.isEmpty())
738          return true;
739      return false;
740    }
741
742    public ContactPoint addTelecom() { //3
743      ContactPoint t = new ContactPoint();
744      if (this.telecom == null)
745        this.telecom = new ArrayList<ContactPoint>();
746      this.telecom.add(t);
747      return t;
748    }
749
750    public OrganizationAffiliation addTelecom(ContactPoint t) { //3
751      if (t == null)
752        return this;
753      if (this.telecom == null)
754        this.telecom = new ArrayList<ContactPoint>();
755      this.telecom.add(t);
756      return this;
757    }
758
759    /**
760     * @return The first repetition of repeating field {@link #telecom}, creating it if it does not already exist
761     */
762    public ContactPoint getTelecomFirstRep() { 
763      if (getTelecom().isEmpty()) {
764        addTelecom();
765      }
766      return getTelecom().get(0);
767    }
768
769    /**
770     * @return {@link #endpoint} (Technical endpoints providing access to services operated for this role.)
771     */
772    public List<Reference> getEndpoint() { 
773      if (this.endpoint == null)
774        this.endpoint = new ArrayList<Reference>();
775      return this.endpoint;
776    }
777
778    /**
779     * @return Returns a reference to <code>this</code> for easy method chaining
780     */
781    public OrganizationAffiliation setEndpoint(List<Reference> theEndpoint) { 
782      this.endpoint = theEndpoint;
783      return this;
784    }
785
786    public boolean hasEndpoint() { 
787      if (this.endpoint == null)
788        return false;
789      for (Reference item : this.endpoint)
790        if (!item.isEmpty())
791          return true;
792      return false;
793    }
794
795    public Reference addEndpoint() { //3
796      Reference t = new Reference();
797      if (this.endpoint == null)
798        this.endpoint = new ArrayList<Reference>();
799      this.endpoint.add(t);
800      return t;
801    }
802
803    public OrganizationAffiliation addEndpoint(Reference t) { //3
804      if (t == null)
805        return this;
806      if (this.endpoint == null)
807        this.endpoint = new ArrayList<Reference>();
808      this.endpoint.add(t);
809      return this;
810    }
811
812    /**
813     * @return The first repetition of repeating field {@link #endpoint}, creating it if it does not already exist
814     */
815    public Reference getEndpointFirstRep() { 
816      if (getEndpoint().isEmpty()) {
817        addEndpoint();
818      }
819      return getEndpoint().get(0);
820    }
821
822    /**
823     * @deprecated Use Reference#setResource(IBaseResource) instead
824     */
825    @Deprecated
826    public List<Endpoint> getEndpointTarget() { 
827      if (this.endpointTarget == null)
828        this.endpointTarget = new ArrayList<Endpoint>();
829      return this.endpointTarget;
830    }
831
832    /**
833     * @deprecated Use Reference#setResource(IBaseResource) instead
834     */
835    @Deprecated
836    public Endpoint addEndpointTarget() { 
837      Endpoint r = new Endpoint();
838      if (this.endpointTarget == null)
839        this.endpointTarget = new ArrayList<Endpoint>();
840      this.endpointTarget.add(r);
841      return r;
842    }
843
844      protected void listChildren(List<Property> children) {
845        super.listChildren(children);
846        children.add(new Property("identifier", "Identifier", "Business identifiers that are specific to this role.", 0, java.lang.Integer.MAX_VALUE, identifier));
847        children.add(new Property("active", "boolean", "Whether this organization affiliation record is in active use.", 0, 1, active));
848        children.add(new Property("period", "Period", "The period during which the participatingOrganization is affiliated with the primary organization.", 0, 1, period));
849        children.add(new Property("organization", "Reference(Organization)", "Organization where the role is available (primary organization/has members).", 0, 1, organization));
850        children.add(new Property("participatingOrganization", "Reference(Organization)", "The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).", 0, 1, participatingOrganization));
851        children.add(new Property("network", "Reference(Organization)", "Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).", 0, java.lang.Integer.MAX_VALUE, network));
852        children.add(new Property("code", "CodeableConcept", "Definition of the role the participatingOrganization plays in the association.", 0, java.lang.Integer.MAX_VALUE, code));
853        children.add(new Property("specialty", "CodeableConcept", "Specific specialty of the participatingOrganization in the context of the role.", 0, java.lang.Integer.MAX_VALUE, specialty));
854        children.add(new Property("location", "Reference(Location)", "The location(s) at which the role occurs.", 0, java.lang.Integer.MAX_VALUE, location));
855        children.add(new Property("healthcareService", "Reference(HealthcareService)", "Healthcare services provided through the role.", 0, java.lang.Integer.MAX_VALUE, healthcareService));
856        children.add(new Property("telecom", "ContactPoint", "Contact details at the participatingOrganization relevant to this Affiliation.", 0, java.lang.Integer.MAX_VALUE, telecom));
857        children.add(new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for this role.", 0, java.lang.Integer.MAX_VALUE, endpoint));
858      }
859
860      @Override
861      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
862        switch (_hash) {
863        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Business identifiers that are specific to this role.", 0, java.lang.Integer.MAX_VALUE, identifier);
864        case -1422950650: /*active*/  return new Property("active", "boolean", "Whether this organization affiliation record is in active use.", 0, 1, active);
865        case -991726143: /*period*/  return new Property("period", "Period", "The period during which the participatingOrganization is affiliated with the primary organization.", 0, 1, period);
866        case 1178922291: /*organization*/  return new Property("organization", "Reference(Organization)", "Organization where the role is available (primary organization/has members).", 0, 1, organization);
867        case 1593310702: /*participatingOrganization*/  return new Property("participatingOrganization", "Reference(Organization)", "The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of).", 0, 1, participatingOrganization);
868        case 1843485230: /*network*/  return new Property("network", "Reference(Organization)", "Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined).", 0, java.lang.Integer.MAX_VALUE, network);
869        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Definition of the role the participatingOrganization plays in the association.", 0, java.lang.Integer.MAX_VALUE, code);
870        case -1694759682: /*specialty*/  return new Property("specialty", "CodeableConcept", "Specific specialty of the participatingOrganization in the context of the role.", 0, java.lang.Integer.MAX_VALUE, specialty);
871        case 1901043637: /*location*/  return new Property("location", "Reference(Location)", "The location(s) at which the role occurs.", 0, java.lang.Integer.MAX_VALUE, location);
872        case 1289661064: /*healthcareService*/  return new Property("healthcareService", "Reference(HealthcareService)", "Healthcare services provided through the role.", 0, java.lang.Integer.MAX_VALUE, healthcareService);
873        case -1429363305: /*telecom*/  return new Property("telecom", "ContactPoint", "Contact details at the participatingOrganization relevant to this Affiliation.", 0, java.lang.Integer.MAX_VALUE, telecom);
874        case 1741102485: /*endpoint*/  return new Property("endpoint", "Reference(Endpoint)", "Technical endpoints providing access to services operated for this role.", 0, java.lang.Integer.MAX_VALUE, endpoint);
875        default: return super.getNamedProperty(_hash, _name, _checkValid);
876        }
877
878      }
879
880      @Override
881      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
882        switch (hash) {
883        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
884        case -1422950650: /*active*/ return this.active == null ? new Base[0] : new Base[] {this.active}; // BooleanType
885        case -991726143: /*period*/ return this.period == null ? new Base[0] : new Base[] {this.period}; // Period
886        case 1178922291: /*organization*/ return this.organization == null ? new Base[0] : new Base[] {this.organization}; // Reference
887        case 1593310702: /*participatingOrganization*/ return this.participatingOrganization == null ? new Base[0] : new Base[] {this.participatingOrganization}; // Reference
888        case 1843485230: /*network*/ return this.network == null ? new Base[0] : this.network.toArray(new Base[this.network.size()]); // Reference
889        case 3059181: /*code*/ return this.code == null ? new Base[0] : this.code.toArray(new Base[this.code.size()]); // CodeableConcept
890        case -1694759682: /*specialty*/ return this.specialty == null ? new Base[0] : this.specialty.toArray(new Base[this.specialty.size()]); // CodeableConcept
891        case 1901043637: /*location*/ return this.location == null ? new Base[0] : this.location.toArray(new Base[this.location.size()]); // Reference
892        case 1289661064: /*healthcareService*/ return this.healthcareService == null ? new Base[0] : this.healthcareService.toArray(new Base[this.healthcareService.size()]); // Reference
893        case -1429363305: /*telecom*/ return this.telecom == null ? new Base[0] : this.telecom.toArray(new Base[this.telecom.size()]); // ContactPoint
894        case 1741102485: /*endpoint*/ return this.endpoint == null ? new Base[0] : this.endpoint.toArray(new Base[this.endpoint.size()]); // Reference
895        default: return super.getProperty(hash, name, checkValid);
896        }
897
898      }
899
900      @Override
901      public Base setProperty(int hash, String name, Base value) throws FHIRException {
902        switch (hash) {
903        case -1618432855: // identifier
904          this.getIdentifier().add(castToIdentifier(value)); // Identifier
905          return value;
906        case -1422950650: // active
907          this.active = castToBoolean(value); // BooleanType
908          return value;
909        case -991726143: // period
910          this.period = castToPeriod(value); // Period
911          return value;
912        case 1178922291: // organization
913          this.organization = castToReference(value); // Reference
914          return value;
915        case 1593310702: // participatingOrganization
916          this.participatingOrganization = castToReference(value); // Reference
917          return value;
918        case 1843485230: // network
919          this.getNetwork().add(castToReference(value)); // Reference
920          return value;
921        case 3059181: // code
922          this.getCode().add(castToCodeableConcept(value)); // CodeableConcept
923          return value;
924        case -1694759682: // specialty
925          this.getSpecialty().add(castToCodeableConcept(value)); // CodeableConcept
926          return value;
927        case 1901043637: // location
928          this.getLocation().add(castToReference(value)); // Reference
929          return value;
930        case 1289661064: // healthcareService
931          this.getHealthcareService().add(castToReference(value)); // Reference
932          return value;
933        case -1429363305: // telecom
934          this.getTelecom().add(castToContactPoint(value)); // ContactPoint
935          return value;
936        case 1741102485: // endpoint
937          this.getEndpoint().add(castToReference(value)); // Reference
938          return value;
939        default: return super.setProperty(hash, name, value);
940        }
941
942      }
943
944      @Override
945      public Base setProperty(String name, Base value) throws FHIRException {
946        if (name.equals("identifier")) {
947          this.getIdentifier().add(castToIdentifier(value));
948        } else if (name.equals("active")) {
949          this.active = castToBoolean(value); // BooleanType
950        } else if (name.equals("period")) {
951          this.period = castToPeriod(value); // Period
952        } else if (name.equals("organization")) {
953          this.organization = castToReference(value); // Reference
954        } else if (name.equals("participatingOrganization")) {
955          this.participatingOrganization = castToReference(value); // Reference
956        } else if (name.equals("network")) {
957          this.getNetwork().add(castToReference(value));
958        } else if (name.equals("code")) {
959          this.getCode().add(castToCodeableConcept(value));
960        } else if (name.equals("specialty")) {
961          this.getSpecialty().add(castToCodeableConcept(value));
962        } else if (name.equals("location")) {
963          this.getLocation().add(castToReference(value));
964        } else if (name.equals("healthcareService")) {
965          this.getHealthcareService().add(castToReference(value));
966        } else if (name.equals("telecom")) {
967          this.getTelecom().add(castToContactPoint(value));
968        } else if (name.equals("endpoint")) {
969          this.getEndpoint().add(castToReference(value));
970        } else
971          return super.setProperty(name, value);
972        return value;
973      }
974
975      @Override
976      public Base makeProperty(int hash, String name) throws FHIRException {
977        switch (hash) {
978        case -1618432855:  return addIdentifier(); 
979        case -1422950650:  return getActiveElement();
980        case -991726143:  return getPeriod(); 
981        case 1178922291:  return getOrganization(); 
982        case 1593310702:  return getParticipatingOrganization(); 
983        case 1843485230:  return addNetwork(); 
984        case 3059181:  return addCode(); 
985        case -1694759682:  return addSpecialty(); 
986        case 1901043637:  return addLocation(); 
987        case 1289661064:  return addHealthcareService(); 
988        case -1429363305:  return addTelecom(); 
989        case 1741102485:  return addEndpoint(); 
990        default: return super.makeProperty(hash, name);
991        }
992
993      }
994
995      @Override
996      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
997        switch (hash) {
998        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
999        case -1422950650: /*active*/ return new String[] {"boolean"};
1000        case -991726143: /*period*/ return new String[] {"Period"};
1001        case 1178922291: /*organization*/ return new String[] {"Reference"};
1002        case 1593310702: /*participatingOrganization*/ return new String[] {"Reference"};
1003        case 1843485230: /*network*/ return new String[] {"Reference"};
1004        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
1005        case -1694759682: /*specialty*/ return new String[] {"CodeableConcept"};
1006        case 1901043637: /*location*/ return new String[] {"Reference"};
1007        case 1289661064: /*healthcareService*/ return new String[] {"Reference"};
1008        case -1429363305: /*telecom*/ return new String[] {"ContactPoint"};
1009        case 1741102485: /*endpoint*/ return new String[] {"Reference"};
1010        default: return super.getTypesForProperty(hash, name);
1011        }
1012
1013      }
1014
1015      @Override
1016      public Base addChild(String name) throws FHIRException {
1017        if (name.equals("identifier")) {
1018          return addIdentifier();
1019        }
1020        else if (name.equals("active")) {
1021          throw new FHIRException("Cannot call addChild on a primitive type OrganizationAffiliation.active");
1022        }
1023        else if (name.equals("period")) {
1024          this.period = new Period();
1025          return this.period;
1026        }
1027        else if (name.equals("organization")) {
1028          this.organization = new Reference();
1029          return this.organization;
1030        }
1031        else if (name.equals("participatingOrganization")) {
1032          this.participatingOrganization = new Reference();
1033          return this.participatingOrganization;
1034        }
1035        else if (name.equals("network")) {
1036          return addNetwork();
1037        }
1038        else if (name.equals("code")) {
1039          return addCode();
1040        }
1041        else if (name.equals("specialty")) {
1042          return addSpecialty();
1043        }
1044        else if (name.equals("location")) {
1045          return addLocation();
1046        }
1047        else if (name.equals("healthcareService")) {
1048          return addHealthcareService();
1049        }
1050        else if (name.equals("telecom")) {
1051          return addTelecom();
1052        }
1053        else if (name.equals("endpoint")) {
1054          return addEndpoint();
1055        }
1056        else
1057          return super.addChild(name);
1058      }
1059
1060  public String fhirType() {
1061    return "OrganizationAffiliation";
1062
1063  }
1064
1065      public OrganizationAffiliation copy() {
1066        OrganizationAffiliation dst = new OrganizationAffiliation();
1067        copyValues(dst);
1068        if (identifier != null) {
1069          dst.identifier = new ArrayList<Identifier>();
1070          for (Identifier i : identifier)
1071            dst.identifier.add(i.copy());
1072        };
1073        dst.active = active == null ? null : active.copy();
1074        dst.period = period == null ? null : period.copy();
1075        dst.organization = organization == null ? null : organization.copy();
1076        dst.participatingOrganization = participatingOrganization == null ? null : participatingOrganization.copy();
1077        if (network != null) {
1078          dst.network = new ArrayList<Reference>();
1079          for (Reference i : network)
1080            dst.network.add(i.copy());
1081        };
1082        if (code != null) {
1083          dst.code = new ArrayList<CodeableConcept>();
1084          for (CodeableConcept i : code)
1085            dst.code.add(i.copy());
1086        };
1087        if (specialty != null) {
1088          dst.specialty = new ArrayList<CodeableConcept>();
1089          for (CodeableConcept i : specialty)
1090            dst.specialty.add(i.copy());
1091        };
1092        if (location != null) {
1093          dst.location = new ArrayList<Reference>();
1094          for (Reference i : location)
1095            dst.location.add(i.copy());
1096        };
1097        if (healthcareService != null) {
1098          dst.healthcareService = new ArrayList<Reference>();
1099          for (Reference i : healthcareService)
1100            dst.healthcareService.add(i.copy());
1101        };
1102        if (telecom != null) {
1103          dst.telecom = new ArrayList<ContactPoint>();
1104          for (ContactPoint i : telecom)
1105            dst.telecom.add(i.copy());
1106        };
1107        if (endpoint != null) {
1108          dst.endpoint = new ArrayList<Reference>();
1109          for (Reference i : endpoint)
1110            dst.endpoint.add(i.copy());
1111        };
1112        return dst;
1113      }
1114
1115      protected OrganizationAffiliation typedCopy() {
1116        return copy();
1117      }
1118
1119      @Override
1120      public boolean equalsDeep(Base other_) {
1121        if (!super.equalsDeep(other_))
1122          return false;
1123        if (!(other_ instanceof OrganizationAffiliation))
1124          return false;
1125        OrganizationAffiliation o = (OrganizationAffiliation) other_;
1126        return compareDeep(identifier, o.identifier, true) && compareDeep(active, o.active, true) && compareDeep(period, o.period, true)
1127           && compareDeep(organization, o.organization, true) && compareDeep(participatingOrganization, o.participatingOrganization, true)
1128           && compareDeep(network, o.network, true) && compareDeep(code, o.code, true) && compareDeep(specialty, o.specialty, true)
1129           && compareDeep(location, o.location, true) && compareDeep(healthcareService, o.healthcareService, true)
1130           && compareDeep(telecom, o.telecom, true) && compareDeep(endpoint, o.endpoint, true);
1131      }
1132
1133      @Override
1134      public boolean equalsShallow(Base other_) {
1135        if (!super.equalsShallow(other_))
1136          return false;
1137        if (!(other_ instanceof OrganizationAffiliation))
1138          return false;
1139        OrganizationAffiliation o = (OrganizationAffiliation) other_;
1140        return compareValues(active, o.active, true);
1141      }
1142
1143      public boolean isEmpty() {
1144        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, active, period
1145          , organization, participatingOrganization, network, code, specialty, location, healthcareService
1146          , telecom, endpoint);
1147      }
1148
1149  @Override
1150  public ResourceType getResourceType() {
1151    return ResourceType.OrganizationAffiliation;
1152   }
1153
1154 /**
1155   * Search parameter: <b>date</b>
1156   * <p>
1157   * Description: <b>The period during which the participatingOrganization is affiliated with the primary organization</b><br>
1158   * Type: <b>date</b><br>
1159   * Path: <b>OrganizationAffiliation.period</b><br>
1160   * </p>
1161   */
1162  @SearchParamDefinition(name="date", path="OrganizationAffiliation.period", description="The period during which the participatingOrganization is affiliated with the primary organization", type="date" )
1163  public static final String SP_DATE = "date";
1164 /**
1165   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1166   * <p>
1167   * Description: <b>The period during which the participatingOrganization is affiliated with the primary organization</b><br>
1168   * Type: <b>date</b><br>
1169   * Path: <b>OrganizationAffiliation.period</b><br>
1170   * </p>
1171   */
1172  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1173
1174 /**
1175   * Search parameter: <b>identifier</b>
1176   * <p>
1177   * Description: <b>An organization affiliation's Identifier</b><br>
1178   * Type: <b>token</b><br>
1179   * Path: <b>OrganizationAffiliation.identifier</b><br>
1180   * </p>
1181   */
1182  @SearchParamDefinition(name="identifier", path="OrganizationAffiliation.identifier", description="An organization affiliation's Identifier", type="token" )
1183  public static final String SP_IDENTIFIER = "identifier";
1184 /**
1185   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1186   * <p>
1187   * Description: <b>An organization affiliation's Identifier</b><br>
1188   * Type: <b>token</b><br>
1189   * Path: <b>OrganizationAffiliation.identifier</b><br>
1190   * </p>
1191   */
1192  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1193
1194 /**
1195   * Search parameter: <b>specialty</b>
1196   * <p>
1197   * Description: <b>Specific specialty of the participatingOrganization in the context of the role</b><br>
1198   * Type: <b>token</b><br>
1199   * Path: <b>OrganizationAffiliation.specialty</b><br>
1200   * </p>
1201   */
1202  @SearchParamDefinition(name="specialty", path="OrganizationAffiliation.specialty", description="Specific specialty of the participatingOrganization in the context of the role", type="token" )
1203  public static final String SP_SPECIALTY = "specialty";
1204 /**
1205   * <b>Fluent Client</b> search parameter constant for <b>specialty</b>
1206   * <p>
1207   * Description: <b>Specific specialty of the participatingOrganization in the context of the role</b><br>
1208   * Type: <b>token</b><br>
1209   * Path: <b>OrganizationAffiliation.specialty</b><br>
1210   * </p>
1211   */
1212  public static final ca.uhn.fhir.rest.gclient.TokenClientParam SPECIALTY = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_SPECIALTY);
1213
1214 /**
1215   * Search parameter: <b>role</b>
1216   * <p>
1217   * Description: <b>Definition of the role the participatingOrganization plays</b><br>
1218   * Type: <b>token</b><br>
1219   * Path: <b>OrganizationAffiliation.code</b><br>
1220   * </p>
1221   */
1222  @SearchParamDefinition(name="role", path="OrganizationAffiliation.code", description="Definition of the role the participatingOrganization plays", type="token" )
1223  public static final String SP_ROLE = "role";
1224 /**
1225   * <b>Fluent Client</b> search parameter constant for <b>role</b>
1226   * <p>
1227   * Description: <b>Definition of the role the participatingOrganization plays</b><br>
1228   * Type: <b>token</b><br>
1229   * Path: <b>OrganizationAffiliation.code</b><br>
1230   * </p>
1231   */
1232  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ROLE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ROLE);
1233
1234 /**
1235   * Search parameter: <b>active</b>
1236   * <p>
1237   * Description: <b>Whether this organization affiliation record is in active use</b><br>
1238   * Type: <b>token</b><br>
1239   * Path: <b>OrganizationAffiliation.active</b><br>
1240   * </p>
1241   */
1242  @SearchParamDefinition(name="active", path="OrganizationAffiliation.active", description="Whether this organization affiliation record is in active use", type="token" )
1243  public static final String SP_ACTIVE = "active";
1244 /**
1245   * <b>Fluent Client</b> search parameter constant for <b>active</b>
1246   * <p>
1247   * Description: <b>Whether this organization affiliation record is in active use</b><br>
1248   * Type: <b>token</b><br>
1249   * Path: <b>OrganizationAffiliation.active</b><br>
1250   * </p>
1251   */
1252  public static final ca.uhn.fhir.rest.gclient.TokenClientParam ACTIVE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_ACTIVE);
1253
1254 /**
1255   * Search parameter: <b>primary-organization</b>
1256   * <p>
1257   * Description: <b>The organization that receives the services from the participating organization</b><br>
1258   * Type: <b>reference</b><br>
1259   * Path: <b>OrganizationAffiliation.organization</b><br>
1260   * </p>
1261   */
1262  @SearchParamDefinition(name="primary-organization", path="OrganizationAffiliation.organization", description="The organization that receives the services from the participating organization", type="reference", target={Organization.class } )
1263  public static final String SP_PRIMARY_ORGANIZATION = "primary-organization";
1264 /**
1265   * <b>Fluent Client</b> search parameter constant for <b>primary-organization</b>
1266   * <p>
1267   * Description: <b>The organization that receives the services from the participating organization</b><br>
1268   * Type: <b>reference</b><br>
1269   * Path: <b>OrganizationAffiliation.organization</b><br>
1270   * </p>
1271   */
1272  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PRIMARY_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PRIMARY_ORGANIZATION);
1273
1274/**
1275   * Constant for fluent queries to be used to add include statements. Specifies
1276   * the path value of "<b>OrganizationAffiliation:primary-organization</b>".
1277   */
1278  public static final ca.uhn.fhir.model.api.Include INCLUDE_PRIMARY_ORGANIZATION = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:primary-organization").toLocked();
1279
1280 /**
1281   * Search parameter: <b>network</b>
1282   * <p>
1283   * Description: <b>Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)</b><br>
1284   * Type: <b>reference</b><br>
1285   * Path: <b>OrganizationAffiliation.network</b><br>
1286   * </p>
1287   */
1288  @SearchParamDefinition(name="network", path="OrganizationAffiliation.network", description="Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)", type="reference", target={Organization.class } )
1289  public static final String SP_NETWORK = "network";
1290 /**
1291   * <b>Fluent Client</b> search parameter constant for <b>network</b>
1292   * <p>
1293   * Description: <b>Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)</b><br>
1294   * Type: <b>reference</b><br>
1295   * Path: <b>OrganizationAffiliation.network</b><br>
1296   * </p>
1297   */
1298  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam NETWORK = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_NETWORK);
1299
1300/**
1301   * Constant for fluent queries to be used to add include statements. Specifies
1302   * the path value of "<b>OrganizationAffiliation:network</b>".
1303   */
1304  public static final ca.uhn.fhir.model.api.Include INCLUDE_NETWORK = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:network").toLocked();
1305
1306 /**
1307   * Search parameter: <b>endpoint</b>
1308   * <p>
1309   * Description: <b>Technical endpoints providing access to services operated for this role</b><br>
1310   * Type: <b>reference</b><br>
1311   * Path: <b>OrganizationAffiliation.endpoint</b><br>
1312   * </p>
1313   */
1314  @SearchParamDefinition(name="endpoint", path="OrganizationAffiliation.endpoint", description="Technical endpoints providing access to services operated for this role", type="reference", target={Endpoint.class } )
1315  public static final String SP_ENDPOINT = "endpoint";
1316 /**
1317   * <b>Fluent Client</b> search parameter constant for <b>endpoint</b>
1318   * <p>
1319   * Description: <b>Technical endpoints providing access to services operated for this role</b><br>
1320   * Type: <b>reference</b><br>
1321   * Path: <b>OrganizationAffiliation.endpoint</b><br>
1322   * </p>
1323   */
1324  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam ENDPOINT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_ENDPOINT);
1325
1326/**
1327   * Constant for fluent queries to be used to add include statements. Specifies
1328   * the path value of "<b>OrganizationAffiliation:endpoint</b>".
1329   */
1330  public static final ca.uhn.fhir.model.api.Include INCLUDE_ENDPOINT = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:endpoint").toLocked();
1331
1332 /**
1333   * Search parameter: <b>phone</b>
1334   * <p>
1335   * Description: <b>A value in a phone contact</b><br>
1336   * Type: <b>token</b><br>
1337   * Path: <b>OrganizationAffiliation.telecom(system=phone)</b><br>
1338   * </p>
1339   */
1340  @SearchParamDefinition(name="phone", path="OrganizationAffiliation.telecom.where(system='phone')", description="A value in a phone contact", type="token" )
1341  public static final String SP_PHONE = "phone";
1342 /**
1343   * <b>Fluent Client</b> search parameter constant for <b>phone</b>
1344   * <p>
1345   * Description: <b>A value in a phone contact</b><br>
1346   * Type: <b>token</b><br>
1347   * Path: <b>OrganizationAffiliation.telecom(system=phone)</b><br>
1348   * </p>
1349   */
1350  public static final ca.uhn.fhir.rest.gclient.TokenClientParam PHONE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_PHONE);
1351
1352 /**
1353   * Search parameter: <b>service</b>
1354   * <p>
1355   * Description: <b>Healthcare services provided through the role</b><br>
1356   * Type: <b>reference</b><br>
1357   * Path: <b>OrganizationAffiliation.healthcareService</b><br>
1358   * </p>
1359   */
1360  @SearchParamDefinition(name="service", path="OrganizationAffiliation.healthcareService", description="Healthcare services provided through the role", type="reference", target={HealthcareService.class } )
1361  public static final String SP_SERVICE = "service";
1362 /**
1363   * <b>Fluent Client</b> search parameter constant for <b>service</b>
1364   * <p>
1365   * Description: <b>Healthcare services provided through the role</b><br>
1366   * Type: <b>reference</b><br>
1367   * Path: <b>OrganizationAffiliation.healthcareService</b><br>
1368   * </p>
1369   */
1370  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SERVICE = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SERVICE);
1371
1372/**
1373   * Constant for fluent queries to be used to add include statements. Specifies
1374   * the path value of "<b>OrganizationAffiliation:service</b>".
1375   */
1376  public static final ca.uhn.fhir.model.api.Include INCLUDE_SERVICE = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:service").toLocked();
1377
1378 /**
1379   * Search parameter: <b>participating-organization</b>
1380   * <p>
1381   * Description: <b>The organization that provides services to the primary organization</b><br>
1382   * Type: <b>reference</b><br>
1383   * Path: <b>OrganizationAffiliation.participatingOrganization</b><br>
1384   * </p>
1385   */
1386  @SearchParamDefinition(name="participating-organization", path="OrganizationAffiliation.participatingOrganization", description="The organization that provides services to the primary organization", type="reference", target={Organization.class } )
1387  public static final String SP_PARTICIPATING_ORGANIZATION = "participating-organization";
1388 /**
1389   * <b>Fluent Client</b> search parameter constant for <b>participating-organization</b>
1390   * <p>
1391   * Description: <b>The organization that provides services to the primary organization</b><br>
1392   * Type: <b>reference</b><br>
1393   * Path: <b>OrganizationAffiliation.participatingOrganization</b><br>
1394   * </p>
1395   */
1396  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PARTICIPATING_ORGANIZATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PARTICIPATING_ORGANIZATION);
1397
1398/**
1399   * Constant for fluent queries to be used to add include statements. Specifies
1400   * the path value of "<b>OrganizationAffiliation:participating-organization</b>".
1401   */
1402  public static final ca.uhn.fhir.model.api.Include INCLUDE_PARTICIPATING_ORGANIZATION = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:participating-organization").toLocked();
1403
1404 /**
1405   * Search parameter: <b>telecom</b>
1406   * <p>
1407   * Description: <b>The value in any kind of contact</b><br>
1408   * Type: <b>token</b><br>
1409   * Path: <b>OrganizationAffiliation.telecom</b><br>
1410   * </p>
1411   */
1412  @SearchParamDefinition(name="telecom", path="OrganizationAffiliation.telecom", description="The value in any kind of contact", type="token" )
1413  public static final String SP_TELECOM = "telecom";
1414 /**
1415   * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
1416   * <p>
1417   * Description: <b>The value in any kind of contact</b><br>
1418   * Type: <b>token</b><br>
1419   * Path: <b>OrganizationAffiliation.telecom</b><br>
1420   * </p>
1421   */
1422  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TELECOM = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TELECOM);
1423
1424 /**
1425   * Search parameter: <b>location</b>
1426   * <p>
1427   * Description: <b>The location(s) at which the role occurs</b><br>
1428   * Type: <b>reference</b><br>
1429   * Path: <b>OrganizationAffiliation.location</b><br>
1430   * </p>
1431   */
1432  @SearchParamDefinition(name="location", path="OrganizationAffiliation.location", description="The location(s) at which the role occurs", type="reference", target={Location.class } )
1433  public static final String SP_LOCATION = "location";
1434 /**
1435   * <b>Fluent Client</b> search parameter constant for <b>location</b>
1436   * <p>
1437   * Description: <b>The location(s) at which the role occurs</b><br>
1438   * Type: <b>reference</b><br>
1439   * Path: <b>OrganizationAffiliation.location</b><br>
1440   * </p>
1441   */
1442  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam LOCATION = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_LOCATION);
1443
1444/**
1445   * Constant for fluent queries to be used to add include statements. Specifies
1446   * the path value of "<b>OrganizationAffiliation:location</b>".
1447   */
1448  public static final ca.uhn.fhir.model.api.Include INCLUDE_LOCATION = new ca.uhn.fhir.model.api.Include("OrganizationAffiliation:location").toLocked();
1449
1450 /**
1451   * Search parameter: <b>email</b>
1452   * <p>
1453   * Description: <b>A value in an email contact</b><br>
1454   * Type: <b>token</b><br>
1455   * Path: <b>OrganizationAffiliation.telecom(system=email)</b><br>
1456   * </p>
1457   */
1458  @SearchParamDefinition(name="email", path="OrganizationAffiliation.telecom.where(system='email')", description="A value in an email contact", type="token" )
1459  public static final String SP_EMAIL = "email";
1460 /**
1461   * <b>Fluent Client</b> search parameter constant for <b>email</b>
1462   * <p>
1463   * Description: <b>A value in an email contact</b><br>
1464   * Type: <b>token</b><br>
1465   * Path: <b>OrganizationAffiliation.telecom(system=email)</b><br>
1466   * </p>
1467   */
1468  public static final ca.uhn.fhir.rest.gclient.TokenClientParam EMAIL = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_EMAIL);
1469
1470
1471}
1472