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.utilities.Utilities;
038import org.hl7.fhir.r5.model.Enumerations.*;
039import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
040import org.hl7.fhir.exceptions.FHIRException;
041import org.hl7.fhir.instance.model.api.ICompositeType;
042import ca.uhn.fhir.model.api.annotation.ResourceDef;
043import ca.uhn.fhir.model.api.annotation.SearchParamDefinition;
044import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
045import ca.uhn.fhir.model.api.annotation.Child;
046import ca.uhn.fhir.model.api.annotation.ChildOrder;
047import ca.uhn.fhir.model.api.annotation.Description;
048import ca.uhn.fhir.model.api.annotation.Block;
049
050/**
051 * Describes a comparison of an immunization event against published recommendations to determine if the administration is "valid" in relation to those  recommendations.
052 */
053@ResourceDef(name="ImmunizationEvaluation", profile="http://hl7.org/fhir/StructureDefinition/ImmunizationEvaluation")
054public class ImmunizationEvaluation extends DomainResource {
055
056    public enum ImmunizationEvaluationStatusCodes {
057        /**
058         * All actions that are implied by the administration have occurred.
059         */
060        COMPLETED, 
061        /**
062         * The administration was entered in error and therefore nullified.
063         */
064        ENTEREDINERROR, 
065        /**
066         * added to help the parsers with the generic types
067         */
068        NULL;
069        public static ImmunizationEvaluationStatusCodes fromCode(String codeString) throws FHIRException {
070            if (codeString == null || "".equals(codeString))
071                return null;
072        if ("completed".equals(codeString))
073          return COMPLETED;
074        if ("entered-in-error".equals(codeString))
075          return ENTEREDINERROR;
076        if (Configuration.isAcceptInvalidEnums())
077          return null;
078        else
079          throw new FHIRException("Unknown ImmunizationEvaluationStatusCodes code '"+codeString+"'");
080        }
081        public String toCode() {
082          switch (this) {
083            case COMPLETED: return "completed";
084            case ENTEREDINERROR: return "entered-in-error";
085            default: return "?";
086          }
087        }
088        public String getSystem() {
089          switch (this) {
090            case COMPLETED: return "http://hl7.org/fhir/CodeSystem/medication-admin-status";
091            case ENTEREDINERROR: return "http://hl7.org/fhir/CodeSystem/medication-admin-status";
092            default: return "?";
093          }
094        }
095        public String getDefinition() {
096          switch (this) {
097            case COMPLETED: return "All actions that are implied by the administration have occurred.";
098            case ENTEREDINERROR: return "The administration was entered in error and therefore nullified.";
099            default: return "?";
100          }
101        }
102        public String getDisplay() {
103          switch (this) {
104            case COMPLETED: return "Completed";
105            case ENTEREDINERROR: return "Entered in Error";
106            default: return "?";
107          }
108        }
109    }
110
111  public static class ImmunizationEvaluationStatusCodesEnumFactory implements EnumFactory<ImmunizationEvaluationStatusCodes> {
112    public ImmunizationEvaluationStatusCodes fromCode(String codeString) throws IllegalArgumentException {
113      if (codeString == null || "".equals(codeString))
114            if (codeString == null || "".equals(codeString))
115                return null;
116        if ("completed".equals(codeString))
117          return ImmunizationEvaluationStatusCodes.COMPLETED;
118        if ("entered-in-error".equals(codeString))
119          return ImmunizationEvaluationStatusCodes.ENTEREDINERROR;
120        throw new IllegalArgumentException("Unknown ImmunizationEvaluationStatusCodes code '"+codeString+"'");
121        }
122        public Enumeration<ImmunizationEvaluationStatusCodes> fromType(Base code) throws FHIRException {
123          if (code == null)
124            return null;
125          if (code.isEmpty())
126            return new Enumeration<ImmunizationEvaluationStatusCodes>(this);
127          String codeString = ((PrimitiveType) code).asStringValue();
128          if (codeString == null || "".equals(codeString))
129            return null;
130        if ("completed".equals(codeString))
131          return new Enumeration<ImmunizationEvaluationStatusCodes>(this, ImmunizationEvaluationStatusCodes.COMPLETED);
132        if ("entered-in-error".equals(codeString))
133          return new Enumeration<ImmunizationEvaluationStatusCodes>(this, ImmunizationEvaluationStatusCodes.ENTEREDINERROR);
134        throw new FHIRException("Unknown ImmunizationEvaluationStatusCodes code '"+codeString+"'");
135        }
136    public String toCode(ImmunizationEvaluationStatusCodes code) {
137      if (code == ImmunizationEvaluationStatusCodes.COMPLETED)
138        return "completed";
139      if (code == ImmunizationEvaluationStatusCodes.ENTEREDINERROR)
140        return "entered-in-error";
141      return "?";
142      }
143    public String toSystem(ImmunizationEvaluationStatusCodes code) {
144      return code.getSystem();
145      }
146    }
147
148    /**
149     * A unique identifier assigned to this immunization evaluation record.
150     */
151    @Child(name = "identifier", type = {Identifier.class}, order=0, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
152    @Description(shortDefinition="Business identifier", formalDefinition="A unique identifier assigned to this immunization evaluation record." )
153    protected List<Identifier> identifier;
154
155    /**
156     * Indicates the current status of the evaluation of the vaccination administration event.
157     */
158    @Child(name = "status", type = {CodeType.class}, order=1, min=1, max=1, modifier=true, summary=true)
159    @Description(shortDefinition="completed | entered-in-error", formalDefinition="Indicates the current status of the evaluation of the vaccination administration event." )
160    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/immunization-evaluation-status")
161    protected Enumeration<ImmunizationEvaluationStatusCodes> status;
162
163    /**
164     * The individual for whom the evaluation is being done.
165     */
166    @Child(name = "patient", type = {Patient.class}, order=2, min=1, max=1, modifier=false, summary=true)
167    @Description(shortDefinition="Who this evaluation is for", formalDefinition="The individual for whom the evaluation is being done." )
168    protected Reference patient;
169
170    /**
171     * The date the evaluation of the vaccine administration event was performed.
172     */
173    @Child(name = "date", type = {DateTimeType.class}, order=3, min=0, max=1, modifier=false, summary=false)
174    @Description(shortDefinition="Date evaluation was performed", formalDefinition="The date the evaluation of the vaccine administration event was performed." )
175    protected DateTimeType date;
176
177    /**
178     * Indicates the authority who published the protocol (e.g. ACIP).
179     */
180    @Child(name = "authority", type = {Organization.class}, order=4, min=0, max=1, modifier=false, summary=false)
181    @Description(shortDefinition="Who is responsible for publishing the recommendations", formalDefinition="Indicates the authority who published the protocol (e.g. ACIP)." )
182    protected Reference authority;
183
184    /**
185     * The vaccine preventable disease the dose is being evaluated against.
186     */
187    @Child(name = "targetDisease", type = {CodeableConcept.class}, order=5, min=1, max=1, modifier=false, summary=true)
188    @Description(shortDefinition="Evaluation target disease", formalDefinition="The vaccine preventable disease the dose is being evaluated against." )
189    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/immunization-evaluation-target-disease")
190    protected CodeableConcept targetDisease;
191
192    /**
193     * The vaccine administration event being evaluated.
194     */
195    @Child(name = "immunizationEvent", type = {Immunization.class}, order=6, min=1, max=1, modifier=false, summary=true)
196    @Description(shortDefinition="Immunization being evaluated", formalDefinition="The vaccine administration event being evaluated." )
197    protected Reference immunizationEvent;
198
199    /**
200     * Indicates if the dose is valid or not valid with respect to the published recommendations.
201     */
202    @Child(name = "doseStatus", type = {CodeableConcept.class}, order=7, min=1, max=1, modifier=false, summary=true)
203    @Description(shortDefinition="Status of the dose relative to published recommendations", formalDefinition="Indicates if the dose is valid or not valid with respect to the published recommendations." )
204    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/immunization-evaluation-dose-status")
205    protected CodeableConcept doseStatus;
206
207    /**
208     * Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.
209     */
210    @Child(name = "doseStatusReason", type = {CodeableConcept.class}, order=8, min=0, max=Child.MAX_UNLIMITED, modifier=false, summary=false)
211    @Description(shortDefinition="Reason for the dose status", formalDefinition="Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations." )
212    @ca.uhn.fhir.model.api.annotation.Binding(valueSet="http://hl7.org/fhir/ValueSet/immunization-evaluation-dose-status-reason")
213    protected List<CodeableConcept> doseStatusReason;
214
215    /**
216     * Additional information about the evaluation.
217     */
218    @Child(name = "description", type = {StringType.class}, order=9, min=0, max=1, modifier=false, summary=false)
219    @Description(shortDefinition="Evaluation notes", formalDefinition="Additional information about the evaluation." )
220    protected StringType description;
221
222    /**
223     * One possible path to achieve presumed immunity against a disease - within the context of an authority.
224     */
225    @Child(name = "series", type = {StringType.class}, order=10, min=0, max=1, modifier=false, summary=false)
226    @Description(shortDefinition="Name of vaccine series", formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority." )
227    protected StringType series;
228
229    /**
230     * Nominal position in a series as determined by the outcome of the evaluation process.
231     */
232    @Child(name = "doseNumber", type = {StringType.class}, order=11, min=0, max=1, modifier=false, summary=false)
233    @Description(shortDefinition="Dose number within series", formalDefinition="Nominal position in a series as determined by the outcome of the evaluation process." )
234    protected StringType doseNumber;
235
236    /**
237     * The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.
238     */
239    @Child(name = "seriesDoses", type = {StringType.class}, order=12, min=0, max=1, modifier=false, summary=false)
240    @Description(shortDefinition="Recommended number of doses for immunity", formalDefinition="The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process." )
241    protected StringType seriesDoses;
242
243    private static final long serialVersionUID = -434973409L;
244
245  /**
246   * Constructor
247   */
248    public ImmunizationEvaluation() {
249      super();
250    }
251
252  /**
253   * Constructor
254   */
255    public ImmunizationEvaluation(ImmunizationEvaluationStatusCodes status, Reference patient, CodeableConcept targetDisease, Reference immunizationEvent, CodeableConcept doseStatus) {
256      super();
257      this.setStatus(status);
258      this.setPatient(patient);
259      this.setTargetDisease(targetDisease);
260      this.setImmunizationEvent(immunizationEvent);
261      this.setDoseStatus(doseStatus);
262    }
263
264    /**
265     * @return {@link #identifier} (A unique identifier assigned to this immunization evaluation record.)
266     */
267    public List<Identifier> getIdentifier() { 
268      if (this.identifier == null)
269        this.identifier = new ArrayList<Identifier>();
270      return this.identifier;
271    }
272
273    /**
274     * @return Returns a reference to <code>this</code> for easy method chaining
275     */
276    public ImmunizationEvaluation setIdentifier(List<Identifier> theIdentifier) { 
277      this.identifier = theIdentifier;
278      return this;
279    }
280
281    public boolean hasIdentifier() { 
282      if (this.identifier == null)
283        return false;
284      for (Identifier item : this.identifier)
285        if (!item.isEmpty())
286          return true;
287      return false;
288    }
289
290    public Identifier addIdentifier() { //3
291      Identifier t = new Identifier();
292      if (this.identifier == null)
293        this.identifier = new ArrayList<Identifier>();
294      this.identifier.add(t);
295      return t;
296    }
297
298    public ImmunizationEvaluation addIdentifier(Identifier t) { //3
299      if (t == null)
300        return this;
301      if (this.identifier == null)
302        this.identifier = new ArrayList<Identifier>();
303      this.identifier.add(t);
304      return this;
305    }
306
307    /**
308     * @return The first repetition of repeating field {@link #identifier}, creating it if it does not already exist {3}
309     */
310    public Identifier getIdentifierFirstRep() { 
311      if (getIdentifier().isEmpty()) {
312        addIdentifier();
313      }
314      return getIdentifier().get(0);
315    }
316
317    /**
318     * @return {@link #status} (Indicates the current status of the evaluation of the vaccination administration event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
319     */
320    public Enumeration<ImmunizationEvaluationStatusCodes> getStatusElement() { 
321      if (this.status == null)
322        if (Configuration.errorOnAutoCreate())
323          throw new Error("Attempt to auto-create ImmunizationEvaluation.status");
324        else if (Configuration.doAutoCreate())
325          this.status = new Enumeration<ImmunizationEvaluationStatusCodes>(new ImmunizationEvaluationStatusCodesEnumFactory()); // bb
326      return this.status;
327    }
328
329    public boolean hasStatusElement() { 
330      return this.status != null && !this.status.isEmpty();
331    }
332
333    public boolean hasStatus() { 
334      return this.status != null && !this.status.isEmpty();
335    }
336
337    /**
338     * @param value {@link #status} (Indicates the current status of the evaluation of the vaccination administration event.). This is the underlying object with id, value and extensions. The accessor "getStatus" gives direct access to the value
339     */
340    public ImmunizationEvaluation setStatusElement(Enumeration<ImmunizationEvaluationStatusCodes> value) { 
341      this.status = value;
342      return this;
343    }
344
345    /**
346     * @return Indicates the current status of the evaluation of the vaccination administration event.
347     */
348    public ImmunizationEvaluationStatusCodes getStatus() { 
349      return this.status == null ? null : this.status.getValue();
350    }
351
352    /**
353     * @param value Indicates the current status of the evaluation of the vaccination administration event.
354     */
355    public ImmunizationEvaluation setStatus(ImmunizationEvaluationStatusCodes value) { 
356        if (this.status == null)
357          this.status = new Enumeration<ImmunizationEvaluationStatusCodes>(new ImmunizationEvaluationStatusCodesEnumFactory());
358        this.status.setValue(value);
359      return this;
360    }
361
362    /**
363     * @return {@link #patient} (The individual for whom the evaluation is being done.)
364     */
365    public Reference getPatient() { 
366      if (this.patient == null)
367        if (Configuration.errorOnAutoCreate())
368          throw new Error("Attempt to auto-create ImmunizationEvaluation.patient");
369        else if (Configuration.doAutoCreate())
370          this.patient = new Reference(); // cc
371      return this.patient;
372    }
373
374    public boolean hasPatient() { 
375      return this.patient != null && !this.patient.isEmpty();
376    }
377
378    /**
379     * @param value {@link #patient} (The individual for whom the evaluation is being done.)
380     */
381    public ImmunizationEvaluation setPatient(Reference value) { 
382      this.patient = value;
383      return this;
384    }
385
386    /**
387     * @return {@link #date} (The date the evaluation of the vaccine administration event was performed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
388     */
389    public DateTimeType getDateElement() { 
390      if (this.date == null)
391        if (Configuration.errorOnAutoCreate())
392          throw new Error("Attempt to auto-create ImmunizationEvaluation.date");
393        else if (Configuration.doAutoCreate())
394          this.date = new DateTimeType(); // bb
395      return this.date;
396    }
397
398    public boolean hasDateElement() { 
399      return this.date != null && !this.date.isEmpty();
400    }
401
402    public boolean hasDate() { 
403      return this.date != null && !this.date.isEmpty();
404    }
405
406    /**
407     * @param value {@link #date} (The date the evaluation of the vaccine administration event was performed.). This is the underlying object with id, value and extensions. The accessor "getDate" gives direct access to the value
408     */
409    public ImmunizationEvaluation setDateElement(DateTimeType value) { 
410      this.date = value;
411      return this;
412    }
413
414    /**
415     * @return The date the evaluation of the vaccine administration event was performed.
416     */
417    public Date getDate() { 
418      return this.date == null ? null : this.date.getValue();
419    }
420
421    /**
422     * @param value The date the evaluation of the vaccine administration event was performed.
423     */
424    public ImmunizationEvaluation setDate(Date value) { 
425      if (value == null)
426        this.date = null;
427      else {
428        if (this.date == null)
429          this.date = new DateTimeType();
430        this.date.setValue(value);
431      }
432      return this;
433    }
434
435    /**
436     * @return {@link #authority} (Indicates the authority who published the protocol (e.g. ACIP).)
437     */
438    public Reference getAuthority() { 
439      if (this.authority == null)
440        if (Configuration.errorOnAutoCreate())
441          throw new Error("Attempt to auto-create ImmunizationEvaluation.authority");
442        else if (Configuration.doAutoCreate())
443          this.authority = new Reference(); // cc
444      return this.authority;
445    }
446
447    public boolean hasAuthority() { 
448      return this.authority != null && !this.authority.isEmpty();
449    }
450
451    /**
452     * @param value {@link #authority} (Indicates the authority who published the protocol (e.g. ACIP).)
453     */
454    public ImmunizationEvaluation setAuthority(Reference value) { 
455      this.authority = value;
456      return this;
457    }
458
459    /**
460     * @return {@link #targetDisease} (The vaccine preventable disease the dose is being evaluated against.)
461     */
462    public CodeableConcept getTargetDisease() { 
463      if (this.targetDisease == null)
464        if (Configuration.errorOnAutoCreate())
465          throw new Error("Attempt to auto-create ImmunizationEvaluation.targetDisease");
466        else if (Configuration.doAutoCreate())
467          this.targetDisease = new CodeableConcept(); // cc
468      return this.targetDisease;
469    }
470
471    public boolean hasTargetDisease() { 
472      return this.targetDisease != null && !this.targetDisease.isEmpty();
473    }
474
475    /**
476     * @param value {@link #targetDisease} (The vaccine preventable disease the dose is being evaluated against.)
477     */
478    public ImmunizationEvaluation setTargetDisease(CodeableConcept value) { 
479      this.targetDisease = value;
480      return this;
481    }
482
483    /**
484     * @return {@link #immunizationEvent} (The vaccine administration event being evaluated.)
485     */
486    public Reference getImmunizationEvent() { 
487      if (this.immunizationEvent == null)
488        if (Configuration.errorOnAutoCreate())
489          throw new Error("Attempt to auto-create ImmunizationEvaluation.immunizationEvent");
490        else if (Configuration.doAutoCreate())
491          this.immunizationEvent = new Reference(); // cc
492      return this.immunizationEvent;
493    }
494
495    public boolean hasImmunizationEvent() { 
496      return this.immunizationEvent != null && !this.immunizationEvent.isEmpty();
497    }
498
499    /**
500     * @param value {@link #immunizationEvent} (The vaccine administration event being evaluated.)
501     */
502    public ImmunizationEvaluation setImmunizationEvent(Reference value) { 
503      this.immunizationEvent = value;
504      return this;
505    }
506
507    /**
508     * @return {@link #doseStatus} (Indicates if the dose is valid or not valid with respect to the published recommendations.)
509     */
510    public CodeableConcept getDoseStatus() { 
511      if (this.doseStatus == null)
512        if (Configuration.errorOnAutoCreate())
513          throw new Error("Attempt to auto-create ImmunizationEvaluation.doseStatus");
514        else if (Configuration.doAutoCreate())
515          this.doseStatus = new CodeableConcept(); // cc
516      return this.doseStatus;
517    }
518
519    public boolean hasDoseStatus() { 
520      return this.doseStatus != null && !this.doseStatus.isEmpty();
521    }
522
523    /**
524     * @param value {@link #doseStatus} (Indicates if the dose is valid or not valid with respect to the published recommendations.)
525     */
526    public ImmunizationEvaluation setDoseStatus(CodeableConcept value) { 
527      this.doseStatus = value;
528      return this;
529    }
530
531    /**
532     * @return {@link #doseStatusReason} (Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.)
533     */
534    public List<CodeableConcept> getDoseStatusReason() { 
535      if (this.doseStatusReason == null)
536        this.doseStatusReason = new ArrayList<CodeableConcept>();
537      return this.doseStatusReason;
538    }
539
540    /**
541     * @return Returns a reference to <code>this</code> for easy method chaining
542     */
543    public ImmunizationEvaluation setDoseStatusReason(List<CodeableConcept> theDoseStatusReason) { 
544      this.doseStatusReason = theDoseStatusReason;
545      return this;
546    }
547
548    public boolean hasDoseStatusReason() { 
549      if (this.doseStatusReason == null)
550        return false;
551      for (CodeableConcept item : this.doseStatusReason)
552        if (!item.isEmpty())
553          return true;
554      return false;
555    }
556
557    public CodeableConcept addDoseStatusReason() { //3
558      CodeableConcept t = new CodeableConcept();
559      if (this.doseStatusReason == null)
560        this.doseStatusReason = new ArrayList<CodeableConcept>();
561      this.doseStatusReason.add(t);
562      return t;
563    }
564
565    public ImmunizationEvaluation addDoseStatusReason(CodeableConcept t) { //3
566      if (t == null)
567        return this;
568      if (this.doseStatusReason == null)
569        this.doseStatusReason = new ArrayList<CodeableConcept>();
570      this.doseStatusReason.add(t);
571      return this;
572    }
573
574    /**
575     * @return The first repetition of repeating field {@link #doseStatusReason}, creating it if it does not already exist {3}
576     */
577    public CodeableConcept getDoseStatusReasonFirstRep() { 
578      if (getDoseStatusReason().isEmpty()) {
579        addDoseStatusReason();
580      }
581      return getDoseStatusReason().get(0);
582    }
583
584    /**
585     * @return {@link #description} (Additional information about the evaluation.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
586     */
587    public StringType getDescriptionElement() { 
588      if (this.description == null)
589        if (Configuration.errorOnAutoCreate())
590          throw new Error("Attempt to auto-create ImmunizationEvaluation.description");
591        else if (Configuration.doAutoCreate())
592          this.description = new StringType(); // bb
593      return this.description;
594    }
595
596    public boolean hasDescriptionElement() { 
597      return this.description != null && !this.description.isEmpty();
598    }
599
600    public boolean hasDescription() { 
601      return this.description != null && !this.description.isEmpty();
602    }
603
604    /**
605     * @param value {@link #description} (Additional information about the evaluation.). This is the underlying object with id, value and extensions. The accessor "getDescription" gives direct access to the value
606     */
607    public ImmunizationEvaluation setDescriptionElement(StringType value) { 
608      this.description = value;
609      return this;
610    }
611
612    /**
613     * @return Additional information about the evaluation.
614     */
615    public String getDescription() { 
616      return this.description == null ? null : this.description.getValue();
617    }
618
619    /**
620     * @param value Additional information about the evaluation.
621     */
622    public ImmunizationEvaluation setDescription(String value) { 
623      if (Utilities.noString(value))
624        this.description = null;
625      else {
626        if (this.description == null)
627          this.description = new StringType();
628        this.description.setValue(value);
629      }
630      return this;
631    }
632
633    /**
634     * @return {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value
635     */
636    public StringType getSeriesElement() { 
637      if (this.series == null)
638        if (Configuration.errorOnAutoCreate())
639          throw new Error("Attempt to auto-create ImmunizationEvaluation.series");
640        else if (Configuration.doAutoCreate())
641          this.series = new StringType(); // bb
642      return this.series;
643    }
644
645    public boolean hasSeriesElement() { 
646      return this.series != null && !this.series.isEmpty();
647    }
648
649    public boolean hasSeries() { 
650      return this.series != null && !this.series.isEmpty();
651    }
652
653    /**
654     * @param value {@link #series} (One possible path to achieve presumed immunity against a disease - within the context of an authority.). This is the underlying object with id, value and extensions. The accessor "getSeries" gives direct access to the value
655     */
656    public ImmunizationEvaluation setSeriesElement(StringType value) { 
657      this.series = value;
658      return this;
659    }
660
661    /**
662     * @return One possible path to achieve presumed immunity against a disease - within the context of an authority.
663     */
664    public String getSeries() { 
665      return this.series == null ? null : this.series.getValue();
666    }
667
668    /**
669     * @param value One possible path to achieve presumed immunity against a disease - within the context of an authority.
670     */
671    public ImmunizationEvaluation setSeries(String value) { 
672      if (Utilities.noString(value))
673        this.series = null;
674      else {
675        if (this.series == null)
676          this.series = new StringType();
677        this.series.setValue(value);
678      }
679      return this;
680    }
681
682    /**
683     * @return {@link #doseNumber} (Nominal position in a series as determined by the outcome of the evaluation process.). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value
684     */
685    public StringType getDoseNumberElement() { 
686      if (this.doseNumber == null)
687        if (Configuration.errorOnAutoCreate())
688          throw new Error("Attempt to auto-create ImmunizationEvaluation.doseNumber");
689        else if (Configuration.doAutoCreate())
690          this.doseNumber = new StringType(); // bb
691      return this.doseNumber;
692    }
693
694    public boolean hasDoseNumberElement() { 
695      return this.doseNumber != null && !this.doseNumber.isEmpty();
696    }
697
698    public boolean hasDoseNumber() { 
699      return this.doseNumber != null && !this.doseNumber.isEmpty();
700    }
701
702    /**
703     * @param value {@link #doseNumber} (Nominal position in a series as determined by the outcome of the evaluation process.). This is the underlying object with id, value and extensions. The accessor "getDoseNumber" gives direct access to the value
704     */
705    public ImmunizationEvaluation setDoseNumberElement(StringType value) { 
706      this.doseNumber = value;
707      return this;
708    }
709
710    /**
711     * @return Nominal position in a series as determined by the outcome of the evaluation process.
712     */
713    public String getDoseNumber() { 
714      return this.doseNumber == null ? null : this.doseNumber.getValue();
715    }
716
717    /**
718     * @param value Nominal position in a series as determined by the outcome of the evaluation process.
719     */
720    public ImmunizationEvaluation setDoseNumber(String value) { 
721      if (Utilities.noString(value))
722        this.doseNumber = null;
723      else {
724        if (this.doseNumber == null)
725          this.doseNumber = new StringType();
726        this.doseNumber.setValue(value);
727      }
728      return this;
729    }
730
731    /**
732     * @return {@link #seriesDoses} (The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value
733     */
734    public StringType getSeriesDosesElement() { 
735      if (this.seriesDoses == null)
736        if (Configuration.errorOnAutoCreate())
737          throw new Error("Attempt to auto-create ImmunizationEvaluation.seriesDoses");
738        else if (Configuration.doAutoCreate())
739          this.seriesDoses = new StringType(); // bb
740      return this.seriesDoses;
741    }
742
743    public boolean hasSeriesDosesElement() { 
744      return this.seriesDoses != null && !this.seriesDoses.isEmpty();
745    }
746
747    public boolean hasSeriesDoses() { 
748      return this.seriesDoses != null && !this.seriesDoses.isEmpty();
749    }
750
751    /**
752     * @param value {@link #seriesDoses} (The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.). This is the underlying object with id, value and extensions. The accessor "getSeriesDoses" gives direct access to the value
753     */
754    public ImmunizationEvaluation setSeriesDosesElement(StringType value) { 
755      this.seriesDoses = value;
756      return this;
757    }
758
759    /**
760     * @return The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.
761     */
762    public String getSeriesDoses() { 
763      return this.seriesDoses == null ? null : this.seriesDoses.getValue();
764    }
765
766    /**
767     * @param value The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.
768     */
769    public ImmunizationEvaluation setSeriesDoses(String value) { 
770      if (Utilities.noString(value))
771        this.seriesDoses = null;
772      else {
773        if (this.seriesDoses == null)
774          this.seriesDoses = new StringType();
775        this.seriesDoses.setValue(value);
776      }
777      return this;
778    }
779
780      protected void listChildren(List<Property> children) {
781        super.listChildren(children);
782        children.add(new Property("identifier", "Identifier", "A unique identifier assigned to this immunization evaluation record.", 0, java.lang.Integer.MAX_VALUE, identifier));
783        children.add(new Property("status", "code", "Indicates the current status of the evaluation of the vaccination administration event.", 0, 1, status));
784        children.add(new Property("patient", "Reference(Patient)", "The individual for whom the evaluation is being done.", 0, 1, patient));
785        children.add(new Property("date", "dateTime", "The date the evaluation of the vaccine administration event was performed.", 0, 1, date));
786        children.add(new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol (e.g. ACIP).", 0, 1, authority));
787        children.add(new Property("targetDisease", "CodeableConcept", "The vaccine preventable disease the dose is being evaluated against.", 0, 1, targetDisease));
788        children.add(new Property("immunizationEvent", "Reference(Immunization)", "The vaccine administration event being evaluated.", 0, 1, immunizationEvent));
789        children.add(new Property("doseStatus", "CodeableConcept", "Indicates if the dose is valid or not valid with respect to the published recommendations.", 0, 1, doseStatus));
790        children.add(new Property("doseStatusReason", "CodeableConcept", "Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.", 0, java.lang.Integer.MAX_VALUE, doseStatusReason));
791        children.add(new Property("description", "string", "Additional information about the evaluation.", 0, 1, description));
792        children.add(new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, 1, series));
793        children.add(new Property("doseNumber", "string", "Nominal position in a series as determined by the outcome of the evaluation process.", 0, 1, doseNumber));
794        children.add(new Property("seriesDoses", "string", "The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.", 0, 1, seriesDoses));
795      }
796
797      @Override
798      public Property getNamedProperty(int _hash, String _name, boolean _checkValid) throws FHIRException {
799        switch (_hash) {
800        case -1618432855: /*identifier*/  return new Property("identifier", "Identifier", "A unique identifier assigned to this immunization evaluation record.", 0, java.lang.Integer.MAX_VALUE, identifier);
801        case -892481550: /*status*/  return new Property("status", "code", "Indicates the current status of the evaluation of the vaccination administration event.", 0, 1, status);
802        case -791418107: /*patient*/  return new Property("patient", "Reference(Patient)", "The individual for whom the evaluation is being done.", 0, 1, patient);
803        case 3076014: /*date*/  return new Property("date", "dateTime", "The date the evaluation of the vaccine administration event was performed.", 0, 1, date);
804        case 1475610435: /*authority*/  return new Property("authority", "Reference(Organization)", "Indicates the authority who published the protocol (e.g. ACIP).", 0, 1, authority);
805        case -319593813: /*targetDisease*/  return new Property("targetDisease", "CodeableConcept", "The vaccine preventable disease the dose is being evaluated against.", 0, 1, targetDisease);
806        case 1081446840: /*immunizationEvent*/  return new Property("immunizationEvent", "Reference(Immunization)", "The vaccine administration event being evaluated.", 0, 1, immunizationEvent);
807        case -745826705: /*doseStatus*/  return new Property("doseStatus", "CodeableConcept", "Indicates if the dose is valid or not valid with respect to the published recommendations.", 0, 1, doseStatus);
808        case 662783379: /*doseStatusReason*/  return new Property("doseStatusReason", "CodeableConcept", "Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations.", 0, java.lang.Integer.MAX_VALUE, doseStatusReason);
809        case -1724546052: /*description*/  return new Property("description", "string", "Additional information about the evaluation.", 0, 1, description);
810        case -905838985: /*series*/  return new Property("series", "string", "One possible path to achieve presumed immunity against a disease - within the context of an authority.", 0, 1, series);
811        case -887709242: /*doseNumber*/  return new Property("doseNumber", "string", "Nominal position in a series as determined by the outcome of the evaluation process.", 0, 1, doseNumber);
812        case -1936727105: /*seriesDoses*/  return new Property("seriesDoses", "string", "The recommended number of doses to achieve immunity as determined by the outcome of the evaluation process.", 0, 1, seriesDoses);
813        default: return super.getNamedProperty(_hash, _name, _checkValid);
814        }
815
816      }
817
818      @Override
819      public Base[] getProperty(int hash, String name, boolean checkValid) throws FHIRException {
820        switch (hash) {
821        case -1618432855: /*identifier*/ return this.identifier == null ? new Base[0] : this.identifier.toArray(new Base[this.identifier.size()]); // Identifier
822        case -892481550: /*status*/ return this.status == null ? new Base[0] : new Base[] {this.status}; // Enumeration<ImmunizationEvaluationStatusCodes>
823        case -791418107: /*patient*/ return this.patient == null ? new Base[0] : new Base[] {this.patient}; // Reference
824        case 3076014: /*date*/ return this.date == null ? new Base[0] : new Base[] {this.date}; // DateTimeType
825        case 1475610435: /*authority*/ return this.authority == null ? new Base[0] : new Base[] {this.authority}; // Reference
826        case -319593813: /*targetDisease*/ return this.targetDisease == null ? new Base[0] : new Base[] {this.targetDisease}; // CodeableConcept
827        case 1081446840: /*immunizationEvent*/ return this.immunizationEvent == null ? new Base[0] : new Base[] {this.immunizationEvent}; // Reference
828        case -745826705: /*doseStatus*/ return this.doseStatus == null ? new Base[0] : new Base[] {this.doseStatus}; // CodeableConcept
829        case 662783379: /*doseStatusReason*/ return this.doseStatusReason == null ? new Base[0] : this.doseStatusReason.toArray(new Base[this.doseStatusReason.size()]); // CodeableConcept
830        case -1724546052: /*description*/ return this.description == null ? new Base[0] : new Base[] {this.description}; // StringType
831        case -905838985: /*series*/ return this.series == null ? new Base[0] : new Base[] {this.series}; // StringType
832        case -887709242: /*doseNumber*/ return this.doseNumber == null ? new Base[0] : new Base[] {this.doseNumber}; // StringType
833        case -1936727105: /*seriesDoses*/ return this.seriesDoses == null ? new Base[0] : new Base[] {this.seriesDoses}; // StringType
834        default: return super.getProperty(hash, name, checkValid);
835        }
836
837      }
838
839      @Override
840      public Base setProperty(int hash, String name, Base value) throws FHIRException {
841        switch (hash) {
842        case -1618432855: // identifier
843          this.getIdentifier().add(TypeConvertor.castToIdentifier(value)); // Identifier
844          return value;
845        case -892481550: // status
846          value = new ImmunizationEvaluationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value));
847          this.status = (Enumeration) value; // Enumeration<ImmunizationEvaluationStatusCodes>
848          return value;
849        case -791418107: // patient
850          this.patient = TypeConvertor.castToReference(value); // Reference
851          return value;
852        case 3076014: // date
853          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
854          return value;
855        case 1475610435: // authority
856          this.authority = TypeConvertor.castToReference(value); // Reference
857          return value;
858        case -319593813: // targetDisease
859          this.targetDisease = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
860          return value;
861        case 1081446840: // immunizationEvent
862          this.immunizationEvent = TypeConvertor.castToReference(value); // Reference
863          return value;
864        case -745826705: // doseStatus
865          this.doseStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
866          return value;
867        case 662783379: // doseStatusReason
868          this.getDoseStatusReason().add(TypeConvertor.castToCodeableConcept(value)); // CodeableConcept
869          return value;
870        case -1724546052: // description
871          this.description = TypeConvertor.castToString(value); // StringType
872          return value;
873        case -905838985: // series
874          this.series = TypeConvertor.castToString(value); // StringType
875          return value;
876        case -887709242: // doseNumber
877          this.doseNumber = TypeConvertor.castToString(value); // StringType
878          return value;
879        case -1936727105: // seriesDoses
880          this.seriesDoses = TypeConvertor.castToString(value); // StringType
881          return value;
882        default: return super.setProperty(hash, name, value);
883        }
884
885      }
886
887      @Override
888      public Base setProperty(String name, Base value) throws FHIRException {
889        if (name.equals("identifier")) {
890          this.getIdentifier().add(TypeConvertor.castToIdentifier(value));
891        } else if (name.equals("status")) {
892          value = new ImmunizationEvaluationStatusCodesEnumFactory().fromType(TypeConvertor.castToCode(value));
893          this.status = (Enumeration) value; // Enumeration<ImmunizationEvaluationStatusCodes>
894        } else if (name.equals("patient")) {
895          this.patient = TypeConvertor.castToReference(value); // Reference
896        } else if (name.equals("date")) {
897          this.date = TypeConvertor.castToDateTime(value); // DateTimeType
898        } else if (name.equals("authority")) {
899          this.authority = TypeConvertor.castToReference(value); // Reference
900        } else if (name.equals("targetDisease")) {
901          this.targetDisease = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
902        } else if (name.equals("immunizationEvent")) {
903          this.immunizationEvent = TypeConvertor.castToReference(value); // Reference
904        } else if (name.equals("doseStatus")) {
905          this.doseStatus = TypeConvertor.castToCodeableConcept(value); // CodeableConcept
906        } else if (name.equals("doseStatusReason")) {
907          this.getDoseStatusReason().add(TypeConvertor.castToCodeableConcept(value));
908        } else if (name.equals("description")) {
909          this.description = TypeConvertor.castToString(value); // StringType
910        } else if (name.equals("series")) {
911          this.series = TypeConvertor.castToString(value); // StringType
912        } else if (name.equals("doseNumber")) {
913          this.doseNumber = TypeConvertor.castToString(value); // StringType
914        } else if (name.equals("seriesDoses")) {
915          this.seriesDoses = TypeConvertor.castToString(value); // StringType
916        } else
917          return super.setProperty(name, value);
918        return value;
919      }
920
921      @Override
922      public Base makeProperty(int hash, String name) throws FHIRException {
923        switch (hash) {
924        case -1618432855:  return addIdentifier(); 
925        case -892481550:  return getStatusElement();
926        case -791418107:  return getPatient();
927        case 3076014:  return getDateElement();
928        case 1475610435:  return getAuthority();
929        case -319593813:  return getTargetDisease();
930        case 1081446840:  return getImmunizationEvent();
931        case -745826705:  return getDoseStatus();
932        case 662783379:  return addDoseStatusReason(); 
933        case -1724546052:  return getDescriptionElement();
934        case -905838985:  return getSeriesElement();
935        case -887709242:  return getDoseNumberElement();
936        case -1936727105:  return getSeriesDosesElement();
937        default: return super.makeProperty(hash, name);
938        }
939
940      }
941
942      @Override
943      public String[] getTypesForProperty(int hash, String name) throws FHIRException {
944        switch (hash) {
945        case -1618432855: /*identifier*/ return new String[] {"Identifier"};
946        case -892481550: /*status*/ return new String[] {"code"};
947        case -791418107: /*patient*/ return new String[] {"Reference"};
948        case 3076014: /*date*/ return new String[] {"dateTime"};
949        case 1475610435: /*authority*/ return new String[] {"Reference"};
950        case -319593813: /*targetDisease*/ return new String[] {"CodeableConcept"};
951        case 1081446840: /*immunizationEvent*/ return new String[] {"Reference"};
952        case -745826705: /*doseStatus*/ return new String[] {"CodeableConcept"};
953        case 662783379: /*doseStatusReason*/ return new String[] {"CodeableConcept"};
954        case -1724546052: /*description*/ return new String[] {"string"};
955        case -905838985: /*series*/ return new String[] {"string"};
956        case -887709242: /*doseNumber*/ return new String[] {"string"};
957        case -1936727105: /*seriesDoses*/ return new String[] {"string"};
958        default: return super.getTypesForProperty(hash, name);
959        }
960
961      }
962
963      @Override
964      public Base addChild(String name) throws FHIRException {
965        if (name.equals("identifier")) {
966          return addIdentifier();
967        }
968        else if (name.equals("status")) {
969          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.status");
970        }
971        else if (name.equals("patient")) {
972          this.patient = new Reference();
973          return this.patient;
974        }
975        else if (name.equals("date")) {
976          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.date");
977        }
978        else if (name.equals("authority")) {
979          this.authority = new Reference();
980          return this.authority;
981        }
982        else if (name.equals("targetDisease")) {
983          this.targetDisease = new CodeableConcept();
984          return this.targetDisease;
985        }
986        else if (name.equals("immunizationEvent")) {
987          this.immunizationEvent = new Reference();
988          return this.immunizationEvent;
989        }
990        else if (name.equals("doseStatus")) {
991          this.doseStatus = new CodeableConcept();
992          return this.doseStatus;
993        }
994        else if (name.equals("doseStatusReason")) {
995          return addDoseStatusReason();
996        }
997        else if (name.equals("description")) {
998          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.description");
999        }
1000        else if (name.equals("series")) {
1001          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.series");
1002        }
1003        else if (name.equals("doseNumber")) {
1004          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.doseNumber");
1005        }
1006        else if (name.equals("seriesDoses")) {
1007          throw new FHIRException("Cannot call addChild on a primitive type ImmunizationEvaluation.seriesDoses");
1008        }
1009        else
1010          return super.addChild(name);
1011      }
1012
1013  public String fhirType() {
1014    return "ImmunizationEvaluation";
1015
1016  }
1017
1018      public ImmunizationEvaluation copy() {
1019        ImmunizationEvaluation dst = new ImmunizationEvaluation();
1020        copyValues(dst);
1021        return dst;
1022      }
1023
1024      public void copyValues(ImmunizationEvaluation dst) {
1025        super.copyValues(dst);
1026        if (identifier != null) {
1027          dst.identifier = new ArrayList<Identifier>();
1028          for (Identifier i : identifier)
1029            dst.identifier.add(i.copy());
1030        };
1031        dst.status = status == null ? null : status.copy();
1032        dst.patient = patient == null ? null : patient.copy();
1033        dst.date = date == null ? null : date.copy();
1034        dst.authority = authority == null ? null : authority.copy();
1035        dst.targetDisease = targetDisease == null ? null : targetDisease.copy();
1036        dst.immunizationEvent = immunizationEvent == null ? null : immunizationEvent.copy();
1037        dst.doseStatus = doseStatus == null ? null : doseStatus.copy();
1038        if (doseStatusReason != null) {
1039          dst.doseStatusReason = new ArrayList<CodeableConcept>();
1040          for (CodeableConcept i : doseStatusReason)
1041            dst.doseStatusReason.add(i.copy());
1042        };
1043        dst.description = description == null ? null : description.copy();
1044        dst.series = series == null ? null : series.copy();
1045        dst.doseNumber = doseNumber == null ? null : doseNumber.copy();
1046        dst.seriesDoses = seriesDoses == null ? null : seriesDoses.copy();
1047      }
1048
1049      protected ImmunizationEvaluation typedCopy() {
1050        return copy();
1051      }
1052
1053      @Override
1054      public boolean equalsDeep(Base other_) {
1055        if (!super.equalsDeep(other_))
1056          return false;
1057        if (!(other_ instanceof ImmunizationEvaluation))
1058          return false;
1059        ImmunizationEvaluation o = (ImmunizationEvaluation) other_;
1060        return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(patient, o.patient, true)
1061           && compareDeep(date, o.date, true) && compareDeep(authority, o.authority, true) && compareDeep(targetDisease, o.targetDisease, true)
1062           && compareDeep(immunizationEvent, o.immunizationEvent, true) && compareDeep(doseStatus, o.doseStatus, true)
1063           && compareDeep(doseStatusReason, o.doseStatusReason, true) && compareDeep(description, o.description, true)
1064           && compareDeep(series, o.series, true) && compareDeep(doseNumber, o.doseNumber, true) && compareDeep(seriesDoses, o.seriesDoses, true)
1065          ;
1066      }
1067
1068      @Override
1069      public boolean equalsShallow(Base other_) {
1070        if (!super.equalsShallow(other_))
1071          return false;
1072        if (!(other_ instanceof ImmunizationEvaluation))
1073          return false;
1074        ImmunizationEvaluation o = (ImmunizationEvaluation) other_;
1075        return compareValues(status, o.status, true) && compareValues(date, o.date, true) && compareValues(description, o.description, true)
1076           && compareValues(series, o.series, true) && compareValues(doseNumber, o.doseNumber, true) && compareValues(seriesDoses, o.seriesDoses, true)
1077          ;
1078      }
1079
1080      public boolean isEmpty() {
1081        return super.isEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(identifier, status, patient
1082          , date, authority, targetDisease, immunizationEvent, doseStatus, doseStatusReason
1083          , description, series, doseNumber, seriesDoses);
1084      }
1085
1086  @Override
1087  public ResourceType getResourceType() {
1088    return ResourceType.ImmunizationEvaluation;
1089   }
1090
1091 /**
1092   * Search parameter: <b>date</b>
1093   * <p>
1094   * Description: <b>Date the evaluation was generated</b><br>
1095   * Type: <b>date</b><br>
1096   * Path: <b>ImmunizationEvaluation.date</b><br>
1097   * </p>
1098   */
1099  @SearchParamDefinition(name="date", path="ImmunizationEvaluation.date", description="Date the evaluation was generated", type="date" )
1100  public static final String SP_DATE = "date";
1101 /**
1102   * <b>Fluent Client</b> search parameter constant for <b>date</b>
1103   * <p>
1104   * Description: <b>Date the evaluation was generated</b><br>
1105   * Type: <b>date</b><br>
1106   * Path: <b>ImmunizationEvaluation.date</b><br>
1107   * </p>
1108   */
1109  public static final ca.uhn.fhir.rest.gclient.DateClientParam DATE = new ca.uhn.fhir.rest.gclient.DateClientParam(SP_DATE);
1110
1111 /**
1112   * Search parameter: <b>dose-status</b>
1113   * <p>
1114   * Description: <b>The status of the dose relative to published recommendations</b><br>
1115   * Type: <b>token</b><br>
1116   * Path: <b>ImmunizationEvaluation.doseStatus</b><br>
1117   * </p>
1118   */
1119  @SearchParamDefinition(name="dose-status", path="ImmunizationEvaluation.doseStatus", description="The status of the dose relative to published recommendations", type="token" )
1120  public static final String SP_DOSE_STATUS = "dose-status";
1121 /**
1122   * <b>Fluent Client</b> search parameter constant for <b>dose-status</b>
1123   * <p>
1124   * Description: <b>The status of the dose relative to published recommendations</b><br>
1125   * Type: <b>token</b><br>
1126   * Path: <b>ImmunizationEvaluation.doseStatus</b><br>
1127   * </p>
1128   */
1129  public static final ca.uhn.fhir.rest.gclient.TokenClientParam DOSE_STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_DOSE_STATUS);
1130
1131 /**
1132   * Search parameter: <b>identifier</b>
1133   * <p>
1134   * Description: <b>ID of the evaluation</b><br>
1135   * Type: <b>token</b><br>
1136   * Path: <b>ImmunizationEvaluation.identifier</b><br>
1137   * </p>
1138   */
1139  @SearchParamDefinition(name="identifier", path="ImmunizationEvaluation.identifier", description="ID of the evaluation", type="token" )
1140  public static final String SP_IDENTIFIER = "identifier";
1141 /**
1142   * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
1143   * <p>
1144   * Description: <b>ID of the evaluation</b><br>
1145   * Type: <b>token</b><br>
1146   * Path: <b>ImmunizationEvaluation.identifier</b><br>
1147   * </p>
1148   */
1149  public static final ca.uhn.fhir.rest.gclient.TokenClientParam IDENTIFIER = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_IDENTIFIER);
1150
1151 /**
1152   * Search parameter: <b>immunization-event</b>
1153   * <p>
1154   * Description: <b>The vaccine administration event being evaluated</b><br>
1155   * Type: <b>reference</b><br>
1156   * Path: <b>ImmunizationEvaluation.immunizationEvent</b><br>
1157   * </p>
1158   */
1159  @SearchParamDefinition(name="immunization-event", path="ImmunizationEvaluation.immunizationEvent", description="The vaccine administration event being evaluated", type="reference", target={Immunization.class } )
1160  public static final String SP_IMMUNIZATION_EVENT = "immunization-event";
1161 /**
1162   * <b>Fluent Client</b> search parameter constant for <b>immunization-event</b>
1163   * <p>
1164   * Description: <b>The vaccine administration event being evaluated</b><br>
1165   * Type: <b>reference</b><br>
1166   * Path: <b>ImmunizationEvaluation.immunizationEvent</b><br>
1167   * </p>
1168   */
1169  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam IMMUNIZATION_EVENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_IMMUNIZATION_EVENT);
1170
1171/**
1172   * Constant for fluent queries to be used to add include statements. Specifies
1173   * the path value of "<b>ImmunizationEvaluation:immunization-event</b>".
1174   */
1175  public static final ca.uhn.fhir.model.api.Include INCLUDE_IMMUNIZATION_EVENT = new ca.uhn.fhir.model.api.Include("ImmunizationEvaluation:immunization-event").toLocked();
1176
1177 /**
1178   * Search parameter: <b>patient</b>
1179   * <p>
1180   * Description: <b>The patient being evaluated</b><br>
1181   * Type: <b>reference</b><br>
1182   * Path: <b>ImmunizationEvaluation.patient</b><br>
1183   * </p>
1184   */
1185  @SearchParamDefinition(name="patient", path="ImmunizationEvaluation.patient", description="The patient being evaluated", type="reference", providesMembershipIn={ @ca.uhn.fhir.model.api.annotation.Compartment(name="Base FHIR compartment definition for Patient") }, target={Patient.class } )
1186  public static final String SP_PATIENT = "patient";
1187 /**
1188   * <b>Fluent Client</b> search parameter constant for <b>patient</b>
1189   * <p>
1190   * Description: <b>The patient being evaluated</b><br>
1191   * Type: <b>reference</b><br>
1192   * Path: <b>ImmunizationEvaluation.patient</b><br>
1193   * </p>
1194   */
1195  public static final ca.uhn.fhir.rest.gclient.ReferenceClientParam PATIENT = new ca.uhn.fhir.rest.gclient.ReferenceClientParam(SP_PATIENT);
1196
1197/**
1198   * Constant for fluent queries to be used to add include statements. Specifies
1199   * the path value of "<b>ImmunizationEvaluation:patient</b>".
1200   */
1201  public static final ca.uhn.fhir.model.api.Include INCLUDE_PATIENT = new ca.uhn.fhir.model.api.Include("ImmunizationEvaluation:patient").toLocked();
1202
1203 /**
1204   * Search parameter: <b>status</b>
1205   * <p>
1206   * Description: <b>Immunization evaluation status</b><br>
1207   * Type: <b>token</b><br>
1208   * Path: <b>ImmunizationEvaluation.status</b><br>
1209   * </p>
1210   */
1211  @SearchParamDefinition(name="status", path="ImmunizationEvaluation.status", description="Immunization evaluation status", type="token" )
1212  public static final String SP_STATUS = "status";
1213 /**
1214   * <b>Fluent Client</b> search parameter constant for <b>status</b>
1215   * <p>
1216   * Description: <b>Immunization evaluation status</b><br>
1217   * Type: <b>token</b><br>
1218   * Path: <b>ImmunizationEvaluation.status</b><br>
1219   * </p>
1220   */
1221  public static final ca.uhn.fhir.rest.gclient.TokenClientParam STATUS = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_STATUS);
1222
1223 /**
1224   * Search parameter: <b>target-disease</b>
1225   * <p>
1226   * Description: <b>The vaccine preventable disease being evaluated against</b><br>
1227   * Type: <b>token</b><br>
1228   * Path: <b>ImmunizationEvaluation.targetDisease</b><br>
1229   * </p>
1230   */
1231  @SearchParamDefinition(name="target-disease", path="ImmunizationEvaluation.targetDisease", description="The vaccine preventable disease being evaluated against", type="token" )
1232  public static final String SP_TARGET_DISEASE = "target-disease";
1233 /**
1234   * <b>Fluent Client</b> search parameter constant for <b>target-disease</b>
1235   * <p>
1236   * Description: <b>The vaccine preventable disease being evaluated against</b><br>
1237   * Type: <b>token</b><br>
1238   * Path: <b>ImmunizationEvaluation.targetDisease</b><br>
1239   * </p>
1240   */
1241  public static final ca.uhn.fhir.rest.gclient.TokenClientParam TARGET_DISEASE = new ca.uhn.fhir.rest.gclient.TokenClientParam(SP_TARGET_DISEASE);
1242
1243
1244}
1245