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