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