001package org.hl7.fhir.r5.model;
002
003
004/*
005  Copyright (c) 2011+, HL7, Inc.
006  All rights reserved.
007  
008  Redistribution and use in source and binary forms, with or without modification, \
009  are permitted provided that the following conditions are met:
010  
011   * Redistributions of source code must retain the above copyright notice, this \
012     list of conditions and the following disclaimer.
013   * Redistributions in binary form must reproduce the above copyright notice, \
014     this list of conditions and the following disclaimer in the documentation \
015     and/or other materials provided with the distribution.
016   * Neither the name of HL7 nor the names of its contributors may be used to 
017     endorse or promote products derived from this software without specific 
018     prior written permission.
019  
020  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND \
021  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \
022  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. \
023  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, \
024  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT \
025  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR \
026  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, \
027  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) \
028  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE \
029  POSSIBILITY OF SUCH DAMAGE.
030  */
031
032// Generated on Tue, Dec 28, 2021 07:16+1100 for FHIR v5.0.0-snapshot1
033
034import java.util.ArrayList;
035import java.util.Date;
036import java.util.List;
037import org.hl7.fhir.r5.model.Enumerations.*;
038import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
039import org.hl7.fhir.exceptions.FHIRException;
040import org.hl7.fhir.instance.model.api.ICompositeType;
041import ca.uhn.fhir.model.api.annotation.ResourceDef;
042import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
043import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
044import ca.uhn.fhir.model.api.annotation.Child;
045import ca.uhn.fhir.model.api.annotation.ChildOrder;
046import ca.uhn.fhir.model.api.annotation.Description;
047import ca.uhn.fhir.model.api.annotation.Block;
048
049/**
050 * Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
051 */
052@ResourceDef(name="Basic", profile="http://hl7.org/fhir/StructureDefinition/Basic")
053public class Basic extends DomainResource {
054
055    /**
056     * Identifier assigned to the resource for business purposes, outside the context of FHIR.
057     */
058    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=true)
059    @Description(shortDefinition="Business identifier", formalDefinition="Identifier assigned to the resource for business purposes, outside the context of FHIR." )
060    protected List<Identifier> identifier;
061
062    /**
063     * Identifies the 'type' of resource - equivalent to the resource name for other resources.
064     */
065    @Child(name = "code", type = {CodeableConcept.class}, order=1, min=1, max=1, modifier=true, summary=true)
066    @Description(shortDefinition="Kind of Resource", formalDefinition="Identifies the 'type' of resource - equivalent to the resource name for other resources." )
067    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/basic-resource-type")
068    protected CodeableConcept code;
069
070    /**
071     * Identifies the patient, practitioner, device or any other resource that is the "focus" of this resource.
072     */
073    @Child(name = "subject", type = {Reference.class}, order=2, min=0, max=1, modifier=false, summary=true)
074    @Description(shortDefinition="Identifies the focus of this resource", formalDefinition="Identifies the patient, practitioner, device or any other resource that is the \"focus\" of this resource." )
075    protected Reference subject;
076
077    /**
078     * Identifies when the resource was first created.
079     */
080    @Child(name = "created", type = {DateType.class}, order=3, min=0, max=1, modifier=false, summary=true)
081    @Description(shortDefinition="When created", formalDefinition="Identifies when the resource was first created." )
082    protected DateType created;
083
084    /**
085     * Indicates who was responsible for creating the resource instance.
086     */
087    @Child(name = "author", type = {Practitioner.class, PractitionerRole.class, Patient.class, RelatedPerson.class, Organization.class}, order=4, min=0, max=1, modifier=false, summary=true)
088    @Description(shortDefinition="Who created", formalDefinition="Indicates who was responsible for creating the resource instance." )
089    protected Reference author;
090
091    private static final long serialVersionUID = 1468819397L;
092
093  /**
094   * Constructor
095   */
096    public Basic() {
097      super();
098    }
099
100  /**
101   * Constructor
102   */
103    public Basic(CodeableConcept code) {
104      super();
105      this.setCode(code);
106    }
107
108    /**
109     * @return {@link #identifier} (Identifier assigned to the resource for business purposes, outside the context of FHIR.)
110     */
111    public List<Identifier> getIdentifier() { 
112      if (this.identifier == null)
113        this.identifier = new ArrayList<Identifier>();
114      return this.identifier;
115    }
116
117    /**
118     * @return Returns a reference to <code>this</code> for easy method chaining
119     */
120    public Basic setIdentifier(List<Identifier> theIdentifier) { 
121      this.identifier = theIdentifier;
122      return this;
123    }
124
125    public boolean hasIdentifier() { 
126      if (this.identifier == null)
127        return false;
128      for (Identifier item : this.identifier)
129        if (!item.isEmpty())
130          return true;
131      return false;
132    }
133
134    public Identifier addIdentifier() { //3
135      Identifier t = new Identifier();
136      if (this.identifier == null)
137        this.identifier = new ArrayList<Identifier>();
138      this.identifier.add(t);
139      return t;
140    }
141
142    public Basic addIdentifier(Identifier t) { //3
143      if (t == null)
144        return this;
145      if (this.identifier == null)
146        this.identifier = new ArrayList<Identifier>();
147      this.identifier.add(t);
148      return this;
149    }
150
151    /**
152     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
153     */
154    public Identifier getIdentifierFirstRep() { 
155      if (getIdentifier().isEmpty()) {
156        addIdentifier();
157      }
158      return getIdentifier().get(0);
159    }
160
161    /**
162     * @return {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.)
163     */
164    public CodeableConcept getCode() { 
165      if (this.code == null)
166        if (Configuration.errorOnAutoCreate())
167          throw new Error("Attempt to auto-create Basic.code");
168        else if (Configuration.doAutoCreate())
169          this.code = new CodeableConcept(); // cc
170      return this.code;
171    }
172
173    public boolean hasCode() { 
174      return this.code != null && !this.code.isEmpty();
175    }
176
177    /**
178     * @param value {@link #code} (Identifies the 'type' of resource - equivalent to the resource name for other resources.)
179     */
180    public Basic setCode(CodeableConcept value) { 
181      this.code = value;
182      return this;
183    }
184
185    /**
186     * @return {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resource.)
187     */
188    public Reference getSubject() { 
189      if (this.subject == null)
190        if (Configuration.errorOnAutoCreate())
191          throw new Error("Attempt to auto-create Basic.subject");
192        else if (Configuration.doAutoCreate())
193          this.subject = new Reference(); // cc
194      return this.subject;
195    }
196
197    public boolean hasSubject() { 
198      return this.subject != null && !this.subject.isEmpty();
199    }
200
201    /**
202     * @param value {@link #subject} (Identifies the patient, practitioner, device or any other resource that is the "focus" of this resource.)
203     */
204    public Basic setSubject(Reference value) { 
205      this.subject = value;
206      return this;
207    }
208
209    /**
210     * @return {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value
211     */
212    public DateType getCreatedElement() { 
213      if (this.created == null)
214        if (Configuration.errorOnAutoCreate())
215          throw new Error("Attempt to auto-create Basic.created");
216        else if (Configuration.doAutoCreate())
217          this.created = new DateType(); // bb
218      return this.created;
219    }
220
221    public boolean hasCreatedElement() { 
222      return this.created != null && !this.created.isEmpty();
223    }
224
225    public boolean hasCreated() { 
226      return this.created != null && !this.created.isEmpty();
227    }
228
229    /**
230     * @param value {@link #created} (Identifies when the resource was first created.). This is the underlying object with id, value and extensions. The accessor "getCreated" gives direct access to the value
231     */
232    public Basic setCreatedElement(DateType value) { 
233      this.created = value;
234      return this;
235    }
236
237    /**
238     * @return Identifies when the resource was first created.
239     */
240    public Date getCreated() { 
241      return this.created == null ? null : this.created.getValue();
242    }
243
244    /**
245     * @param value Identifies when the resource was first created.
246     */
247    public Basic setCreated(Date value) { 
248      if (value == null)
249        this.created = null;
250      else {
251        if (this.created == null)
252          this.created = new DateType();
253        this.created.setValue(value);
254      }
255      return this;
256    }
257
258    /**
259     * @return {@link #author} (Indicates who was responsible for creating the resource instance.)
260     */
261    public Reference getAuthor() { 
262      if (this.author == null)
263        if (Configuration.errorOnAutoCreate())
264          throw new Error("Attempt to auto-create Basic.author");
265        else if (Configuration.doAutoCreate())
266          this.author = new Reference(); // cc
267      return this.author;
268    }
269
270    public boolean hasAuthor() { 
271      return this.author != null && !this.author.isEmpty();
272    }
273
274    /**
275     * @param value {@link #author} (Indicates who was responsible for creating the resource instance.)
276     */
277    public Basic setAuthor(Reference value) { 
278      this.author = value;
279      return this;
280    }
281
282      protected void listChildren(List<Property> children) {
283        super.listChildren(children);
284        children.add(new Property("identifier", "Identifier", "Identifier assigned to the resource for business purposes, outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier));
285        children.add(new Property("code", "CodeableConcept", "Identifies the 'type' of resource - equivalent to the resource name for other resources.", 0, 1, code));
286        children.add(new Property("subject", "Reference(Any)", "Identifies the patient, practitioner, device or any other resource that is the \"focus\" of this resource.", 0, 1, subject));
287        children.add(new Property("created", "date", "Identifies when the resource was first created.", 0, 1, created));
288        children.add(new Property("author", "Reference(Practitioner|PractitionerRole|Patient|RelatedPerson|Organization)", "Indicates who was responsible for creating the resource instance.", 0, 1, author));
289      }
290
291      @Override
292      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
293        switch (_hash) {
294        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "Identifier assigned to the resource for business purposes, outside the context of FHIR.", 0, java.lang.Integer.MAX_VALUE, identifier);
295        case 3059181: /*code*/  return new Property("code", "CodeableConcept", "Identifies the 'type' of resource - equivalent to the resource name for other resources.", 0, 1, code);
296        case -1867885268: /*subject*/  return new Property("subject", "Reference(Any)", "Identifies the patient, practitioner, device or any other resource that is the \"focus\" of this resource.", 0, 1, subject);
297        case 1028554472: /*created*/  return new Property("created", "date", "Identifies when the resource was first created.", 0, 1, created);
298        case -1406328437: /*author*/  return new Property("author", "Reference(Practitioner|PractitionerRole|Patient|RelatedPerson|Organization)", "Indicates who was responsible for creating the resource instance.", 0, 1, author);
299        default: return super.getNamedProperty(_hash, _name, _checkValid);
300        }
301
302      }
303
304      @Override
305      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
306        switch (hash) {
307        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
308        case 3059181: /*code*/ return this.code == null ? new Base[0] : new Base[] {this.code}; // CodeableConcept
309        case -1867885268: /*subject*/ return this.subject == null ? new Base[0] : new Base[] {this.subject}; // Reference
310        case 1028554472: /*created*/ return this.created == null ? new Base[0] : new Base[] {this.created}; // DateType
311        case -1406328437: /*author*/ return this.author == null ? new Base[0] : new Base[] {this.author}; // Reference
312        default: return super.getProperty(hash, name, checkValid);
313        }
314
315      }
316
317      @Override
318      public Base setProperty(int hash, String name, Base value) throws FHIRException {
319        switch (hash) {
320        case -1618432855: // identifier
321          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
322          return value;
323        case 3059181: // code
324          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
325          return value;
326        case -1867885268: // subject
327          this.subject = TypeConvertor.castToReference(value); // Reference
328          return value;
329        case 1028554472: // created
330          this.created = TypeConvertor.castToDate(value); // DateType
331          return value;
332        case -1406328437: // author
333          this.author = TypeConvertor.castToReference(value); // Reference
334          return value;
335        default: return super.setProperty(hash, name, value);
336        }
337
338      }
339
340      @Override
341      public Base setProperty(String name, Base value) throws FHIRException {
342        if (name.equals("identifier")) {
343          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
344        } else if (name.equals("code")) {
345          this.code = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
346        } else if (name.equals("subject")) {
347          this.subject = TypeConvertor.castToReference(value); // Reference
348        } else if (name.equals("created")) {
349          this.created = TypeConvertor.castToDate(value); // DateType
350        } else if (name.equals("author")) {
351          this.author = TypeConvertor.castToReference(value); // Reference
352        } else
353          return super.setProperty(name, value);
354        return value;
355      }
356
357      @Override
358      public Base makeProperty(int hash, String name) throws FHIRException {
359        switch (hash) {
360        case -1618432855:  return addIdentifier(); 
361        case 3059181:  return getCode();
362        case -1867885268:  return getSubject();
363        case 1028554472:  return getCreatedElement();
364        case -1406328437:  return getAuthor();
365        default: return super.makeProperty(hash, name);
366        }
367
368      }
369
370      @Override
371      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
372        switch (hash) {
373        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
374        case 3059181: /*code*/ return new String[] {"CodeableConcept"};
375        case -1867885268: /*subject*/ return new String[] {"Reference"};
376        case 1028554472: /*created*/ return new String[] {"date"};
377        case -1406328437: /*author*/ return new String[] {"Reference"};
378        default: return super.getTypesForProperty(hash, name);
379        }
380
381      }
382
383      @Override
384      public Base addChild(String name) throws FHIRException {
385        if (name.equals("identifier")) {
386          return addIdentifier();
387        }
388        else if (name.equals("code")) {
389          this.code = new CodeableConcept();
390          return this.code;
391        }
392        else if (name.equals("subject")) {
393          this.subject = new Reference();
394          return this.subject;
395        }
396        else if (name.equals("created")) {
397          throw new FHIRException("Cannot call addChild on a primitive type Basic.created");
398        }
399        else if (name.equals("author")) {
400          this.author = new Reference();
401          return this.author;
402        }
403        else
404          return super.addChild(name);
405      }
406
407  public String fhirType() {
408    return "Basic";
409
410  }
411
412      public Basic copy() {
413        Basic dst = new Basic();
414        copyValues(dst);
415        return dst;
416      }
417
418      public void copyValues(Basic dst) {
419        super.copyValues(dst);
420        if (identifier != null) {
421          dst.identifier = new ArrayList<Identifier>();
422          for (Identifier i : identifier)
423            dst.identifier.add(i.copy());
424        };
425        dst.code = code == null ? null : code.copy();
426        dst.subject = subject == null ? null : subject.copy();
427        dst.created = created == null ? null : created.copy();
428        dst.author = author == null ? null : author.copy();
429      }
430
431      protected Basic typedCopy() {
432        return copy();
433      }
434
435      @Override
436      public boolean equalsDeep(Base other_) {
437        if (!super.equalsDeep(other_))
438          return false;
439        if (!(other_ instanceof Basic))
440          return false;
441        Basic o = (Basic) other_;
442        return compareDeep(identifier, o.identifier, true) && compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true)
443           && compareDeep(created, o.created, true) && compareDeep(author, o.author, true);
444      }
445
446      @Override
447      public boolean equalsShallow(Base other_) {
448        if (!super.equalsShallow(other_))
449          return false;
450        if (!(other_ instanceof Basic))
451          return false;
452        Basic o = (Basic) other_;
453        return compareValues(created, o.created, true);
454      }
455
456      public boolean isEmpty() {
457        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, code, subject
458          , created, author);
459      }
460
461  @Override
462  public ResourceType getResourceType() {
463    return ResourceType.Basic;
464   }
465
466 /**
467   * Search parameter: <b>author</b>
468   * <p>
469   * Description: <b>Who created</b><br>
470   * Type: <b>reference</b><br>
471   * Path: <b>Basic.author</b><br>
472   * </p>
473   */
474  @SearchParamDefinition(name="author", path="Basic.author", description="Who created", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Practitioner"), @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for RelatedPerson") }, target={Organization.class, Patient.class, Practitioner.class, PractitionerRole.class, RelatedPerson.class } )
475  public static final String SP_AUTHOR = "author";
476 /**
477   * <b>Fluent Client</b> search parameter constant for <b>author</b>
478   * <p>
479   * Description: <b>Who created</b><br>
480   * Type: <b>reference</b><br>
481   * Path: <b>Basic.author</b><br>
482   * </p>
483   */
484  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam AUTHOR = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_AUTHOR);
485
486/**
487   * Constant for fluent queries to be used to add include statements. Specifies
488   * the path value of "<b>Basic:author</b>".
489   */
490  public static final ca.uhn.fhir.model.api.Include INCLUDE_AUTHOR = new ca.uhn.fhir.model.api.Include("Basic:author").toLocked();
491
492 /**
493   * Search parameter: <b>code</b>
494   * <p>
495   * Description: <b>Kind of Resource</b><br>
496   * Type: <b>token</b><br>
497   * Path: <b>Basic.code</b><br>
498   * </p>
499   */
500  @SearchParamDefinition(name="code", path="Basic.code", description="Kind of Resource", type="token" )
501  public static final String SP_CODE = "code";
502 /**
503   * <b>Fluent Client</b> search parameter constant for <b>code</b>
504   * <p>
505   * Description: <b>Kind of Resource</b><br>
506   * Type: <b>token</b><br>
507   * Path: <b>Basic.code</b><br>
508   * </p>
509   */
510  public static final ca.uhn.fhir.rest.gclient.TokenClientParam CODE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_CODE);
511
512 /**
513   * Search parameter: <b>created</b>
514   * <p>
515   * Description: <b>When created</b><br>
516   * Type: <b>date</b><br>
517   * Path: <b>Basic.created</b><br>
518   * </p>
519   */
520  @SearchParamDefinition(name="created", path="Basic.created", description="When created", type="date" )
521  public static final String SP_CREATED = "created";
522 /**
523   * <b>Fluent Client</b> search parameter constant for <b>created</b>
524   * <p>
525   * Description: <b>When created</b><br>
526   * Type: <b>date</b><br>
527   * Path: <b>Basic.created</b><br>
528   * </p>
529   */
530  public static final ca.uhn.fhir.rest.gclient.DateClientParam CREATED = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_CREATED);
531
532 /**
533   * Search parameter: <b>identifier</b>
534   * <p>
535   * Description: <b>Business identifier</b><br>
536   * Type: <b>token</b><br>
537   * Path: <b>Basic.identifier</b><br>
538   * </p>
539   */
540  @SearchParamDefinition(name="identifier", path="Basic.identifier", description="Business identifier", type="token" )
541  public static final String SP_IDENTIFIER = "identifier";
542 /**
543   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
544   * <p>
545   * Description: <b>Business identifier</b><br>
546   * Type: <b>token</b><br>
547   * Path: <b>Basic.identifier</b><br>
548   * </p>
549   */
550  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
551
552 /**
553   * Search parameter: <b>patient</b>
554   * <p>
555   * Description: <b>Identifies the focus of this resource</b><br>
556   * Type: <b>reference</b><br>
557   * Path: <b>Basic.subject.where(resolve() is Patient)</b><br>
558   * </p>
559   */
560  @SearchParamDefinition(name="patient", path="Basic.subject.where(resolve() is Patient)", description="Identifies the focus of this resource", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
561  public static final String SP_PATIENT = "patient";
562 /**
563   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
564   * <p>
565   * Description: <b>Identifies the focus of this resource</b><br>
566   * Type: <b>reference</b><br>
567   * Path: <b>Basic.subject.where(resolve() is Patient)</b><br>
568   * </p>
569   */
570  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
571
572/**
573   * Constant for fluent queries to be used to add include statements. Specifies
574   * the path value of "<b>Basic:patient</b>".
575   */
576  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("Basic:patient").toLocked();
577
578 /**
579   * Search parameter: <b>subject</b>
580   * <p>
581   * Description: <b>Identifies the focus of this resource</b><br>
582   * Type: <b>reference</b><br>
583   * Path: <b>Basic.subject</b><br>
584   * </p>
585   */
586  @SearchParamDefinition(name="subject", path="Basic.subject", description="Identifies the focus of this resource", type="reference", target={Account.class, ActivityDefinition.class, AdministrableProductDefinition.class, AdverseEvent.class, AllergyIntolerance.class, Appointment.class, AppointmentResponse.class, ArtifactAssessment.class, AuditEvent.class, Basic.class, Binary.class, BiologicallyDerivedProduct.class, BodyStructure.class, Bundle.class, CapabilityStatement.class, CapabilityStatement2.class, CarePlan.class, CareTeam.class, ChargeItem.class, ChargeItemDefinition.class, Citation.class, Claim.class, ClaimResponse.class, ClinicalImpression.class, ClinicalUseDefinition.class, ClinicalUseIssue.class, CodeSystem.class, Communication.class, CommunicationRequest.class, CompartmentDefinition.class, Composition.class, ConceptMap.class, ConceptMap2.class, Condition.class, ConditionDefinition.class, Consent.class, Contract.class, Coverage.class, CoverageEligibilityRequest.class, CoverageEligibilityResponse.class, DetectedIssue.class, Device.class, DeviceDefinition.class, DeviceDispense.class, DeviceMetric.class, DeviceRequest.class, DeviceUsage.class, DiagnosticReport.class, DocumentManifest.class, DocumentReference.class, Encounter.class, Endpoint.class, EnrollmentRequest.class, EnrollmentResponse.class, EpisodeOfCare.class, EventDefinition.class, Evidence.class, EvidenceReport.class, EvidenceVariable.class, ExampleScenario.class, ExplanationOfBenefit.class, FamilyMemberHistory.class, Flag.class, Goal.class, GraphDefinition.class, Group.class, GuidanceResponse.class, HealthcareService.class, ImagingSelection.class, ImagingStudy.class, Immunization.class, ImmunizationEvaluation.class, ImmunizationRecommendation.class, ImplementationGuide.class, Ingredient.class, InsurancePlan.class, InventoryReport.class, Invoice.class, Library.class, Linkage.class, ListResource.class, Location.class, ManufacturedItemDefinition.class, Measure.class, MeasureReport.class, Medication.class, MedicationAdministration.class, MedicationDispense.class, MedicationKnowledge.class, MedicationRequest.class, MedicationUsage.class, MedicinalProductDefinition.class, MessageDefinition.class, MessageHeader.class, MolecularSequence.class, NamingSystem.class, NutritionIntake.class, NutritionOrder.class, NutritionProduct.class, Observation.class, ObservationDefinition.class, OperationDefinition.class, OperationOutcome.class, Organization.class, OrganizationAffiliation.class, PackagedProductDefinition.class, Patient.class, PaymentNotice.class, PaymentReconciliation.class, Permission.class, Person.class, PlanDefinition.class, Practitioner.class, PractitionerRole.class, Procedure.class, Provenance.class, Questionnaire.class, QuestionnaireResponse.class, RegulatedAuthorization.class, RelatedPerson.class, RequestGroup.class, ResearchStudy.class, ResearchSubject.class, RiskAssessment.class, Schedule.class, SearchParameter.class, ServiceRequest.class, Slot.class, Specimen.class, SpecimenDefinition.class, StructureDefinition.class, StructureMap.class, Subscription.class, SubscriptionStatus.class, SubscriptionTopic.class, Substance.class, SubstanceDefinition.class, SubstanceNucleicAcid.class, SubstancePolymer.class, SubstanceProtein.class, SubstanceReferenceInformation.class, SubstanceSourceMaterial.class, SupplyDelivery.class, SupplyRequest.class, Task.class, TerminologyCapabilities.class, TestReport.class, TestScript.class, ValueSet.class, VerificationResult.class, VisionPrescription.class } )
587  public static final String SP_SUBJECT = "subject";
588 /**
589   * <b>Fluent Client</b> search parameter constant for <b>subject</b>
590   * <p>
591   * Description: <b>Identifies the focus of this resource</b><br>
592   * Type: <b>reference</b><br>
593   * Path: <b>Basic.subject</b><br>
594   * </p>
595   */
596  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam SUBJECT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_SUBJECT);
597
598/**
599   * Constant for fluent queries to be used to add include statements. Specifies
600   * the path value of "<b>Basic:subject</b>".
601   */
602  public static final ca.uhn.fhir.model.api.Include INCLUDE_SUBJECT = new ca.uhn.fhir.model.api.Include("Basic:subject").toLocked();
603
604
605}
606