001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
042import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
043import ca.uhn.fhir.model.dstu2.resource.Appointment;
044import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
045import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
048import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
049import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
057import ca.uhn.fhir.model.dstu2.resource.BodySite;
058import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
059import ca.uhn.fhir.model.dstu2.resource.CarePlan;
060import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
063import ca.uhn.fhir.model.dstu2.resource.Claim;
064import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
065import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
066import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
067import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
068import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
069import ca.uhn.fhir.model.dstu2.composite.CodingDt;
070import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
071import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
072import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
073import ca.uhn.fhir.model.dstu2.resource.Composition;
074import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
075import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
076import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
077import ca.uhn.fhir.model.dstu2.resource.Condition;
078import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
079import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
082import ca.uhn.fhir.model.dstu2.resource.Conformance;
083import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
085import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
086import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
087import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
088import ca.uhn.fhir.model.dstu2.resource.Contract;
089import ca.uhn.fhir.model.dstu2.resource.Coverage;
090import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
091import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
092import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
093import ca.uhn.fhir.model.dstu2.resource.Device;
094import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
095import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
096import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
097import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
098import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
101import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
102import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
103import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
105import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
106import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
108import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
109import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
110import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
111import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
112import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
113import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
114import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
115import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
116import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
117import ca.uhn.fhir.model.dstu2.resource.Encounter;
118import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
119import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
120import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
121import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
122import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
123import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
124import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
125import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
126import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
127import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
128import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
129import ca.uhn.fhir.model.dstu2.resource.Goal;
130import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
131import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
132import ca.uhn.fhir.model.dstu2.resource.Group;
133import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
134import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
135import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
136import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
137import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
138import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
139import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
140import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
141import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
143import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
144import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
145import ca.uhn.fhir.model.dstu2.resource.Immunization;
146import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
147import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
148import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
149import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
150import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
152import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
153import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
154import ca.uhn.fhir.model.dstu2.resource.Location;
155import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
156import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
157import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
158import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
159import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
160import ca.uhn.fhir.model.dstu2.resource.Media;
161import ca.uhn.fhir.model.dstu2.resource.Medication;
162import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
163import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
164import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
165import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
166import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
167import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
168import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
169import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
170import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
171import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
172import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
175import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
176import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
177import ca.uhn.fhir.model.dstu2.resource.Observation;
178import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
179import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
180import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
181import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
182import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
183import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
184import ca.uhn.fhir.model.dstu2.resource.Order;
185import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.Organization;
187import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
188import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
189import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
190import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
191import ca.uhn.fhir.model.dstu2.resource.Patient;
192import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
193import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
194import ca.uhn.fhir.model.dstu2.resource.Person;
195import ca.uhn.fhir.model.dstu2.resource.Practitioner;
196import ca.uhn.fhir.model.dstu2.resource.Procedure;
197import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
198import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
199import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
200import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
201import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
202import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
203import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
204import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
205import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
206import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
207import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
208import ca.uhn.fhir.model.dstu2.composite.RangeDt;
209import ca.uhn.fhir.model.dstu2.composite.RatioDt;
210import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
211import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
212import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
213import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
214import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
216import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
217import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
218import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
219import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
220import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
221import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
222import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
223import ca.uhn.fhir.model.dstu2.resource.Schedule;
224import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
225import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
226import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
227import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
228import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
229import ca.uhn.fhir.model.dstu2.resource.Slot;
230import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.Specimen;
232import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
233import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
234import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
235import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
236import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
237import ca.uhn.fhir.model.dstu2.resource.Substance;
238import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
239import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
240import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
241import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
242import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
243import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
244import ca.uhn.fhir.model.dstu2.composite.TimingDt;
245import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
247import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
249import ca.uhn.fhir.model.dstu2.resource.ValueSet;
250import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
251import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
252import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
253import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
254import ca.uhn.fhir.model.api.IResource;
255import ca.uhn.fhir.model.dstu2.composite.AgeDt;
256import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
257import ca.uhn.fhir.model.dstu2.composite.DurationDt;
258import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
259import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
260import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
261import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
262import ca.uhn.fhir.model.primitive.Base64BinaryDt;
263import ca.uhn.fhir.model.primitive.BooleanDt;
264import ca.uhn.fhir.model.primitive.BoundCodeDt;
265import ca.uhn.fhir.model.primitive.CodeDt;
266import ca.uhn.fhir.model.primitive.DateDt;
267import ca.uhn.fhir.model.primitive.DateTimeDt;
268import ca.uhn.fhir.model.primitive.DecimalDt;
269import ca.uhn.fhir.model.primitive.IdDt;
270import ca.uhn.fhir.model.primitive.InstantDt;
271import ca.uhn.fhir.model.primitive.IntegerDt;
272import ca.uhn.fhir.model.primitive.OidDt;
273import ca.uhn.fhir.model.primitive.PositiveIntDt;
274import ca.uhn.fhir.model.primitive.StringDt;
275import ca.uhn.fhir.model.primitive.TimeDt;
276import ca.uhn.fhir.model.primitive.UnsignedIntDt;
277import ca.uhn.fhir.model.primitive.UriDt;
278
279
280/**
281 * HAPI/FHIR <b>Immunization</b> Resource
282 * (clinical.medication)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Describes the event of a patient being administered a vaccination or a record of a vaccination as reported by a patient, a clinician or another party and may include vaccine reaction information and what vaccination protocol was followed.
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * 
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/Immunization">http://hl7.org/fhir/profiles/Immunization</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="Immunization", profile="http://hl7.org/fhir/profiles/Immunization", id="immunization")
301public class Immunization extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource 
303    {
304
305        /**
306         * Search parameter constant for <b>date</b>
307         * <p>
308         * Description: <b>Vaccination  (non)-Administration Date</b><br>
309         * Type: <b>date</b><br>
310         * Path: <b>Immunization.date</b><br>
311         * </p>
312         */
313        @SearchParamDefinition(name="date", path="Immunization.date", description="Vaccination  (non)-Administration Date", type="date" 
314 )
315        public static final String SP_DATE = "date";
316
317        /**
318         * <b>Fluent Client</b> search parameter constant for <b>date</b>
319         * <p>
320         * Description: <b>Vaccination  (non)-Administration Date</b><br>
321         * Type: <b>date</b><br>
322         * Path: <b>Immunization.date</b><br>
323         * </p>
324         */
325        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
326
327        /**
328         * Search parameter constant for <b>dose-sequence</b>
329         * <p>
330         * Description: <b></b><br>
331         * Type: <b>number</b><br>
332         * Path: <b>Immunization.vaccinationProtocol.doseSequence</b><br>
333         * </p>
334         */
335        @SearchParamDefinition(name="dose-sequence", path="Immunization.vaccinationProtocol.doseSequence", description="", type="number" 
336 )
337        public static final String SP_DOSE_SEQUENCE = "dose-sequence";
338
339        /**
340         * <b>Fluent Client</b> search parameter constant for <b>dose-sequence</b>
341         * <p>
342         * Description: <b></b><br>
343         * Type: <b>number</b><br>
344         * Path: <b>Immunization.vaccinationProtocol.doseSequence</b><br>
345         * </p>
346         */
347        public static final NumberClientParam DOSE_SEQUENCE = new NumberClientParam(SP_DOSE_SEQUENCE);
348
349        /**
350         * Search parameter constant for <b>identifier</b>
351         * <p>
352         * Description: <b></b><br>
353         * Type: <b>token</b><br>
354         * Path: <b>Immunization.identifier</b><br>
355         * </p>
356         */
357        @SearchParamDefinition(name="identifier", path="Immunization.identifier", description="", type="token" 
358 )
359        public static final String SP_IDENTIFIER = "identifier";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
363         * <p>
364         * Description: <b></b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>Immunization.identifier</b><br>
367         * </p>
368         */
369        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
370
371        /**
372         * Search parameter constant for <b>location</b>
373         * <p>
374         * Description: <b>The service delivery location or facility in which the vaccine was / was to be administered</b><br>
375         * Type: <b>reference</b><br>
376         * Path: <b>Immunization.location</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="location", path="Immunization.location", description="The service delivery location or facility in which the vaccine was / was to be administered", type="reference" 
380 )
381        public static final String SP_LOCATION = "location";
382
383        /**
384         * <b>Fluent Client</b> search parameter constant for <b>location</b>
385         * <p>
386         * Description: <b>The service delivery location or facility in which the vaccine was / was to be administered</b><br>
387         * Type: <b>reference</b><br>
388         * Path: <b>Immunization.location</b><br>
389         * </p>
390         */
391        public static final ReferenceClientParam LOCATION = new ReferenceClientParam(SP_LOCATION);
392
393        /**
394         * Search parameter constant for <b>lot-number</b>
395         * <p>
396         * Description: <b>Vaccine Lot Number</b><br>
397         * Type: <b>string</b><br>
398         * Path: <b>Immunization.lotNumber</b><br>
399         * </p>
400         */
401        @SearchParamDefinition(name="lot-number", path="Immunization.lotNumber", description="Vaccine Lot Number", type="string" 
402 )
403        public static final String SP_LOT_NUMBER = "lot-number";
404
405        /**
406         * <b>Fluent Client</b> search parameter constant for <b>lot-number</b>
407         * <p>
408         * Description: <b>Vaccine Lot Number</b><br>
409         * Type: <b>string</b><br>
410         * Path: <b>Immunization.lotNumber</b><br>
411         * </p>
412         */
413        public static final StringClientParam LOT_NUMBER = new StringClientParam(SP_LOT_NUMBER);
414
415        /**
416         * Search parameter constant for <b>manufacturer</b>
417         * <p>
418         * Description: <b>Vaccine Manufacturer</b><br>
419         * Type: <b>reference</b><br>
420         * Path: <b>Immunization.manufacturer</b><br>
421         * </p>
422         */
423        @SearchParamDefinition(name="manufacturer", path="Immunization.manufacturer", description="Vaccine Manufacturer", type="reference" 
424 )
425        public static final String SP_MANUFACTURER = "manufacturer";
426
427        /**
428         * <b>Fluent Client</b> search parameter constant for <b>manufacturer</b>
429         * <p>
430         * Description: <b>Vaccine Manufacturer</b><br>
431         * Type: <b>reference</b><br>
432         * Path: <b>Immunization.manufacturer</b><br>
433         * </p>
434         */
435        public static final ReferenceClientParam MANUFACTURER = new ReferenceClientParam(SP_MANUFACTURER);
436
437        /**
438         * Search parameter constant for <b>performer</b>
439         * <p>
440         * Description: <b>The practitioner who administered the vaccination</b><br>
441         * Type: <b>reference</b><br>
442         * Path: <b>Immunization.performer</b><br>
443         * </p>
444         */
445        @SearchParamDefinition(name="performer", path="Immunization.performer", description="The practitioner who administered the vaccination", type="reference" 
446, providesMembershipIn={
447 @Compartment(name="Encounter")         }
448 )
449        public static final String SP_PERFORMER = "performer";
450
451        /**
452         * <b>Fluent Client</b> search parameter constant for <b>performer</b>
453         * <p>
454         * Description: <b>The practitioner who administered the vaccination</b><br>
455         * Type: <b>reference</b><br>
456         * Path: <b>Immunization.performer</b><br>
457         * </p>
458         */
459        public static final ReferenceClientParam PERFORMER = new ReferenceClientParam(SP_PERFORMER);
460
461        /**
462         * Search parameter constant for <b>reaction</b>
463         * <p>
464         * Description: <b></b><br>
465         * Type: <b>reference</b><br>
466         * Path: <b>Immunization.reaction.detail</b><br>
467         * </p>
468         */
469        @SearchParamDefinition(name="reaction", path="Immunization.reaction.detail", description="", type="reference" 
470 )
471        public static final String SP_REACTION = "reaction";
472
473        /**
474         * <b>Fluent Client</b> search parameter constant for <b>reaction</b>
475         * <p>
476         * Description: <b></b><br>
477         * Type: <b>reference</b><br>
478         * Path: <b>Immunization.reaction.detail</b><br>
479         * </p>
480         */
481        public static final ReferenceClientParam REACTION = new ReferenceClientParam(SP_REACTION);
482
483        /**
484         * Search parameter constant for <b>reaction-date</b>
485         * <p>
486         * Description: <b></b><br>
487         * Type: <b>date</b><br>
488         * Path: <b>Immunization.reaction.date</b><br>
489         * </p>
490         */
491        @SearchParamDefinition(name="reaction-date", path="Immunization.reaction.date", description="", type="date" 
492 )
493        public static final String SP_REACTION_DATE = "reaction-date";
494
495        /**
496         * <b>Fluent Client</b> search parameter constant for <b>reaction-date</b>
497         * <p>
498         * Description: <b></b><br>
499         * Type: <b>date</b><br>
500         * Path: <b>Immunization.reaction.date</b><br>
501         * </p>
502         */
503        public static final DateClientParam REACTION_DATE = new DateClientParam(SP_REACTION_DATE);
504
505        /**
506         * Search parameter constant for <b>reason</b>
507         * <p>
508         * Description: <b></b><br>
509         * Type: <b>token</b><br>
510         * Path: <b>Immunization.explanation.reason</b><br>
511         * </p>
512         */
513        @SearchParamDefinition(name="reason", path="Immunization.explanation.reason", description="", type="token" 
514 )
515        public static final String SP_REASON = "reason";
516
517        /**
518         * <b>Fluent Client</b> search parameter constant for <b>reason</b>
519         * <p>
520         * Description: <b></b><br>
521         * Type: <b>token</b><br>
522         * Path: <b>Immunization.explanation.reason</b><br>
523         * </p>
524         */
525        public static final TokenClientParam REASON = new TokenClientParam(SP_REASON);
526
527        /**
528         * Search parameter constant for <b>reason-not-given</b>
529         * <p>
530         * Description: <b>Explanation of reason vaccination was not administered</b><br>
531         * Type: <b>token</b><br>
532         * Path: <b>Immunization.explanation.reasonNotGiven</b><br>
533         * </p>
534         */
535        @SearchParamDefinition(name="reason-not-given", path="Immunization.explanation.reasonNotGiven", description="Explanation of reason vaccination was not administered", type="token" 
536 )
537        public static final String SP_REASON_NOT_GIVEN = "reason-not-given";
538
539        /**
540         * <b>Fluent Client</b> search parameter constant for <b>reason-not-given</b>
541         * <p>
542         * Description: <b>Explanation of reason vaccination was not administered</b><br>
543         * Type: <b>token</b><br>
544         * Path: <b>Immunization.explanation.reasonNotGiven</b><br>
545         * </p>
546         */
547        public static final TokenClientParam REASON_NOT_GIVEN = new TokenClientParam(SP_REASON_NOT_GIVEN);
548
549        /**
550         * Search parameter constant for <b>notgiven</b>
551         * <p>
552         * Description: <b>Administrations which were not given</b><br>
553         * Type: <b>token</b><br>
554         * Path: <b>Immunization.wasNotGiven</b><br>
555         * </p>
556         */
557        @SearchParamDefinition(name="notgiven", path="Immunization.wasNotGiven", description="Administrations which were not given", type="token" 
558 )
559        public static final String SP_NOTGIVEN = "notgiven";
560
561        /**
562         * <b>Fluent Client</b> search parameter constant for <b>notgiven</b>
563         * <p>
564         * Description: <b>Administrations which were not given</b><br>
565         * Type: <b>token</b><br>
566         * Path: <b>Immunization.wasNotGiven</b><br>
567         * </p>
568         */
569        public static final TokenClientParam NOTGIVEN = new TokenClientParam(SP_NOTGIVEN);
570
571        /**
572         * Search parameter constant for <b>requester</b>
573         * <p>
574         * Description: <b>The practitioner who ordered the vaccination</b><br>
575         * Type: <b>reference</b><br>
576         * Path: <b>Immunization.requester</b><br>
577         * </p>
578         */
579        @SearchParamDefinition(name="requester", path="Immunization.requester", description="The practitioner who ordered the vaccination", type="reference" 
580, providesMembershipIn={
581 @Compartment(name="Encounter")         }
582 )
583        public static final String SP_REQUESTER = "requester";
584
585        /**
586         * <b>Fluent Client</b> search parameter constant for <b>requester</b>
587         * <p>
588         * Description: <b>The practitioner who ordered the vaccination</b><br>
589         * Type: <b>reference</b><br>
590         * Path: <b>Immunization.requester</b><br>
591         * </p>
592         */
593        public static final ReferenceClientParam REQUESTER = new ReferenceClientParam(SP_REQUESTER);
594
595        /**
596         * Search parameter constant for <b>patient</b>
597         * <p>
598         * Description: <b>The patient for the vaccination record</b><br>
599         * Type: <b>reference</b><br>
600         * Path: <b>Immunization.patient</b><br>
601         * </p>
602         */
603        @SearchParamDefinition(name="patient", path="Immunization.patient", description="The patient for the vaccination record", type="reference" 
604, providesMembershipIn={
605 @Compartment(name="Patient")   }
606 )
607        public static final String SP_PATIENT = "patient";
608
609        /**
610         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
611         * <p>
612         * Description: <b>The patient for the vaccination record</b><br>
613         * Type: <b>reference</b><br>
614         * Path: <b>Immunization.patient</b><br>
615         * </p>
616         */
617        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
618
619        /**
620         * Search parameter constant for <b>vaccine-code</b>
621         * <p>
622         * Description: <b>Vaccine Product Administered</b><br>
623         * Type: <b>token</b><br>
624         * Path: <b>Immunization.vaccineCode</b><br>
625         * </p>
626         */
627        @SearchParamDefinition(name="vaccine-code", path="Immunization.vaccineCode", description="Vaccine Product Administered", type="token" 
628 )
629        public static final String SP_VACCINE_CODE = "vaccine-code";
630
631        /**
632         * <b>Fluent Client</b> search parameter constant for <b>vaccine-code</b>
633         * <p>
634         * Description: <b>Vaccine Product Administered</b><br>
635         * Type: <b>token</b><br>
636         * Path: <b>Immunization.vaccineCode</b><br>
637         * </p>
638         */
639        public static final TokenClientParam VACCINE_CODE = new TokenClientParam(SP_VACCINE_CODE);
640
641        /**
642         * Search parameter constant for <b>status</b>
643         * <p>
644         * Description: <b>Immunization event status</b><br>
645         * Type: <b>token</b><br>
646         * Path: <b>Immunization.status</b><br>
647         * </p>
648         */
649        @SearchParamDefinition(name="status", path="Immunization.status", description="Immunization event status", type="token" 
650 )
651        public static final String SP_STATUS = "status";
652
653        /**
654         * <b>Fluent Client</b> search parameter constant for <b>status</b>
655         * <p>
656         * Description: <b>Immunization event status</b><br>
657         * Type: <b>token</b><br>
658         * Path: <b>Immunization.status</b><br>
659         * </p>
660         */
661        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
662
663
664        /**
665         * Constant for fluent queries to be used to add include statements. Specifies
666         * the path value of "<b>Immunization:location</b>".
667         */
668        public static final Include INCLUDE_LOCATION = new Include("Immunization:location");
669
670        /**
671         * Constant for fluent queries to be used to add include statements. Specifies
672         * the path value of "<b>Immunization:manufacturer</b>".
673         */
674        public static final Include INCLUDE_MANUFACTURER = new Include("Immunization:manufacturer");
675
676        /**
677         * Constant for fluent queries to be used to add include statements. Specifies
678         * the path value of "<b>Immunization:patient</b>".
679         */
680        public static final Include INCLUDE_PATIENT = new Include("Immunization:patient");
681
682        /**
683         * Constant for fluent queries to be used to add include statements. Specifies
684         * the path value of "<b>Immunization:performer</b>".
685         */
686        public static final Include INCLUDE_PERFORMER = new Include("Immunization:performer");
687
688        /**
689         * Constant for fluent queries to be used to add include statements. Specifies
690         * the path value of "<b>Immunization:reaction</b>".
691         */
692        public static final Include INCLUDE_REACTION = new Include("Immunization:reaction");
693
694        /**
695         * Constant for fluent queries to be used to add include statements. Specifies
696         * the path value of "<b>Immunization:requester</b>".
697         */
698        public static final Include INCLUDE_REQUESTER = new Include("Immunization:requester");
699
700
701        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
702        @Description(
703                shortDefinition="id",
704                formalDefinition="A unique identifier assigned to this immunization record."
705        )
706        private java.util.List<IdentifierDt> myIdentifier;
707        
708        @Child(name="status", type=CodeDt.class, order=1, min=1, max=1, summary=true, modifier=true)    
709        @Description(
710                shortDefinition="status",
711                formalDefinition="Indicates the current status of the vaccination event"
712        )
713        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/medication-admin-status")
714        private CodeDt myStatus;
715        
716        @Child(name="date", type=DateTimeDt.class, order=2, min=0, max=1, summary=false, modifier=false)        
717        @Description(
718                shortDefinition="when.init",
719                formalDefinition="Date vaccine administered or was to be administered"
720        )
721        private DateTimeDt myDate;
722        
723        @Child(name="vaccineCode", type=CodeableConceptDt.class, order=3, min=1, max=1, summary=false, modifier=false)  
724        @Description(
725                shortDefinition="what",
726                formalDefinition="Vaccine that was administered or was to be administered"
727        )
728        private CodeableConceptDt myVaccineCode;
729        
730        @Child(name="patient", order=4, min=1, max=1, summary=false, modifier=false, type={
731                ca.uhn.fhir.model.dstu2.resource.Patient.class
732        })
733        @Description(
734                shortDefinition="who.focus",
735                formalDefinition="The patient who either received or did not receive the immunization."
736        )
737        private ResourceReferenceDt myPatient;
738        
739        @Child(name="wasNotGiven", type=BooleanDt.class, order=5, min=1, max=1, summary=false, modifier=true)   
740        @Description(
741                shortDefinition="status",
742                formalDefinition="Indicates if the vaccination was or was not given"
743        )
744        private BooleanDt myWasNotGiven;
745        
746        @Child(name="reported", type=BooleanDt.class, order=6, min=1, max=1, summary=false, modifier=false)     
747        @Description(
748                shortDefinition="who.source",
749                formalDefinition="True if this administration was reported rather than directly administered."
750        )
751        private BooleanDt myReported;
752        
753        @Child(name="performer", order=7, min=0, max=1, summary=false, modifier=false, type={
754                ca.uhn.fhir.model.dstu2.resource.Practitioner.class
755        })
756        @Description(
757                shortDefinition="who.actor",
758                formalDefinition="Clinician who administered the vaccine"
759        )
760        private ResourceReferenceDt myPerformer;
761        
762        @Child(name="requester", order=8, min=0, max=1, summary=false, modifier=false, type={
763                ca.uhn.fhir.model.dstu2.resource.Practitioner.class
764        })
765        @Description(
766                shortDefinition="who.cause",
767                formalDefinition="Clinician who ordered the vaccination"
768        )
769        private ResourceReferenceDt myRequester;
770        
771        @Child(name="encounter", order=9, min=0, max=1, summary=false, modifier=false, type={
772                ca.uhn.fhir.model.dstu2.resource.Encounter.class
773        })
774        @Description(
775                shortDefinition="context",
776                formalDefinition="The visit or admission or other contact between patient and health care provider the immunization was performed as part of."
777        )
778        private ResourceReferenceDt myEncounter;
779        
780        @Child(name="manufacturer", order=10, min=0, max=1, summary=false, modifier=false, type={
781                ca.uhn.fhir.model.dstu2.resource.Organization.class
782        })
783        @Description(
784                shortDefinition="",
785                formalDefinition="Name of vaccine manufacturer"
786        )
787        private ResourceReferenceDt myManufacturer;
788        
789        @Child(name="location", order=11, min=0, max=1, summary=false, modifier=false, type={
790                ca.uhn.fhir.model.dstu2.resource.Location.class
791        })
792        @Description(
793                shortDefinition="where",
794                formalDefinition="The service delivery location where the vaccine administration occurred."
795        )
796        private ResourceReferenceDt myLocation;
797        
798        @Child(name="lotNumber", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false)    
799        @Description(
800                shortDefinition="",
801                formalDefinition="Lot number of the  vaccine product"
802        )
803        private StringDt myLotNumber;
804        
805        @Child(name="expirationDate", type=DateDt.class, order=13, min=0, max=1, summary=false, modifier=false) 
806        @Description(
807                shortDefinition="",
808                formalDefinition="Date vaccine batch expires"
809        )
810        private DateDt myExpirationDate;
811        
812        @Child(name="site", type=CodeableConceptDt.class, order=14, min=0, max=1, summary=false, modifier=false)        
813        @Description(
814                shortDefinition="",
815                formalDefinition="Body site where vaccine was administered"
816        )
817        private CodeableConceptDt mySite;
818        
819        @Child(name="route", type=CodeableConceptDt.class, order=15, min=0, max=1, summary=false, modifier=false)       
820        @Description(
821                shortDefinition="",
822                formalDefinition="The path by which the vaccine product is taken into the body."
823        )
824        private CodeableConceptDt myRoute;
825        
826        @Child(name="doseQuantity", type=SimpleQuantityDt.class, order=16, min=0, max=1, summary=false, modifier=false) 
827        @Description(
828                shortDefinition="",
829                formalDefinition="The quantity of vaccine product that was administered"
830        )
831        private SimpleQuantityDt myDoseQuantity;
832        
833        @Child(name="note", type=AnnotationDt.class, order=17, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)    
834        @Description(
835                shortDefinition="",
836                formalDefinition="Extra information about the immunization that is not conveyed by the other attributes."
837        )
838        private java.util.List<AnnotationDt> myNote;
839        
840        @Child(name="explanation", order=18, min=0, max=1, summary=false, modifier=false)       
841        @Description(
842                shortDefinition="",
843                formalDefinition="Reasons why a vaccine was or was not administered"
844        )
845        private Explanation myExplanation;
846        
847        @Child(name="reaction", order=19, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
848        @Description(
849                shortDefinition="",
850                formalDefinition="Categorical data indicating that an adverse event is associated in time to an immunization"
851        )
852        private java.util.List<Reaction> myReaction;
853        
854        @Child(name="vaccinationProtocol", order=20, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
855        @Description(
856                shortDefinition="",
857                formalDefinition="Contains information about the protocol(s) under which the vaccine was administered"
858        )
859        private java.util.List<VaccinationProtocol> myVaccinationProtocol;
860        
861
862        @Override
863        public boolean isEmpty() {
864                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myStatus,  myDate,  myVaccineCode,  myPatient,  myWasNotGiven,  myReported,  myPerformer,  myRequester,  myEncounter,  myManufacturer,  myLocation,  myLotNumber,  myExpirationDate,  mySite,  myRoute,  myDoseQuantity,  myNote,  myExplanation,  myReaction,  myVaccinationProtocol);
865        }
866        
867        @Override
868        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
869                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myStatus, myDate, myVaccineCode, myPatient, myWasNotGiven, myReported, myPerformer, myRequester, myEncounter, myManufacturer, myLocation, myLotNumber, myExpirationDate, mySite, myRoute, myDoseQuantity, myNote, myExplanation, myReaction, myVaccinationProtocol);
870        }
871
872        /**
873         * Gets the value(s) for <b>identifier</b> (id).
874         * creating it if it does
875         * not exist. Will not return <code>null</code>.
876         *
877     * <p>
878     * <b>Definition:</b>
879     * A unique identifier assigned to this immunization record.
880     * </p> 
881         */
882        public java.util.List<IdentifierDt> getIdentifier() {  
883                if (myIdentifier == null) {
884                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
885                }
886                return myIdentifier;
887        }
888
889        /**
890         * Sets the value(s) for <b>identifier</b> (id)
891         *
892     * <p>
893     * <b>Definition:</b>
894     * A unique identifier assigned to this immunization record.
895     * </p> 
896         */
897        public Immunization setIdentifier(java.util.List<IdentifierDt> theValue) {
898                myIdentifier = theValue;
899                return this;
900        }
901        
902        
903
904        /**
905         * Adds and returns a new value for <b>identifier</b> (id)
906         *
907     * <p>
908     * <b>Definition:</b>
909     * A unique identifier assigned to this immunization record.
910     * </p> 
911         */
912        public IdentifierDt addIdentifier() {
913                IdentifierDt newType = new IdentifierDt();
914                getIdentifier().add(newType);
915                return newType; 
916        }
917
918        /**
919         * Adds a given new value for <b>identifier</b> (id)
920         *
921         * <p>
922         * <b>Definition:</b>
923         * A unique identifier assigned to this immunization record.
924         * </p>
925         * @param theValue The identifier to add (must not be <code>null</code>)
926         */
927        public Immunization addIdentifier(IdentifierDt theValue) {
928                if (theValue == null) {
929                        throw new NullPointerException("theValue must not be null");
930                }
931                getIdentifier().add(theValue);
932                return this;
933        }
934
935        /**
936         * Gets the first repetition for <b>identifier</b> (id),
937         * creating it if it does not already exist.
938         *
939     * <p>
940     * <b>Definition:</b>
941     * A unique identifier assigned to this immunization record.
942     * </p> 
943         */
944        public IdentifierDt getIdentifierFirstRep() {
945                if (getIdentifier().isEmpty()) {
946                        return addIdentifier();
947                }
948                return getIdentifier().get(0); 
949        }
950  
951        /**
952         * Gets the value(s) for <b>status</b> (status).
953         * creating it if it does
954         * not exist. Will not return <code>null</code>.
955         *
956     * <p>
957     * <b>Definition:</b>
958     * Indicates the current status of the vaccination event
959     * </p> 
960         */
961        public CodeDt getStatusElement() {  
962                if (myStatus == null) {
963                        myStatus = new CodeDt();
964                }
965                return myStatus;
966        }
967
968        
969        /**
970         * Gets the value(s) for <b>status</b> (status).
971         * creating it if it does
972         * not exist. This method may return <code>null</code>.
973         *
974     * <p>
975     * <b>Definition:</b>
976     * Indicates the current status of the vaccination event
977     * </p> 
978         */
979        public String getStatus() {  
980                return getStatusElement().getValue();
981        }
982
983        /**
984         * Sets the value(s) for <b>status</b> (status)
985         *
986     * <p>
987     * <b>Definition:</b>
988     * Indicates the current status of the vaccination event
989     * </p> 
990         */
991        public Immunization setStatus(CodeDt theValue) {
992                myStatus = theValue;
993                return this;
994        }
995        
996        
997
998        /**
999         * Sets the value for <b>status</b> (status)
1000         *
1001     * <p>
1002     * <b>Definition:</b>
1003     * Indicates the current status of the vaccination event
1004     * </p> 
1005         */
1006        public Immunization setStatus( String theCode) {
1007                myStatus = new CodeDt(theCode); 
1008                return this; 
1009        }
1010
1011 
1012        /**
1013         * Gets the value(s) for <b>date</b> (when.init).
1014         * creating it if it does
1015         * not exist. Will not return <code>null</code>.
1016         *
1017     * <p>
1018     * <b>Definition:</b>
1019     * Date vaccine administered or was to be administered
1020     * </p> 
1021         */
1022        public DateTimeDt getDateElement() {  
1023                if (myDate == null) {
1024                        myDate = new DateTimeDt();
1025                }
1026                return myDate;
1027        }
1028
1029        
1030        /**
1031         * Gets the value(s) for <b>date</b> (when.init).
1032         * creating it if it does
1033         * not exist. This method may return <code>null</code>.
1034         *
1035     * <p>
1036     * <b>Definition:</b>
1037     * Date vaccine administered or was to be administered
1038     * </p> 
1039         */
1040        public Date getDate() {  
1041                return getDateElement().getValue();
1042        }
1043
1044        /**
1045         * Sets the value(s) for <b>date</b> (when.init)
1046         *
1047     * <p>
1048     * <b>Definition:</b>
1049     * Date vaccine administered or was to be administered
1050     * </p> 
1051         */
1052        public Immunization setDate(DateTimeDt theValue) {
1053                myDate = theValue;
1054                return this;
1055        }
1056        
1057        
1058
1059        /**
1060         * Sets the value for <b>date</b> (when.init)
1061         *
1062     * <p>
1063     * <b>Definition:</b>
1064     * Date vaccine administered or was to be administered
1065     * </p> 
1066         */
1067        public Immunization setDateWithSecondsPrecision( Date theDate) {
1068                myDate = new DateTimeDt(theDate); 
1069                return this; 
1070        }
1071
1072        /**
1073         * Sets the value for <b>date</b> (when.init)
1074         *
1075     * <p>
1076     * <b>Definition:</b>
1077     * Date vaccine administered or was to be administered
1078     * </p> 
1079         */
1080        public Immunization setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1081                myDate = new DateTimeDt(theDate, thePrecision); 
1082                return this; 
1083        }
1084
1085 
1086        /**
1087         * Gets the value(s) for <b>vaccineCode</b> (what).
1088         * creating it if it does
1089         * not exist. Will not return <code>null</code>.
1090         *
1091     * <p>
1092     * <b>Definition:</b>
1093     * Vaccine that was administered or was to be administered
1094     * </p> 
1095         */
1096        public CodeableConceptDt getVaccineCode() {  
1097                if (myVaccineCode == null) {
1098                        myVaccineCode = new CodeableConceptDt();
1099                }
1100                return myVaccineCode;
1101        }
1102
1103        /**
1104         * Sets the value(s) for <b>vaccineCode</b> (what)
1105         *
1106     * <p>
1107     * <b>Definition:</b>
1108     * Vaccine that was administered or was to be administered
1109     * </p> 
1110         */
1111        public Immunization setVaccineCode(CodeableConceptDt theValue) {
1112                myVaccineCode = theValue;
1113                return this;
1114        }
1115        
1116        
1117
1118  
1119        /**
1120         * Gets the value(s) for <b>patient</b> (who.focus).
1121         * creating it if it does
1122         * not exist. Will not return <code>null</code>.
1123         *
1124     * <p>
1125     * <b>Definition:</b>
1126     * The patient who either received or did not receive the immunization.
1127     * </p> 
1128         */
1129        public ResourceReferenceDt getPatient() {  
1130                if (myPatient == null) {
1131                        myPatient = new ResourceReferenceDt();
1132                }
1133                return myPatient;
1134        }
1135
1136        /**
1137         * Sets the value(s) for <b>patient</b> (who.focus)
1138         *
1139     * <p>
1140     * <b>Definition:</b>
1141     * The patient who either received or did not receive the immunization.
1142     * </p> 
1143         */
1144        public Immunization setPatient(ResourceReferenceDt theValue) {
1145                myPatient = theValue;
1146                return this;
1147        }
1148        
1149        
1150
1151  
1152        /**
1153         * Gets the value(s) for <b>wasNotGiven</b> (status).
1154         * creating it if it does
1155         * not exist. Will not return <code>null</code>.
1156         *
1157     * <p>
1158     * <b>Definition:</b>
1159     * Indicates if the vaccination was or was not given
1160     * </p> 
1161         */
1162        public BooleanDt getWasNotGivenElement() {  
1163                if (myWasNotGiven == null) {
1164                        myWasNotGiven = new BooleanDt();
1165                }
1166                return myWasNotGiven;
1167        }
1168
1169        
1170        /**
1171         * Gets the value(s) for <b>wasNotGiven</b> (status).
1172         * creating it if it does
1173         * not exist. This method may return <code>null</code>.
1174         *
1175     * <p>
1176     * <b>Definition:</b>
1177     * Indicates if the vaccination was or was not given
1178     * </p> 
1179         */
1180        public Boolean getWasNotGiven() {  
1181                return getWasNotGivenElement().getValue();
1182        }
1183
1184        /**
1185         * Sets the value(s) for <b>wasNotGiven</b> (status)
1186         *
1187     * <p>
1188     * <b>Definition:</b>
1189     * Indicates if the vaccination was or was not given
1190     * </p> 
1191         */
1192        public Immunization setWasNotGiven(BooleanDt theValue) {
1193                myWasNotGiven = theValue;
1194                return this;
1195        }
1196        
1197        
1198
1199        /**
1200         * Sets the value for <b>wasNotGiven</b> (status)
1201         *
1202     * <p>
1203     * <b>Definition:</b>
1204     * Indicates if the vaccination was or was not given
1205     * </p> 
1206         */
1207        public Immunization setWasNotGiven( boolean theBoolean) {
1208                myWasNotGiven = new BooleanDt(theBoolean); 
1209                return this; 
1210        }
1211
1212 
1213        /**
1214         * Gets the value(s) for <b>reported</b> (who.source).
1215         * creating it if it does
1216         * not exist. Will not return <code>null</code>.
1217         *
1218     * <p>
1219     * <b>Definition:</b>
1220     * True if this administration was reported rather than directly administered.
1221     * </p> 
1222         */
1223        public BooleanDt getReportedElement() {  
1224                if (myReported == null) {
1225                        myReported = new BooleanDt();
1226                }
1227                return myReported;
1228        }
1229
1230        
1231        /**
1232         * Gets the value(s) for <b>reported</b> (who.source).
1233         * creating it if it does
1234         * not exist. This method may return <code>null</code>.
1235         *
1236     * <p>
1237     * <b>Definition:</b>
1238     * True if this administration was reported rather than directly administered.
1239     * </p> 
1240         */
1241        public Boolean getReported() {  
1242                return getReportedElement().getValue();
1243        }
1244
1245        /**
1246         * Sets the value(s) for <b>reported</b> (who.source)
1247         *
1248     * <p>
1249     * <b>Definition:</b>
1250     * True if this administration was reported rather than directly administered.
1251     * </p> 
1252         */
1253        public Immunization setReported(BooleanDt theValue) {
1254                myReported = theValue;
1255                return this;
1256        }
1257        
1258        
1259
1260        /**
1261         * Sets the value for <b>reported</b> (who.source)
1262         *
1263     * <p>
1264     * <b>Definition:</b>
1265     * True if this administration was reported rather than directly administered.
1266     * </p> 
1267         */
1268        public Immunization setReported( boolean theBoolean) {
1269                myReported = new BooleanDt(theBoolean); 
1270                return this; 
1271        }
1272
1273 
1274        /**
1275         * Gets the value(s) for <b>performer</b> (who.actor).
1276         * creating it if it does
1277         * not exist. Will not return <code>null</code>.
1278         *
1279     * <p>
1280     * <b>Definition:</b>
1281     * Clinician who administered the vaccine
1282     * </p> 
1283         */
1284        public ResourceReferenceDt getPerformer() {  
1285                if (myPerformer == null) {
1286                        myPerformer = new ResourceReferenceDt();
1287                }
1288                return myPerformer;
1289        }
1290
1291        /**
1292         * Sets the value(s) for <b>performer</b> (who.actor)
1293         *
1294     * <p>
1295     * <b>Definition:</b>
1296     * Clinician who administered the vaccine
1297     * </p> 
1298         */
1299        public Immunization setPerformer(ResourceReferenceDt theValue) {
1300                myPerformer = theValue;
1301                return this;
1302        }
1303        
1304        
1305
1306  
1307        /**
1308         * Gets the value(s) for <b>requester</b> (who.cause).
1309         * creating it if it does
1310         * not exist. Will not return <code>null</code>.
1311         *
1312     * <p>
1313     * <b>Definition:</b>
1314     * Clinician who ordered the vaccination
1315     * </p> 
1316         */
1317        public ResourceReferenceDt getRequester() {  
1318                if (myRequester == null) {
1319                        myRequester = new ResourceReferenceDt();
1320                }
1321                return myRequester;
1322        }
1323
1324        /**
1325         * Sets the value(s) for <b>requester</b> (who.cause)
1326         *
1327     * <p>
1328     * <b>Definition:</b>
1329     * Clinician who ordered the vaccination
1330     * </p> 
1331         */
1332        public Immunization setRequester(ResourceReferenceDt theValue) {
1333                myRequester = theValue;
1334                return this;
1335        }
1336        
1337        
1338
1339  
1340        /**
1341         * Gets the value(s) for <b>encounter</b> (context).
1342         * creating it if it does
1343         * not exist. Will not return <code>null</code>.
1344         *
1345     * <p>
1346     * <b>Definition:</b>
1347     * The visit or admission or other contact between patient and health care provider the immunization was performed as part of.
1348     * </p> 
1349         */
1350        public ResourceReferenceDt getEncounter() {  
1351                if (myEncounter == null) {
1352                        myEncounter = new ResourceReferenceDt();
1353                }
1354                return myEncounter;
1355        }
1356
1357        /**
1358         * Sets the value(s) for <b>encounter</b> (context)
1359         *
1360     * <p>
1361     * <b>Definition:</b>
1362     * The visit or admission or other contact between patient and health care provider the immunization was performed as part of.
1363     * </p> 
1364         */
1365        public Immunization setEncounter(ResourceReferenceDt theValue) {
1366                myEncounter = theValue;
1367                return this;
1368        }
1369        
1370        
1371
1372  
1373        /**
1374         * Gets the value(s) for <b>manufacturer</b> ().
1375         * creating it if it does
1376         * not exist. Will not return <code>null</code>.
1377         *
1378     * <p>
1379     * <b>Definition:</b>
1380     * Name of vaccine manufacturer
1381     * </p> 
1382         */
1383        public ResourceReferenceDt getManufacturer() {  
1384                if (myManufacturer == null) {
1385                        myManufacturer = new ResourceReferenceDt();
1386                }
1387                return myManufacturer;
1388        }
1389
1390        /**
1391         * Sets the value(s) for <b>manufacturer</b> ()
1392         *
1393     * <p>
1394     * <b>Definition:</b>
1395     * Name of vaccine manufacturer
1396     * </p> 
1397         */
1398        public Immunization setManufacturer(ResourceReferenceDt theValue) {
1399                myManufacturer = theValue;
1400                return this;
1401        }
1402        
1403        
1404
1405  
1406        /**
1407         * Gets the value(s) for <b>location</b> (where).
1408         * creating it if it does
1409         * not exist. Will not return <code>null</code>.
1410         *
1411     * <p>
1412     * <b>Definition:</b>
1413     * The service delivery location where the vaccine administration occurred.
1414     * </p> 
1415         */
1416        public ResourceReferenceDt getLocation() {  
1417                if (myLocation == null) {
1418                        myLocation = new ResourceReferenceDt();
1419                }
1420                return myLocation;
1421        }
1422
1423        /**
1424         * Sets the value(s) for <b>location</b> (where)
1425         *
1426     * <p>
1427     * <b>Definition:</b>
1428     * The service delivery location where the vaccine administration occurred.
1429     * </p> 
1430         */
1431        public Immunization setLocation(ResourceReferenceDt theValue) {
1432                myLocation = theValue;
1433                return this;
1434        }
1435        
1436        
1437
1438  
1439        /**
1440         * Gets the value(s) for <b>lotNumber</b> ().
1441         * creating it if it does
1442         * not exist. Will not return <code>null</code>.
1443         *
1444     * <p>
1445     * <b>Definition:</b>
1446     * Lot number of the  vaccine product
1447     * </p> 
1448         */
1449        public StringDt getLotNumberElement() {  
1450                if (myLotNumber == null) {
1451                        myLotNumber = new StringDt();
1452                }
1453                return myLotNumber;
1454        }
1455
1456        
1457        /**
1458         * Gets the value(s) for <b>lotNumber</b> ().
1459         * creating it if it does
1460         * not exist. This method may return <code>null</code>.
1461         *
1462     * <p>
1463     * <b>Definition:</b>
1464     * Lot number of the  vaccine product
1465     * </p> 
1466         */
1467        public String getLotNumber() {  
1468                return getLotNumberElement().getValue();
1469        }
1470
1471        /**
1472         * Sets the value(s) for <b>lotNumber</b> ()
1473         *
1474     * <p>
1475     * <b>Definition:</b>
1476     * Lot number of the  vaccine product
1477     * </p> 
1478         */
1479        public Immunization setLotNumber(StringDt theValue) {
1480                myLotNumber = theValue;
1481                return this;
1482        }
1483        
1484        
1485
1486        /**
1487         * Sets the value for <b>lotNumber</b> ()
1488         *
1489     * <p>
1490     * <b>Definition:</b>
1491     * Lot number of the  vaccine product
1492     * </p> 
1493         */
1494        public Immunization setLotNumber( String theString) {
1495                myLotNumber = new StringDt(theString); 
1496                return this; 
1497        }
1498
1499 
1500        /**
1501         * Gets the value(s) for <b>expirationDate</b> ().
1502         * creating it if it does
1503         * not exist. Will not return <code>null</code>.
1504         *
1505     * <p>
1506     * <b>Definition:</b>
1507     * Date vaccine batch expires
1508     * </p> 
1509         */
1510        public DateDt getExpirationDateElement() {  
1511                if (myExpirationDate == null) {
1512                        myExpirationDate = new DateDt();
1513                }
1514                return myExpirationDate;
1515        }
1516
1517        
1518        /**
1519         * Gets the value(s) for <b>expirationDate</b> ().
1520         * creating it if it does
1521         * not exist. This method may return <code>null</code>.
1522         *
1523     * <p>
1524     * <b>Definition:</b>
1525     * Date vaccine batch expires
1526     * </p> 
1527         */
1528        public Date getExpirationDate() {  
1529                return getExpirationDateElement().getValue();
1530        }
1531
1532        /**
1533         * Sets the value(s) for <b>expirationDate</b> ()
1534         *
1535     * <p>
1536     * <b>Definition:</b>
1537     * Date vaccine batch expires
1538     * </p> 
1539         */
1540        public Immunization setExpirationDate(DateDt theValue) {
1541                myExpirationDate = theValue;
1542                return this;
1543        }
1544        
1545        
1546
1547        /**
1548         * Sets the value for <b>expirationDate</b> ()
1549         *
1550     * <p>
1551     * <b>Definition:</b>
1552     * Date vaccine batch expires
1553     * </p> 
1554         */
1555        public Immunization setExpirationDateWithDayPrecision( Date theDate) {
1556                myExpirationDate = new DateDt(theDate); 
1557                return this; 
1558        }
1559
1560        /**
1561         * Sets the value for <b>expirationDate</b> ()
1562         *
1563     * <p>
1564     * <b>Definition:</b>
1565     * Date vaccine batch expires
1566     * </p> 
1567         */
1568        public Immunization setExpirationDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1569                myExpirationDate = new DateDt(theDate, thePrecision); 
1570                return this; 
1571        }
1572
1573 
1574        /**
1575         * Gets the value(s) for <b>site</b> ().
1576         * creating it if it does
1577         * not exist. Will not return <code>null</code>.
1578         *
1579     * <p>
1580     * <b>Definition:</b>
1581     * Body site where vaccine was administered
1582     * </p> 
1583         */
1584        public CodeableConceptDt getSite() {  
1585                if (mySite == null) {
1586                        mySite = new CodeableConceptDt();
1587                }
1588                return mySite;
1589        }
1590
1591        /**
1592         * Sets the value(s) for <b>site</b> ()
1593         *
1594     * <p>
1595     * <b>Definition:</b>
1596     * Body site where vaccine was administered
1597     * </p> 
1598         */
1599        public Immunization setSite(CodeableConceptDt theValue) {
1600                mySite = theValue;
1601                return this;
1602        }
1603        
1604        
1605
1606  
1607        /**
1608         * Gets the value(s) for <b>route</b> ().
1609         * creating it if it does
1610         * not exist. Will not return <code>null</code>.
1611         *
1612     * <p>
1613     * <b>Definition:</b>
1614     * The path by which the vaccine product is taken into the body.
1615     * </p> 
1616         */
1617        public CodeableConceptDt getRoute() {  
1618                if (myRoute == null) {
1619                        myRoute = new CodeableConceptDt();
1620                }
1621                return myRoute;
1622        }
1623
1624        /**
1625         * Sets the value(s) for <b>route</b> ()
1626         *
1627     * <p>
1628     * <b>Definition:</b>
1629     * The path by which the vaccine product is taken into the body.
1630     * </p> 
1631         */
1632        public Immunization setRoute(CodeableConceptDt theValue) {
1633                myRoute = theValue;
1634                return this;
1635        }
1636        
1637        
1638
1639  
1640        /**
1641         * Gets the value(s) for <b>doseQuantity</b> ().
1642         * creating it if it does
1643         * not exist. Will not return <code>null</code>.
1644         *
1645     * <p>
1646     * <b>Definition:</b>
1647     * The quantity of vaccine product that was administered
1648     * </p> 
1649         */
1650        public SimpleQuantityDt getDoseQuantity() {  
1651                if (myDoseQuantity == null) {
1652                        myDoseQuantity = new SimpleQuantityDt();
1653                }
1654                return myDoseQuantity;
1655        }
1656
1657        /**
1658         * Sets the value(s) for <b>doseQuantity</b> ()
1659         *
1660     * <p>
1661     * <b>Definition:</b>
1662     * The quantity of vaccine product that was administered
1663     * </p> 
1664         */
1665        public Immunization setDoseQuantity(SimpleQuantityDt theValue) {
1666                myDoseQuantity = theValue;
1667                return this;
1668        }
1669        
1670        
1671
1672  
1673        /**
1674         * Gets the value(s) for <b>note</b> ().
1675         * creating it if it does
1676         * not exist. Will not return <code>null</code>.
1677         *
1678     * <p>
1679     * <b>Definition:</b>
1680     * Extra information about the immunization that is not conveyed by the other attributes.
1681     * </p> 
1682         */
1683        public java.util.List<AnnotationDt> getNote() {  
1684                if (myNote == null) {
1685                        myNote = new java.util.ArrayList<AnnotationDt>();
1686                }
1687                return myNote;
1688        }
1689
1690        /**
1691         * Sets the value(s) for <b>note</b> ()
1692         *
1693     * <p>
1694     * <b>Definition:</b>
1695     * Extra information about the immunization that is not conveyed by the other attributes.
1696     * </p> 
1697         */
1698        public Immunization setNote(java.util.List<AnnotationDt> theValue) {
1699                myNote = theValue;
1700                return this;
1701        }
1702        
1703        
1704
1705        /**
1706         * Adds and returns a new value for <b>note</b> ()
1707         *
1708     * <p>
1709     * <b>Definition:</b>
1710     * Extra information about the immunization that is not conveyed by the other attributes.
1711     * </p> 
1712         */
1713        public AnnotationDt addNote() {
1714                AnnotationDt newType = new AnnotationDt();
1715                getNote().add(newType);
1716                return newType; 
1717        }
1718
1719        /**
1720         * Adds a given new value for <b>note</b> ()
1721         *
1722         * <p>
1723         * <b>Definition:</b>
1724         * Extra information about the immunization that is not conveyed by the other attributes.
1725         * </p>
1726         * @param theValue The note to add (must not be <code>null</code>)
1727         */
1728        public Immunization addNote(AnnotationDt theValue) {
1729                if (theValue == null) {
1730                        throw new NullPointerException("theValue must not be null");
1731                }
1732                getNote().add(theValue);
1733                return this;
1734        }
1735
1736        /**
1737         * Gets the first repetition for <b>note</b> (),
1738         * creating it if it does not already exist.
1739         *
1740     * <p>
1741     * <b>Definition:</b>
1742     * Extra information about the immunization that is not conveyed by the other attributes.
1743     * </p> 
1744         */
1745        public AnnotationDt getNoteFirstRep() {
1746                if (getNote().isEmpty()) {
1747                        return addNote();
1748                }
1749                return getNote().get(0); 
1750        }
1751  
1752        /**
1753         * Gets the value(s) for <b>explanation</b> ().
1754         * creating it if it does
1755         * not exist. Will not return <code>null</code>.
1756         *
1757     * <p>
1758     * <b>Definition:</b>
1759     * Reasons why a vaccine was or was not administered
1760     * </p> 
1761         */
1762        public Explanation getExplanation() {  
1763                if (myExplanation == null) {
1764                        myExplanation = new Explanation();
1765                }
1766                return myExplanation;
1767        }
1768
1769        /**
1770         * Sets the value(s) for <b>explanation</b> ()
1771         *
1772     * <p>
1773     * <b>Definition:</b>
1774     * Reasons why a vaccine was or was not administered
1775     * </p> 
1776         */
1777        public Immunization setExplanation(Explanation theValue) {
1778                myExplanation = theValue;
1779                return this;
1780        }
1781        
1782        
1783
1784  
1785        /**
1786         * Gets the value(s) for <b>reaction</b> ().
1787         * creating it if it does
1788         * not exist. Will not return <code>null</code>.
1789         *
1790     * <p>
1791     * <b>Definition:</b>
1792     * Categorical data indicating that an adverse event is associated in time to an immunization
1793     * </p> 
1794         */
1795        public java.util.List<Reaction> getReaction() {  
1796                if (myReaction == null) {
1797                        myReaction = new java.util.ArrayList<Reaction>();
1798                }
1799                return myReaction;
1800        }
1801
1802        /**
1803         * Sets the value(s) for <b>reaction</b> ()
1804         *
1805     * <p>
1806     * <b>Definition:</b>
1807     * Categorical data indicating that an adverse event is associated in time to an immunization
1808     * </p> 
1809         */
1810        public Immunization setReaction(java.util.List<Reaction> theValue) {
1811                myReaction = theValue;
1812                return this;
1813        }
1814        
1815        
1816
1817        /**
1818         * Adds and returns a new value for <b>reaction</b> ()
1819         *
1820     * <p>
1821     * <b>Definition:</b>
1822     * Categorical data indicating that an adverse event is associated in time to an immunization
1823     * </p> 
1824         */
1825        public Reaction addReaction() {
1826                Reaction newType = new Reaction();
1827                getReaction().add(newType);
1828                return newType; 
1829        }
1830
1831        /**
1832         * Adds a given new value for <b>reaction</b> ()
1833         *
1834         * <p>
1835         * <b>Definition:</b>
1836         * Categorical data indicating that an adverse event is associated in time to an immunization
1837         * </p>
1838         * @param theValue The reaction to add (must not be <code>null</code>)
1839         */
1840        public Immunization addReaction(Reaction theValue) {
1841                if (theValue == null) {
1842                        throw new NullPointerException("theValue must not be null");
1843                }
1844                getReaction().add(theValue);
1845                return this;
1846        }
1847
1848        /**
1849         * Gets the first repetition for <b>reaction</b> (),
1850         * creating it if it does not already exist.
1851         *
1852     * <p>
1853     * <b>Definition:</b>
1854     * Categorical data indicating that an adverse event is associated in time to an immunization
1855     * </p> 
1856         */
1857        public Reaction getReactionFirstRep() {
1858                if (getReaction().isEmpty()) {
1859                        return addReaction();
1860                }
1861                return getReaction().get(0); 
1862        }
1863  
1864        /**
1865         * Gets the value(s) for <b>vaccinationProtocol</b> ().
1866         * creating it if it does
1867         * not exist. Will not return <code>null</code>.
1868         *
1869     * <p>
1870     * <b>Definition:</b>
1871     * Contains information about the protocol(s) under which the vaccine was administered
1872     * </p> 
1873         */
1874        public java.util.List<VaccinationProtocol> getVaccinationProtocol() {  
1875                if (myVaccinationProtocol == null) {
1876                        myVaccinationProtocol = new java.util.ArrayList<VaccinationProtocol>();
1877                }
1878                return myVaccinationProtocol;
1879        }
1880
1881        /**
1882         * Sets the value(s) for <b>vaccinationProtocol</b> ()
1883         *
1884     * <p>
1885     * <b>Definition:</b>
1886     * Contains information about the protocol(s) under which the vaccine was administered
1887     * </p> 
1888         */
1889        public Immunization setVaccinationProtocol(java.util.List<VaccinationProtocol> theValue) {
1890                myVaccinationProtocol = theValue;
1891                return this;
1892        }
1893        
1894        
1895
1896        /**
1897         * Adds and returns a new value for <b>vaccinationProtocol</b> ()
1898         *
1899     * <p>
1900     * <b>Definition:</b>
1901     * Contains information about the protocol(s) under which the vaccine was administered
1902     * </p> 
1903         */
1904        public VaccinationProtocol addVaccinationProtocol() {
1905                VaccinationProtocol newType = new VaccinationProtocol();
1906                getVaccinationProtocol().add(newType);
1907                return newType; 
1908        }
1909
1910        /**
1911         * Adds a given new value for <b>vaccinationProtocol</b> ()
1912         *
1913         * <p>
1914         * <b>Definition:</b>
1915         * Contains information about the protocol(s) under which the vaccine was administered
1916         * </p>
1917         * @param theValue The vaccinationProtocol to add (must not be <code>null</code>)
1918         */
1919        public Immunization addVaccinationProtocol(VaccinationProtocol theValue) {
1920                if (theValue == null) {
1921                        throw new NullPointerException("theValue must not be null");
1922                }
1923                getVaccinationProtocol().add(theValue);
1924                return this;
1925        }
1926
1927        /**
1928         * Gets the first repetition for <b>vaccinationProtocol</b> (),
1929         * creating it if it does not already exist.
1930         *
1931     * <p>
1932     * <b>Definition:</b>
1933     * Contains information about the protocol(s) under which the vaccine was administered
1934     * </p> 
1935         */
1936        public VaccinationProtocol getVaccinationProtocolFirstRep() {
1937                if (getVaccinationProtocol().isEmpty()) {
1938                        return addVaccinationProtocol();
1939                }
1940                return getVaccinationProtocol().get(0); 
1941        }
1942  
1943        /**
1944         * Block class for child element: <b>Immunization.explanation</b> ()
1945         *
1946     * <p>
1947     * <b>Definition:</b>
1948     * Reasons why a vaccine was or was not administered
1949     * </p> 
1950         */
1951        @Block()        
1952        public static class Explanation 
1953            extends  BaseIdentifiableElement  
1954            implements IResourceBlock {
1955        
1956        @Child(name="reason", type=CodeableConceptDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
1957        @Description(
1958                shortDefinition="",
1959                formalDefinition="Reasons why a vaccine was administered"
1960        )
1961        private java.util.List<CodeableConceptDt> myReason;
1962        
1963        @Child(name="reasonNotGiven", type=CodeableConceptDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
1964        @Description(
1965                shortDefinition="",
1966                formalDefinition="Reason why a vaccine was not administered"
1967        )
1968        private java.util.List<CodeableConceptDt> myReasonNotGiven;
1969        
1970
1971        @Override
1972        public boolean isEmpty() {
1973                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myReason,  myReasonNotGiven);
1974        }
1975        
1976        @Override
1977        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1978                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myReason, myReasonNotGiven);
1979        }
1980
1981        /**
1982         * Gets the value(s) for <b>reason</b> ().
1983         * creating it if it does
1984         * not exist. Will not return <code>null</code>.
1985         *
1986     * <p>
1987     * <b>Definition:</b>
1988     * Reasons why a vaccine was administered
1989     * </p> 
1990         */
1991        public java.util.List<CodeableConceptDt> getReason() {  
1992                if (myReason == null) {
1993                        myReason = new java.util.ArrayList<CodeableConceptDt>();
1994                }
1995                return myReason;
1996        }
1997
1998        /**
1999         * Sets the value(s) for <b>reason</b> ()
2000         *
2001     * <p>
2002     * <b>Definition:</b>
2003     * Reasons why a vaccine was administered
2004     * </p> 
2005         */
2006        public Explanation setReason(java.util.List<CodeableConceptDt> theValue) {
2007                myReason = theValue;
2008                return this;
2009        }
2010        
2011        
2012
2013        /**
2014         * Adds and returns a new value for <b>reason</b> ()
2015         *
2016     * <p>
2017     * <b>Definition:</b>
2018     * Reasons why a vaccine was administered
2019     * </p> 
2020         */
2021        public CodeableConceptDt addReason() {
2022                CodeableConceptDt newType = new CodeableConceptDt();
2023                getReason().add(newType);
2024                return newType; 
2025        }
2026
2027        /**
2028         * Adds a given new value for <b>reason</b> ()
2029         *
2030         * <p>
2031         * <b>Definition:</b>
2032         * Reasons why a vaccine was administered
2033         * </p>
2034         * @param theValue The reason to add (must not be <code>null</code>)
2035         */
2036        public Explanation addReason(CodeableConceptDt theValue) {
2037                if (theValue == null) {
2038                        throw new NullPointerException("theValue must not be null");
2039                }
2040                getReason().add(theValue);
2041                return this;
2042        }
2043
2044        /**
2045         * Gets the first repetition for <b>reason</b> (),
2046         * creating it if it does not already exist.
2047         *
2048     * <p>
2049     * <b>Definition:</b>
2050     * Reasons why a vaccine was administered
2051     * </p> 
2052         */
2053        public CodeableConceptDt getReasonFirstRep() {
2054                if (getReason().isEmpty()) {
2055                        return addReason();
2056                }
2057                return getReason().get(0); 
2058        }
2059  
2060        /**
2061         * Gets the value(s) for <b>reasonNotGiven</b> ().
2062         * creating it if it does
2063         * not exist. Will not return <code>null</code>.
2064         *
2065     * <p>
2066     * <b>Definition:</b>
2067     * Reason why a vaccine was not administered
2068     * </p> 
2069         */
2070        public java.util.List<CodeableConceptDt> getReasonNotGiven() {  
2071                if (myReasonNotGiven == null) {
2072                        myReasonNotGiven = new java.util.ArrayList<CodeableConceptDt>();
2073                }
2074                return myReasonNotGiven;
2075        }
2076
2077        /**
2078         * Sets the value(s) for <b>reasonNotGiven</b> ()
2079         *
2080     * <p>
2081     * <b>Definition:</b>
2082     * Reason why a vaccine was not administered
2083     * </p> 
2084         */
2085        public Explanation setReasonNotGiven(java.util.List<CodeableConceptDt> theValue) {
2086                myReasonNotGiven = theValue;
2087                return this;
2088        }
2089        
2090        
2091
2092        /**
2093         * Adds and returns a new value for <b>reasonNotGiven</b> ()
2094         *
2095     * <p>
2096     * <b>Definition:</b>
2097     * Reason why a vaccine was not administered
2098     * </p> 
2099         */
2100        public CodeableConceptDt addReasonNotGiven() {
2101                CodeableConceptDt newType = new CodeableConceptDt();
2102                getReasonNotGiven().add(newType);
2103                return newType; 
2104        }
2105
2106        /**
2107         * Adds a given new value for <b>reasonNotGiven</b> ()
2108         *
2109         * <p>
2110         * <b>Definition:</b>
2111         * Reason why a vaccine was not administered
2112         * </p>
2113         * @param theValue The reasonNotGiven to add (must not be <code>null</code>)
2114         */
2115        public Explanation addReasonNotGiven(CodeableConceptDt theValue) {
2116                if (theValue == null) {
2117                        throw new NullPointerException("theValue must not be null");
2118                }
2119                getReasonNotGiven().add(theValue);
2120                return this;
2121        }
2122
2123        /**
2124         * Gets the first repetition for <b>reasonNotGiven</b> (),
2125         * creating it if it does not already exist.
2126         *
2127     * <p>
2128     * <b>Definition:</b>
2129     * Reason why a vaccine was not administered
2130     * </p> 
2131         */
2132        public CodeableConceptDt getReasonNotGivenFirstRep() {
2133                if (getReasonNotGiven().isEmpty()) {
2134                        return addReasonNotGiven();
2135                }
2136                return getReasonNotGiven().get(0); 
2137        }
2138  
2139
2140
2141        }
2142
2143
2144        /**
2145         * Block class for child element: <b>Immunization.reaction</b> ()
2146         *
2147     * <p>
2148     * <b>Definition:</b>
2149     * Categorical data indicating that an adverse event is associated in time to an immunization
2150     * </p> 
2151         */
2152        @Block()        
2153        public static class Reaction 
2154            extends  BaseIdentifiableElement  
2155            implements IResourceBlock {
2156        
2157        @Child(name="date", type=DateTimeDt.class, order=0, min=0, max=1, summary=false, modifier=false)        
2158        @Description(
2159                shortDefinition="",
2160                formalDefinition="Date of reaction to the immunization"
2161        )
2162        private DateTimeDt myDate;
2163        
2164        @Child(name="detail", order=1, min=0, max=1, summary=false, modifier=false, type={
2165                ca.uhn.fhir.model.dstu2.resource.Observation.class
2166        })
2167        @Description(
2168                shortDefinition="",
2169                formalDefinition="Details of the reaction"
2170        )
2171        private ResourceReferenceDt myDetail;
2172        
2173        @Child(name="reported", type=BooleanDt.class, order=2, min=0, max=1, summary=false, modifier=false)     
2174        @Description(
2175                shortDefinition="",
2176                formalDefinition="Self-reported indicator"
2177        )
2178        private BooleanDt myReported;
2179        
2180
2181        @Override
2182        public boolean isEmpty() {
2183                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myDate,  myDetail,  myReported);
2184        }
2185        
2186        @Override
2187        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2188                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myDate, myDetail, myReported);
2189        }
2190
2191        /**
2192         * Gets the value(s) for <b>date</b> ().
2193         * creating it if it does
2194         * not exist. Will not return <code>null</code>.
2195         *
2196     * <p>
2197     * <b>Definition:</b>
2198     * Date of reaction to the immunization
2199     * </p> 
2200         */
2201        public DateTimeDt getDateElement() {  
2202                if (myDate == null) {
2203                        myDate = new DateTimeDt();
2204                }
2205                return myDate;
2206        }
2207
2208        
2209        /**
2210         * Gets the value(s) for <b>date</b> ().
2211         * creating it if it does
2212         * not exist. This method may return <code>null</code>.
2213         *
2214     * <p>
2215     * <b>Definition:</b>
2216     * Date of reaction to the immunization
2217     * </p> 
2218         */
2219        public Date getDate() {  
2220                return getDateElement().getValue();
2221        }
2222
2223        /**
2224         * Sets the value(s) for <b>date</b> ()
2225         *
2226     * <p>
2227     * <b>Definition:</b>
2228     * Date of reaction to the immunization
2229     * </p> 
2230         */
2231        public Reaction setDate(DateTimeDt theValue) {
2232                myDate = theValue;
2233                return this;
2234        }
2235        
2236        
2237
2238        /**
2239         * Sets the value for <b>date</b> ()
2240         *
2241     * <p>
2242     * <b>Definition:</b>
2243     * Date of reaction to the immunization
2244     * </p> 
2245         */
2246        public Reaction setDateWithSecondsPrecision( Date theDate) {
2247                myDate = new DateTimeDt(theDate); 
2248                return this; 
2249        }
2250
2251        /**
2252         * Sets the value for <b>date</b> ()
2253         *
2254     * <p>
2255     * <b>Definition:</b>
2256     * Date of reaction to the immunization
2257     * </p> 
2258         */
2259        public Reaction setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
2260                myDate = new DateTimeDt(theDate, thePrecision); 
2261                return this; 
2262        }
2263
2264 
2265        /**
2266         * Gets the value(s) for <b>detail</b> ().
2267         * creating it if it does
2268         * not exist. Will not return <code>null</code>.
2269         *
2270     * <p>
2271     * <b>Definition:</b>
2272     * Details of the reaction
2273     * </p> 
2274         */
2275        public ResourceReferenceDt getDetail() {  
2276                if (myDetail == null) {
2277                        myDetail = new ResourceReferenceDt();
2278                }
2279                return myDetail;
2280        }
2281
2282        /**
2283         * Sets the value(s) for <b>detail</b> ()
2284         *
2285     * <p>
2286     * <b>Definition:</b>
2287     * Details of the reaction
2288     * </p> 
2289         */
2290        public Reaction setDetail(ResourceReferenceDt theValue) {
2291                myDetail = theValue;
2292                return this;
2293        }
2294        
2295        
2296
2297  
2298        /**
2299         * Gets the value(s) for <b>reported</b> ().
2300         * creating it if it does
2301         * not exist. Will not return <code>null</code>.
2302         *
2303     * <p>
2304     * <b>Definition:</b>
2305     * Self-reported indicator
2306     * </p> 
2307         */
2308        public BooleanDt getReportedElement() {  
2309                if (myReported == null) {
2310                        myReported = new BooleanDt();
2311                }
2312                return myReported;
2313        }
2314
2315        
2316        /**
2317         * Gets the value(s) for <b>reported</b> ().
2318         * creating it if it does
2319         * not exist. This method may return <code>null</code>.
2320         *
2321     * <p>
2322     * <b>Definition:</b>
2323     * Self-reported indicator
2324     * </p> 
2325         */
2326        public Boolean getReported() {  
2327                return getReportedElement().getValue();
2328        }
2329
2330        /**
2331         * Sets the value(s) for <b>reported</b> ()
2332         *
2333     * <p>
2334     * <b>Definition:</b>
2335     * Self-reported indicator
2336     * </p> 
2337         */
2338        public Reaction setReported(BooleanDt theValue) {
2339                myReported = theValue;
2340                return this;
2341        }
2342        
2343        
2344
2345        /**
2346         * Sets the value for <b>reported</b> ()
2347         *
2348     * <p>
2349     * <b>Definition:</b>
2350     * Self-reported indicator
2351     * </p> 
2352         */
2353        public Reaction setReported( boolean theBoolean) {
2354                myReported = new BooleanDt(theBoolean); 
2355                return this; 
2356        }
2357
2358 
2359
2360
2361        }
2362
2363
2364        /**
2365         * Block class for child element: <b>Immunization.vaccinationProtocol</b> ()
2366         *
2367     * <p>
2368     * <b>Definition:</b>
2369     * Contains information about the protocol(s) under which the vaccine was administered
2370     * </p> 
2371         */
2372        @Block()        
2373        public static class VaccinationProtocol 
2374            extends  BaseIdentifiableElement  
2375            implements IResourceBlock {
2376        
2377        @Child(name="doseSequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false)     
2378        @Description(
2379                shortDefinition="",
2380                formalDefinition="Nominal position in a series"
2381        )
2382        private PositiveIntDt myDoseSequence;
2383        
2384        @Child(name="description", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
2385        @Description(
2386                shortDefinition="",
2387                formalDefinition="Contains the description about the protocol under which the vaccine was administered"
2388        )
2389        private StringDt myDescription;
2390        
2391        @Child(name="authority", order=2, min=0, max=1, summary=false, modifier=false, type={
2392                ca.uhn.fhir.model.dstu2.resource.Organization.class
2393        })
2394        @Description(
2395                shortDefinition="",
2396                formalDefinition="Indicates the authority who published the protocol.  E.g. ACIP"
2397        )
2398        private ResourceReferenceDt myAuthority;
2399        
2400        @Child(name="series", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)        
2401        @Description(
2402                shortDefinition="",
2403                formalDefinition="One possible path to achieve presumed immunity against a disease - within the context of an authority"
2404        )
2405        private StringDt mySeries;
2406        
2407        @Child(name="seriesDoses", type=PositiveIntDt.class, order=4, min=0, max=1, summary=false, modifier=false)      
2408        @Description(
2409                shortDefinition="",
2410                formalDefinition="The recommended number of doses to achieve immunity."
2411        )
2412        private PositiveIntDt mySeriesDoses;
2413        
2414        @Child(name="targetDisease", type=CodeableConceptDt.class, order=5, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
2415        @Description(
2416                shortDefinition="",
2417                formalDefinition="The targeted disease"
2418        )
2419        private java.util.List<CodeableConceptDt> myTargetDisease;
2420        
2421        @Child(name="doseStatus", type=CodeableConceptDt.class, order=6, min=1, max=1, summary=false, modifier=false)   
2422        @Description(
2423                shortDefinition="",
2424                formalDefinition="Indicates if the immunization event should \"count\" against  the protocol."
2425        )
2426        private CodeableConceptDt myDoseStatus;
2427        
2428        @Child(name="doseStatusReason", type=CodeableConceptDt.class, order=7, min=0, max=1, summary=false, modifier=false)     
2429        @Description(
2430                shortDefinition="",
2431                formalDefinition="Provides an explanation as to why an immunization event should or should not count against the protocol."
2432        )
2433        private CodeableConceptDt myDoseStatusReason;
2434        
2435
2436        @Override
2437        public boolean isEmpty() {
2438                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myDoseSequence,  myDescription,  myAuthority,  mySeries,  mySeriesDoses,  myTargetDisease,  myDoseStatus,  myDoseStatusReason);
2439        }
2440        
2441        @Override
2442        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2443                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myDoseSequence, myDescription, myAuthority, mySeries, mySeriesDoses, myTargetDisease, myDoseStatus, myDoseStatusReason);
2444        }
2445
2446        /**
2447         * Gets the value(s) for <b>doseSequence</b> ().
2448         * creating it if it does
2449         * not exist. Will not return <code>null</code>.
2450         *
2451     * <p>
2452     * <b>Definition:</b>
2453     * Nominal position in a series
2454     * </p> 
2455         */
2456        public PositiveIntDt getDoseSequenceElement() {  
2457                if (myDoseSequence == null) {
2458                        myDoseSequence = new PositiveIntDt();
2459                }
2460                return myDoseSequence;
2461        }
2462
2463        
2464        /**
2465         * Gets the value(s) for <b>doseSequence</b> ().
2466         * creating it if it does
2467         * not exist. This method may return <code>null</code>.
2468         *
2469     * <p>
2470     * <b>Definition:</b>
2471     * Nominal position in a series
2472     * </p> 
2473         */
2474        public Integer getDoseSequence() {  
2475                return getDoseSequenceElement().getValue();
2476        }
2477
2478        /**
2479         * Sets the value(s) for <b>doseSequence</b> ()
2480         *
2481     * <p>
2482     * <b>Definition:</b>
2483     * Nominal position in a series
2484     * </p> 
2485         */
2486        public VaccinationProtocol setDoseSequence(PositiveIntDt theValue) {
2487                myDoseSequence = theValue;
2488                return this;
2489        }
2490        
2491        
2492
2493        /**
2494         * Sets the value for <b>doseSequence</b> ()
2495         *
2496     * <p>
2497     * <b>Definition:</b>
2498     * Nominal position in a series
2499     * </p> 
2500         */
2501        public VaccinationProtocol setDoseSequence( int theInteger) {
2502                myDoseSequence = new PositiveIntDt(theInteger); 
2503                return this; 
2504        }
2505
2506 
2507        /**
2508         * Gets the value(s) for <b>description</b> ().
2509         * creating it if it does
2510         * not exist. Will not return <code>null</code>.
2511         *
2512     * <p>
2513     * <b>Definition:</b>
2514     * Contains the description about the protocol under which the vaccine was administered
2515     * </p> 
2516         */
2517        public StringDt getDescriptionElement() {  
2518                if (myDescription == null) {
2519                        myDescription = new StringDt();
2520                }
2521                return myDescription;
2522        }
2523
2524        
2525        /**
2526         * Gets the value(s) for <b>description</b> ().
2527         * creating it if it does
2528         * not exist. This method may return <code>null</code>.
2529         *
2530     * <p>
2531     * <b>Definition:</b>
2532     * Contains the description about the protocol under which the vaccine was administered
2533     * </p> 
2534         */
2535        public String getDescription() {  
2536                return getDescriptionElement().getValue();
2537        }
2538
2539        /**
2540         * Sets the value(s) for <b>description</b> ()
2541         *
2542     * <p>
2543     * <b>Definition:</b>
2544     * Contains the description about the protocol under which the vaccine was administered
2545     * </p> 
2546         */
2547        public VaccinationProtocol setDescription(StringDt theValue) {
2548                myDescription = theValue;
2549                return this;
2550        }
2551        
2552        
2553
2554        /**
2555         * Sets the value for <b>description</b> ()
2556         *
2557     * <p>
2558     * <b>Definition:</b>
2559     * Contains the description about the protocol under which the vaccine was administered
2560     * </p> 
2561         */
2562        public VaccinationProtocol setDescription( String theString) {
2563                myDescription = new StringDt(theString); 
2564                return this; 
2565        }
2566
2567 
2568        /**
2569         * Gets the value(s) for <b>authority</b> ().
2570         * creating it if it does
2571         * not exist. Will not return <code>null</code>.
2572         *
2573     * <p>
2574     * <b>Definition:</b>
2575     * Indicates the authority who published the protocol.  E.g. ACIP
2576     * </p> 
2577         */
2578        public ResourceReferenceDt getAuthority() {  
2579                if (myAuthority == null) {
2580                        myAuthority = new ResourceReferenceDt();
2581                }
2582                return myAuthority;
2583        }
2584
2585        /**
2586         * Sets the value(s) for <b>authority</b> ()
2587         *
2588     * <p>
2589     * <b>Definition:</b>
2590     * Indicates the authority who published the protocol.  E.g. ACIP
2591     * </p> 
2592         */
2593        public VaccinationProtocol setAuthority(ResourceReferenceDt theValue) {
2594                myAuthority = theValue;
2595                return this;
2596        }
2597        
2598        
2599
2600  
2601        /**
2602         * Gets the value(s) for <b>series</b> ().
2603         * creating it if it does
2604         * not exist. Will not return <code>null</code>.
2605         *
2606     * <p>
2607     * <b>Definition:</b>
2608     * One possible path to achieve presumed immunity against a disease - within the context of an authority
2609     * </p> 
2610         */
2611        public StringDt getSeriesElement() {  
2612                if (mySeries == null) {
2613                        mySeries = new StringDt();
2614                }
2615                return mySeries;
2616        }
2617
2618        
2619        /**
2620         * Gets the value(s) for <b>series</b> ().
2621         * creating it if it does
2622         * not exist. This method may return <code>null</code>.
2623         *
2624     * <p>
2625     * <b>Definition:</b>
2626     * One possible path to achieve presumed immunity against a disease - within the context of an authority
2627     * </p> 
2628         */
2629        public String getSeries() {  
2630                return getSeriesElement().getValue();
2631        }
2632
2633        /**
2634         * Sets the value(s) for <b>series</b> ()
2635         *
2636     * <p>
2637     * <b>Definition:</b>
2638     * One possible path to achieve presumed immunity against a disease - within the context of an authority
2639     * </p> 
2640         */
2641        public VaccinationProtocol setSeries(StringDt theValue) {
2642                mySeries = theValue;
2643                return this;
2644        }
2645        
2646        
2647
2648        /**
2649         * Sets the value for <b>series</b> ()
2650         *
2651     * <p>
2652     * <b>Definition:</b>
2653     * One possible path to achieve presumed immunity against a disease - within the context of an authority
2654     * </p> 
2655         */
2656        public VaccinationProtocol setSeries( String theString) {
2657                mySeries = new StringDt(theString); 
2658                return this; 
2659        }
2660
2661 
2662        /**
2663         * Gets the value(s) for <b>seriesDoses</b> ().
2664         * creating it if it does
2665         * not exist. Will not return <code>null</code>.
2666         *
2667     * <p>
2668     * <b>Definition:</b>
2669     * The recommended number of doses to achieve immunity.
2670     * </p> 
2671         */
2672        public PositiveIntDt getSeriesDosesElement() {  
2673                if (mySeriesDoses == null) {
2674                        mySeriesDoses = new PositiveIntDt();
2675                }
2676                return mySeriesDoses;
2677        }
2678
2679        
2680        /**
2681         * Gets the value(s) for <b>seriesDoses</b> ().
2682         * creating it if it does
2683         * not exist. This method may return <code>null</code>.
2684         *
2685     * <p>
2686     * <b>Definition:</b>
2687     * The recommended number of doses to achieve immunity.
2688     * </p> 
2689         */
2690        public Integer getSeriesDoses() {  
2691                return getSeriesDosesElement().getValue();
2692        }
2693
2694        /**
2695         * Sets the value(s) for <b>seriesDoses</b> ()
2696         *
2697     * <p>
2698     * <b>Definition:</b>
2699     * The recommended number of doses to achieve immunity.
2700     * </p> 
2701         */
2702        public VaccinationProtocol setSeriesDoses(PositiveIntDt theValue) {
2703                mySeriesDoses = theValue;
2704                return this;
2705        }
2706        
2707        
2708
2709        /**
2710         * Sets the value for <b>seriesDoses</b> ()
2711         *
2712     * <p>
2713     * <b>Definition:</b>
2714     * The recommended number of doses to achieve immunity.
2715     * </p> 
2716         */
2717        public VaccinationProtocol setSeriesDoses( int theInteger) {
2718                mySeriesDoses = new PositiveIntDt(theInteger); 
2719                return this; 
2720        }
2721
2722 
2723        /**
2724         * Gets the value(s) for <b>targetDisease</b> ().
2725         * creating it if it does
2726         * not exist. Will not return <code>null</code>.
2727         *
2728     * <p>
2729     * <b>Definition:</b>
2730     * The targeted disease
2731     * </p> 
2732         */
2733        public java.util.List<CodeableConceptDt> getTargetDisease() {  
2734                if (myTargetDisease == null) {
2735                        myTargetDisease = new java.util.ArrayList<CodeableConceptDt>();
2736                }
2737                return myTargetDisease;
2738        }
2739
2740        /**
2741         * Sets the value(s) for <b>targetDisease</b> ()
2742         *
2743     * <p>
2744     * <b>Definition:</b>
2745     * The targeted disease
2746     * </p> 
2747         */
2748        public VaccinationProtocol setTargetDisease(java.util.List<CodeableConceptDt> theValue) {
2749                myTargetDisease = theValue;
2750                return this;
2751        }
2752        
2753        
2754
2755        /**
2756         * Adds and returns a new value for <b>targetDisease</b> ()
2757         *
2758     * <p>
2759     * <b>Definition:</b>
2760     * The targeted disease
2761     * </p> 
2762         */
2763        public CodeableConceptDt addTargetDisease() {
2764                CodeableConceptDt newType = new CodeableConceptDt();
2765                getTargetDisease().add(newType);
2766                return newType; 
2767        }
2768
2769        /**
2770         * Adds a given new value for <b>targetDisease</b> ()
2771         *
2772         * <p>
2773         * <b>Definition:</b>
2774         * The targeted disease
2775         * </p>
2776         * @param theValue The targetDisease to add (must not be <code>null</code>)
2777         */
2778        public VaccinationProtocol addTargetDisease(CodeableConceptDt theValue) {
2779                if (theValue == null) {
2780                        throw new NullPointerException("theValue must not be null");
2781                }
2782                getTargetDisease().add(theValue);
2783                return this;
2784        }
2785
2786        /**
2787         * Gets the first repetition for <b>targetDisease</b> (),
2788         * creating it if it does not already exist.
2789         *
2790     * <p>
2791     * <b>Definition:</b>
2792     * The targeted disease
2793     * </p> 
2794         */
2795        public CodeableConceptDt getTargetDiseaseFirstRep() {
2796                if (getTargetDisease().isEmpty()) {
2797                        return addTargetDisease();
2798                }
2799                return getTargetDisease().get(0); 
2800        }
2801  
2802        /**
2803         * Gets the value(s) for <b>doseStatus</b> ().
2804         * creating it if it does
2805         * not exist. Will not return <code>null</code>.
2806         *
2807     * <p>
2808     * <b>Definition:</b>
2809     * Indicates if the immunization event should \&quot;count\&quot; against  the protocol.
2810     * </p> 
2811         */
2812        public CodeableConceptDt getDoseStatus() {  
2813                if (myDoseStatus == null) {
2814                        myDoseStatus = new CodeableConceptDt();
2815                }
2816                return myDoseStatus;
2817        }
2818
2819        /**
2820         * Sets the value(s) for <b>doseStatus</b> ()
2821         *
2822     * <p>
2823     * <b>Definition:</b>
2824     * Indicates if the immunization event should \&quot;count\&quot; against  the protocol.
2825     * </p> 
2826         */
2827        public VaccinationProtocol setDoseStatus(CodeableConceptDt theValue) {
2828                myDoseStatus = theValue;
2829                return this;
2830        }
2831        
2832        
2833
2834  
2835        /**
2836         * Gets the value(s) for <b>doseStatusReason</b> ().
2837         * creating it if it does
2838         * not exist. Will not return <code>null</code>.
2839         *
2840     * <p>
2841     * <b>Definition:</b>
2842     * Provides an explanation as to why an immunization event should or should not count against the protocol.
2843     * </p> 
2844         */
2845        public CodeableConceptDt getDoseStatusReason() {  
2846                if (myDoseStatusReason == null) {
2847                        myDoseStatusReason = new CodeableConceptDt();
2848                }
2849                return myDoseStatusReason;
2850        }
2851
2852        /**
2853         * Sets the value(s) for <b>doseStatusReason</b> ()
2854         *
2855     * <p>
2856     * <b>Definition:</b>
2857     * Provides an explanation as to why an immunization event should or should not count against the protocol.
2858     * </p> 
2859         */
2860        public VaccinationProtocol setDoseStatusReason(CodeableConceptDt theValue) {
2861                myDoseStatusReason = theValue;
2862                return this;
2863        }
2864        
2865        
2866
2867  
2868
2869
2870        }
2871
2872
2873
2874
2875    @Override
2876    public String getResourceName() {
2877        return "Immunization";
2878    }
2879    
2880    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2881        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2882    }
2883
2884
2885}