001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
042import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
043import ca.uhn.fhir.model.dstu2.resource.Appointment;
044import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
045import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
048import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
049import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
057import ca.uhn.fhir.model.dstu2.resource.BodySite;
058import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
059import ca.uhn.fhir.model.dstu2.resource.CarePlan;
060import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
063import ca.uhn.fhir.model.dstu2.resource.Claim;
064import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
065import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
066import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
067import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
068import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
069import ca.uhn.fhir.model.dstu2.composite.CodingDt;
070import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
071import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
072import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
073import ca.uhn.fhir.model.dstu2.resource.Composition;
074import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
075import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
076import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
077import ca.uhn.fhir.model.dstu2.resource.Condition;
078import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
079import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
082import ca.uhn.fhir.model.dstu2.resource.Conformance;
083import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
085import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
086import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
087import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
088import ca.uhn.fhir.model.dstu2.resource.Contract;
089import ca.uhn.fhir.model.dstu2.resource.Coverage;
090import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
091import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
092import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
093import ca.uhn.fhir.model.dstu2.resource.Device;
094import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
095import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
096import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
097import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
098import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
101import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
102import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
103import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
105import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
106import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
108import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
109import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
110import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
111import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
112import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
113import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
114import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
115import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
116import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
117import ca.uhn.fhir.model.dstu2.resource.Encounter;
118import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
119import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
120import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
121import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
122import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
123import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
124import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
125import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
126import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
127import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
128import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
129import ca.uhn.fhir.model.dstu2.resource.Goal;
130import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
131import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
132import ca.uhn.fhir.model.dstu2.resource.Group;
133import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
134import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
135import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
136import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
137import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
138import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
139import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
140import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
141import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
143import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
144import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
145import ca.uhn.fhir.model.dstu2.resource.Immunization;
146import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
147import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
148import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
149import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
150import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
152import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
153import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
154import ca.uhn.fhir.model.dstu2.resource.Location;
155import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
156import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
157import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
158import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
159import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
160import ca.uhn.fhir.model.dstu2.resource.Media;
161import ca.uhn.fhir.model.dstu2.resource.Medication;
162import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
163import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
164import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
165import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
166import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
167import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
168import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
169import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
170import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
171import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
172import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
175import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
176import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
177import ca.uhn.fhir.model.dstu2.resource.Observation;
178import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
179import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
180import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
181import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
182import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
183import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
184import ca.uhn.fhir.model.dstu2.resource.Order;
185import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.Organization;
187import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
188import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
189import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
190import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
191import ca.uhn.fhir.model.dstu2.resource.Patient;
192import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
193import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
194import ca.uhn.fhir.model.dstu2.resource.Person;
195import ca.uhn.fhir.model.dstu2.resource.Practitioner;
196import ca.uhn.fhir.model.dstu2.resource.Procedure;
197import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
198import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
199import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
200import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
201import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
202import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
203import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
204import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
205import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
206import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
207import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
208import ca.uhn.fhir.model.dstu2.composite.RangeDt;
209import ca.uhn.fhir.model.dstu2.composite.RatioDt;
210import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
211import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
212import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
213import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
214import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
216import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
217import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
218import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
219import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
220import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
221import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
222import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
223import ca.uhn.fhir.model.dstu2.resource.Schedule;
224import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
225import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
226import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
227import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
228import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
229import ca.uhn.fhir.model.dstu2.resource.Slot;
230import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.Specimen;
232import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
233import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
234import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
235import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
236import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
237import ca.uhn.fhir.model.dstu2.resource.Substance;
238import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
239import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
240import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
241import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
242import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
243import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
244import ca.uhn.fhir.model.dstu2.composite.TimingDt;
245import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
247import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
249import ca.uhn.fhir.model.dstu2.resource.ValueSet;
250import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
251import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
252import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
253import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
254import ca.uhn.fhir.model.api.IResource;
255import ca.uhn.fhir.model.dstu2.composite.AgeDt;
256import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
257import ca.uhn.fhir.model.dstu2.composite.DurationDt;
258import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
259import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
260import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
261import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
262import ca.uhn.fhir.model.primitive.Base64BinaryDt;
263import ca.uhn.fhir.model.primitive.BooleanDt;
264import ca.uhn.fhir.model.primitive.BoundCodeDt;
265import ca.uhn.fhir.model.primitive.CodeDt;
266import ca.uhn.fhir.model.primitive.DateDt;
267import ca.uhn.fhir.model.primitive.DateTimeDt;
268import ca.uhn.fhir.model.primitive.DecimalDt;
269import ca.uhn.fhir.model.primitive.IdDt;
270import ca.uhn.fhir.model.primitive.InstantDt;
271import ca.uhn.fhir.model.primitive.IntegerDt;
272import ca.uhn.fhir.model.primitive.OidDt;
273import ca.uhn.fhir.model.primitive.PositiveIntDt;
274import ca.uhn.fhir.model.primitive.StringDt;
275import ca.uhn.fhir.model.primitive.TimeDt;
276import ca.uhn.fhir.model.primitive.UnsignedIntDt;
277import ca.uhn.fhir.model.primitive.UriDt;
278
279
280/**
281 * HAPI/FHIR <b>AllergyIntolerance</b> Resource
282 * ()
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance.
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * To record a clinical assessment of a propensity, or potential risk to an individual, of an adverse reaction upon future exposure to the specified substance, or class of substance.
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/AllergyIntolerance">http://hl7.org/fhir/profiles/AllergyIntolerance</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="AllergyIntolerance", profile="http://hl7.org/fhir/profiles/AllergyIntolerance", id="allergyintolerance")
301public class AllergyIntolerance extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource 
303    {
304
305        /**
306         * Search parameter constant for <b>substance</b>
307         * <p>
308         * Description: <b></b><br>
309         * Type: <b>token</b><br>
310         * Path: <b>AllergyIntolerance.substance | AllergyIntolerance.reaction.substance</b><br>
311         * </p>
312         */
313        @SearchParamDefinition(name="substance", path="AllergyIntolerance.substance | AllergyIntolerance.reaction.substance", description="", type="token" 
314 )
315        public static final String SP_SUBSTANCE = "substance";
316
317        /**
318         * <b>Fluent Client</b> search parameter constant for <b>substance</b>
319         * <p>
320         * Description: <b></b><br>
321         * Type: <b>token</b><br>
322         * Path: <b>AllergyIntolerance.substance | AllergyIntolerance.reaction.substance</b><br>
323         * </p>
324         */
325        public static final TokenClientParam SUBSTANCE = new TokenClientParam(SP_SUBSTANCE);
326
327        /**
328         * Search parameter constant for <b>status</b>
329         * <p>
330         * Description: <b></b><br>
331         * Type: <b>token</b><br>
332         * Path: <b>AllergyIntolerance.status</b><br>
333         * </p>
334         */
335        @SearchParamDefinition(name="status", path="AllergyIntolerance.status", description="", type="token" 
336 )
337        public static final String SP_STATUS = "status";
338
339        /**
340         * <b>Fluent Client</b> search parameter constant for <b>status</b>
341         * <p>
342         * Description: <b></b><br>
343         * Type: <b>token</b><br>
344         * Path: <b>AllergyIntolerance.status</b><br>
345         * </p>
346         */
347        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
348
349        /**
350         * Search parameter constant for <b>criticality</b>
351         * <p>
352         * Description: <b></b><br>
353         * Type: <b>token</b><br>
354         * Path: <b>AllergyIntolerance.criticality</b><br>
355         * </p>
356         */
357        @SearchParamDefinition(name="criticality", path="AllergyIntolerance.criticality", description="", type="token" 
358 )
359        public static final String SP_CRITICALITY = "criticality";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>criticality</b>
363         * <p>
364         * Description: <b></b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>AllergyIntolerance.criticality</b><br>
367         * </p>
368         */
369        public static final TokenClientParam CRITICALITY = new TokenClientParam(SP_CRITICALITY);
370
371        /**
372         * Search parameter constant for <b>type</b>
373         * <p>
374         * Description: <b></b><br>
375         * Type: <b>token</b><br>
376         * Path: <b>AllergyIntolerance.type</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="type", path="AllergyIntolerance.type", description="", type="token" 
380 )
381        public static final String SP_TYPE = "type";
382
383        /**
384         * <b>Fluent Client</b> search parameter constant for <b>type</b>
385         * <p>
386         * Description: <b></b><br>
387         * Type: <b>token</b><br>
388         * Path: <b>AllergyIntolerance.type</b><br>
389         * </p>
390         */
391        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
392
393        /**
394         * Search parameter constant for <b>category</b>
395         * <p>
396         * Description: <b></b><br>
397         * Type: <b>token</b><br>
398         * Path: <b>AllergyIntolerance.category</b><br>
399         * </p>
400         */
401        @SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="", type="token" 
402 )
403        public static final String SP_CATEGORY = "category";
404
405        /**
406         * <b>Fluent Client</b> search parameter constant for <b>category</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>AllergyIntolerance.category</b><br>
411         * </p>
412         */
413        public static final TokenClientParam CATEGORY = new TokenClientParam(SP_CATEGORY);
414
415        /**
416         * Search parameter constant for <b>last-date</b>
417         * <p>
418         * Description: <b></b><br>
419         * Type: <b>date</b><br>
420         * Path: <b>AllergyIntolerance.lastOccurence</b><br>
421         * </p>
422         */
423        @SearchParamDefinition(name="last-date", path="AllergyIntolerance.lastOccurence", description="", type="date" 
424 )
425        public static final String SP_LAST_DATE = "last-date";
426
427        /**
428         * <b>Fluent Client</b> search parameter constant for <b>last-date</b>
429         * <p>
430         * Description: <b></b><br>
431         * Type: <b>date</b><br>
432         * Path: <b>AllergyIntolerance.lastOccurence</b><br>
433         * </p>
434         */
435        public static final DateClientParam LAST_DATE = new DateClientParam(SP_LAST_DATE);
436
437        /**
438         * Search parameter constant for <b>manifestation</b>
439         * <p>
440         * Description: <b></b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>AllergyIntolerance.reaction.manifestation</b><br>
443         * </p>
444         */
445        @SearchParamDefinition(name="manifestation", path="AllergyIntolerance.reaction.manifestation", description="", type="token" 
446 )
447        public static final String SP_MANIFESTATION = "manifestation";
448
449        /**
450         * <b>Fluent Client</b> search parameter constant for <b>manifestation</b>
451         * <p>
452         * Description: <b></b><br>
453         * Type: <b>token</b><br>
454         * Path: <b>AllergyIntolerance.reaction.manifestation</b><br>
455         * </p>
456         */
457        public static final TokenClientParam MANIFESTATION = new TokenClientParam(SP_MANIFESTATION);
458
459        /**
460         * Search parameter constant for <b>onset</b>
461         * <p>
462         * Description: <b></b><br>
463         * Type: <b>date</b><br>
464         * Path: <b>AllergyIntolerance.reaction.onset</b><br>
465         * </p>
466         */
467        @SearchParamDefinition(name="onset", path="AllergyIntolerance.reaction.onset", description="", type="date" 
468 )
469        public static final String SP_ONSET = "onset";
470
471        /**
472         * <b>Fluent Client</b> search parameter constant for <b>onset</b>
473         * <p>
474         * Description: <b></b><br>
475         * Type: <b>date</b><br>
476         * Path: <b>AllergyIntolerance.reaction.onset</b><br>
477         * </p>
478         */
479        public static final DateClientParam ONSET = new DateClientParam(SP_ONSET);
480
481        /**
482         * Search parameter constant for <b>severity</b>
483         * <p>
484         * Description: <b></b><br>
485         * Type: <b>token</b><br>
486         * Path: <b>AllergyIntolerance.reaction.severity</b><br>
487         * </p>
488         */
489        @SearchParamDefinition(name="severity", path="AllergyIntolerance.reaction.severity", description="", type="token" 
490 )
491        public static final String SP_SEVERITY = "severity";
492
493        /**
494         * <b>Fluent Client</b> search parameter constant for <b>severity</b>
495         * <p>
496         * Description: <b></b><br>
497         * Type: <b>token</b><br>
498         * Path: <b>AllergyIntolerance.reaction.severity</b><br>
499         * </p>
500         */
501        public static final TokenClientParam SEVERITY = new TokenClientParam(SP_SEVERITY);
502
503        /**
504         * Search parameter constant for <b>route</b>
505         * <p>
506         * Description: <b></b><br>
507         * Type: <b>token</b><br>
508         * Path: <b>AllergyIntolerance.reaction.exposureRoute</b><br>
509         * </p>
510         */
511        @SearchParamDefinition(name="route", path="AllergyIntolerance.reaction.exposureRoute", description="", type="token" 
512 )
513        public static final String SP_ROUTE = "route";
514
515        /**
516         * <b>Fluent Client</b> search parameter constant for <b>route</b>
517         * <p>
518         * Description: <b></b><br>
519         * Type: <b>token</b><br>
520         * Path: <b>AllergyIntolerance.reaction.exposureRoute</b><br>
521         * </p>
522         */
523        public static final TokenClientParam ROUTE = new TokenClientParam(SP_ROUTE);
524
525        /**
526         * Search parameter constant for <b>identifier</b>
527         * <p>
528         * Description: <b></b><br>
529         * Type: <b>token</b><br>
530         * Path: <b>AllergyIntolerance.identifier</b><br>
531         * </p>
532         */
533        @SearchParamDefinition(name="identifier", path="AllergyIntolerance.identifier", description="", type="token" 
534 )
535        public static final String SP_IDENTIFIER = "identifier";
536
537        /**
538         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
539         * <p>
540         * Description: <b></b><br>
541         * Type: <b>token</b><br>
542         * Path: <b>AllergyIntolerance.identifier</b><br>
543         * </p>
544         */
545        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
546
547        /**
548         * Search parameter constant for <b>date</b>
549         * <p>
550         * Description: <b></b><br>
551         * Type: <b>date</b><br>
552         * Path: <b>AllergyIntolerance.recordedDate</b><br>
553         * </p>
554         */
555        @SearchParamDefinition(name="date", path="AllergyIntolerance.recordedDate", description="", type="date" 
556 )
557        public static final String SP_DATE = "date";
558
559        /**
560         * <b>Fluent Client</b> search parameter constant for <b>date</b>
561         * <p>
562         * Description: <b></b><br>
563         * Type: <b>date</b><br>
564         * Path: <b>AllergyIntolerance.recordedDate</b><br>
565         * </p>
566         */
567        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
568
569        /**
570         * Search parameter constant for <b>recorder</b>
571         * <p>
572         * Description: <b></b><br>
573         * Type: <b>reference</b><br>
574         * Path: <b>AllergyIntolerance.recorder</b><br>
575         * </p>
576         */
577        @SearchParamDefinition(name="recorder", path="AllergyIntolerance.recorder", description="", type="reference" 
578, providesMembershipIn={
579 @Compartment(name="Patient") ,  @Compartment(name="RelatedPerson")     }
580 )
581        public static final String SP_RECORDER = "recorder";
582
583        /**
584         * <b>Fluent Client</b> search parameter constant for <b>recorder</b>
585         * <p>
586         * Description: <b></b><br>
587         * Type: <b>reference</b><br>
588         * Path: <b>AllergyIntolerance.recorder</b><br>
589         * </p>
590         */
591        public static final ReferenceClientParam RECORDER = new ReferenceClientParam(SP_RECORDER);
592
593        /**
594         * Search parameter constant for <b>patient</b>
595         * <p>
596         * Description: <b></b><br>
597         * Type: <b>reference</b><br>
598         * Path: <b>AllergyIntolerance.patient</b><br>
599         * </p>
600         */
601        @SearchParamDefinition(name="patient", path="AllergyIntolerance.patient", description="", type="reference" 
602, providesMembershipIn={
603 @Compartment(name="Patient")   }
604 )
605        public static final String SP_PATIENT = "patient";
606
607        /**
608         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
609         * <p>
610         * Description: <b></b><br>
611         * Type: <b>reference</b><br>
612         * Path: <b>AllergyIntolerance.patient</b><br>
613         * </p>
614         */
615        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
616
617        /**
618         * Search parameter constant for <b>reporter</b>
619         * <p>
620         * Description: <b></b><br>
621         * Type: <b>reference</b><br>
622         * Path: <b>AllergyIntolerance.reporter</b><br>
623         * </p>
624         */
625        @SearchParamDefinition(name="reporter", path="AllergyIntolerance.reporter", description="", type="reference" 
626, providesMembershipIn={
627 @Compartment(name="Patient") ,  @Compartment(name="Encounter") ,  @Compartment(name="RelatedPerson")   }
628 )
629        public static final String SP_REPORTER = "reporter";
630
631        /**
632         * <b>Fluent Client</b> search parameter constant for <b>reporter</b>
633         * <p>
634         * Description: <b></b><br>
635         * Type: <b>reference</b><br>
636         * Path: <b>AllergyIntolerance.reporter</b><br>
637         * </p>
638         */
639        public static final ReferenceClientParam REPORTER = new ReferenceClientParam(SP_REPORTER);
640
641
642        /**
643         * Constant for fluent queries to be used to add include statements. Specifies
644         * the path value of "<b>AllergyIntolerance:patient</b>".
645         */
646        public static final Include INCLUDE_PATIENT = new Include("AllergyIntolerance:patient");
647
648        /**
649         * Constant for fluent queries to be used to add include statements. Specifies
650         * the path value of "<b>AllergyIntolerance:recorder</b>".
651         */
652        public static final Include INCLUDE_RECORDER = new Include("AllergyIntolerance:recorder");
653
654        /**
655         * Constant for fluent queries to be used to add include statements. Specifies
656         * the path value of "<b>AllergyIntolerance:reporter</b>".
657         */
658        public static final Include INCLUDE_REPORTER = new Include("AllergyIntolerance:reporter");
659
660
661        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
662        @Description(
663                shortDefinition="",
664                formalDefinition="This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)"
665        )
666        private java.util.List<IdentifierDt> myIdentifier;
667        
668        @Child(name="onset", type=DateTimeDt.class, order=1, min=0, max=1, summary=true, modifier=false)        
669        @Description(
670                shortDefinition="",
671                formalDefinition="Record of the date and/or time of the onset of the Allergy or Intolerance"
672        )
673        private DateTimeDt myOnset;
674        
675        @Child(name="recordedDate", type=DateTimeDt.class, order=2, min=0, max=1, summary=true, modifier=false) 
676        @Description(
677                shortDefinition="",
678                formalDefinition="Date when the sensitivity was recorded"
679        )
680        private DateTimeDt myRecordedDate;
681        
682        @Child(name="recorder", order=3, min=0, max=1, summary=true, modifier=false, type={
683                ca.uhn.fhir.model.dstu2.resource.Practitioner.class, 
684                ca.uhn.fhir.model.dstu2.resource.Patient.class
685        })
686        @Description(
687                shortDefinition="",
688                formalDefinition="Individual who recorded the record and takes responsibility for its conten"
689        )
690        private ResourceReferenceDt myRecorder;
691        
692        @Child(name="patient", order=4, min=1, max=1, summary=true, modifier=false, type={
693                ca.uhn.fhir.model.dstu2.resource.Patient.class
694        })
695        @Description(
696                shortDefinition="",
697                formalDefinition="The patient who has the allergy or intolerance"
698        )
699        private ResourceReferenceDt myPatient;
700        
701        @Child(name="reporter", order=5, min=0, max=1, summary=true, modifier=false, type={
702                ca.uhn.fhir.model.dstu2.resource.Patient.class, 
703                ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class, 
704                ca.uhn.fhir.model.dstu2.resource.Practitioner.class
705        })
706        @Description(
707                shortDefinition="",
708                formalDefinition="The source of the information about the allergy that is recorded"
709        )
710        private ResourceReferenceDt myReporter;
711        
712        @Child(name="substance", type=CodeableConceptDt.class, order=6, min=1, max=1, summary=true, modifier=false)     
713        @Description(
714                shortDefinition="",
715                formalDefinition="Identification of a substance, or a class of substances, that is considered to be responsible for the adverse reaction risk"
716        )
717        private CodeableConceptDt mySubstance;
718        
719        @Child(name="status", type=CodeDt.class, order=7, min=0, max=1, summary=true, modifier=true)    
720        @Description(
721                shortDefinition="",
722                formalDefinition="Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance"
723        )
724        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/allergy-intolerance-status")
725        private BoundCodeDt<AllergyIntoleranceStatusEnum> myStatus;
726        
727        @Child(name="criticality", type=CodeDt.class, order=8, min=0, max=1, summary=true, modifier=false)      
728        @Description(
729                shortDefinition="",
730                formalDefinition="Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance"
731        )
732        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/allergy-intolerance-criticality")
733        private BoundCodeDt<AllergyIntoleranceCriticalityEnum> myCriticality;
734        
735        @Child(name="type", type=CodeDt.class, order=9, min=0, max=1, summary=true, modifier=false)     
736        @Description(
737                shortDefinition="",
738                formalDefinition="Identification of the underlying physiological mechanism for the reaction risk."
739        )
740        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/allergy-intolerance-type")
741        private BoundCodeDt<AllergyIntoleranceTypeEnum> myType;
742        
743        @Child(name="category", type=CodeDt.class, order=10, min=0, max=1, summary=true, modifier=false)        
744        @Description(
745                shortDefinition="",
746                formalDefinition="Category of the identified Substance"
747        )
748        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/allergy-intolerance-category")
749        private BoundCodeDt<AllergyIntoleranceCategoryEnum> myCategory;
750        
751        @Child(name="lastOccurence", type=DateTimeDt.class, order=11, min=0, max=1, summary=true, modifier=false)       
752        @Description(
753                shortDefinition="",
754                formalDefinition="Represents the date and/or time of the last known occurrence of a reaction event"
755        )
756        private DateTimeDt myLastOccurence;
757        
758        @Child(name="note", type=AnnotationDt.class, order=12, min=0, max=1, summary=false, modifier=false)     
759        @Description(
760                shortDefinition="",
761                formalDefinition="Additional narrative about the propensity for the Adverse Reaction, not captured in other fields."
762        )
763        private AnnotationDt myNote;
764        
765        @Child(name="reaction", order=13, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
766        @Description(
767                shortDefinition="",
768                formalDefinition="Details about each adverse reaction event linked to exposure to the identified Substance"
769        )
770        private java.util.List<Reaction> myReaction;
771        
772
773        @Override
774        public boolean isEmpty() {
775                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myOnset,  myRecordedDate,  myRecorder,  myPatient,  myReporter,  mySubstance,  myStatus,  myCriticality,  myType,  myCategory,  myLastOccurence,  myNote,  myReaction);
776        }
777        
778        @Override
779        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
780                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myOnset, myRecordedDate, myRecorder, myPatient, myReporter, mySubstance, myStatus, myCriticality, myType, myCategory, myLastOccurence, myNote, myReaction);
781        }
782
783        /**
784         * Gets the value(s) for <b>identifier</b> ().
785         * creating it if it does
786         * not exist. Will not return <code>null</code>.
787         *
788     * <p>
789     * <b>Definition:</b>
790     * This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
791     * </p> 
792         */
793        public java.util.List<IdentifierDt> getIdentifier() {  
794                if (myIdentifier == null) {
795                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
796                }
797                return myIdentifier;
798        }
799
800        /**
801         * Sets the value(s) for <b>identifier</b> ()
802         *
803     * <p>
804     * <b>Definition:</b>
805     * This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
806     * </p> 
807         */
808        public AllergyIntolerance setIdentifier(java.util.List<IdentifierDt> theValue) {
809                myIdentifier = theValue;
810                return this;
811        }
812        
813        
814
815        /**
816         * Adds and returns a new value for <b>identifier</b> ()
817         *
818     * <p>
819     * <b>Definition:</b>
820     * This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
821     * </p> 
822         */
823        public IdentifierDt addIdentifier() {
824                IdentifierDt newType = new IdentifierDt();
825                getIdentifier().add(newType);
826                return newType; 
827        }
828
829        /**
830         * Adds a given new value for <b>identifier</b> ()
831         *
832         * <p>
833         * <b>Definition:</b>
834         * This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
835         * </p>
836         * @param theValue The identifier to add (must not be <code>null</code>)
837         */
838        public AllergyIntolerance addIdentifier(IdentifierDt theValue) {
839                if (theValue == null) {
840                        throw new NullPointerException("theValue must not be null");
841                }
842                getIdentifier().add(theValue);
843                return this;
844        }
845
846        /**
847         * Gets the first repetition for <b>identifier</b> (),
848         * creating it if it does not already exist.
849         *
850     * <p>
851     * <b>Definition:</b>
852     * This records identifiers associated with this allergy/intolerance concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
853     * </p> 
854         */
855        public IdentifierDt getIdentifierFirstRep() {
856                if (getIdentifier().isEmpty()) {
857                        return addIdentifier();
858                }
859                return getIdentifier().get(0); 
860        }
861  
862        /**
863         * Gets the value(s) for <b>onset</b> ().
864         * creating it if it does
865         * not exist. Will not return <code>null</code>.
866         *
867     * <p>
868     * <b>Definition:</b>
869     * Record of the date and/or time of the onset of the Allergy or Intolerance
870     * </p> 
871         */
872        public DateTimeDt getOnsetElement() {  
873                if (myOnset == null) {
874                        myOnset = new DateTimeDt();
875                }
876                return myOnset;
877        }
878
879        
880        /**
881         * Gets the value(s) for <b>onset</b> ().
882         * creating it if it does
883         * not exist. This method may return <code>null</code>.
884         *
885     * <p>
886     * <b>Definition:</b>
887     * Record of the date and/or time of the onset of the Allergy or Intolerance
888     * </p> 
889         */
890        public Date getOnset() {  
891                return getOnsetElement().getValue();
892        }
893
894        /**
895         * Sets the value(s) for <b>onset</b> ()
896         *
897     * <p>
898     * <b>Definition:</b>
899     * Record of the date and/or time of the onset of the Allergy or Intolerance
900     * </p> 
901         */
902        public AllergyIntolerance setOnset(DateTimeDt theValue) {
903                myOnset = theValue;
904                return this;
905        }
906        
907        
908
909        /**
910         * Sets the value for <b>onset</b> ()
911         *
912     * <p>
913     * <b>Definition:</b>
914     * Record of the date and/or time of the onset of the Allergy or Intolerance
915     * </p> 
916         */
917        public AllergyIntolerance setOnsetWithSecondsPrecision( Date theDate) {
918                myOnset = new DateTimeDt(theDate); 
919                return this; 
920        }
921
922        /**
923         * Sets the value for <b>onset</b> ()
924         *
925     * <p>
926     * <b>Definition:</b>
927     * Record of the date and/or time of the onset of the Allergy or Intolerance
928     * </p> 
929         */
930        public AllergyIntolerance setOnset( Date theDate,  TemporalPrecisionEnum thePrecision) {
931                myOnset = new DateTimeDt(theDate, thePrecision); 
932                return this; 
933        }
934
935 
936        /**
937         * Gets the value(s) for <b>recordedDate</b> ().
938         * creating it if it does
939         * not exist. Will not return <code>null</code>.
940         *
941     * <p>
942     * <b>Definition:</b>
943     * Date when the sensitivity was recorded
944     * </p> 
945         */
946        public DateTimeDt getRecordedDateElement() {  
947                if (myRecordedDate == null) {
948                        myRecordedDate = new DateTimeDt();
949                }
950                return myRecordedDate;
951        }
952
953        
954        /**
955         * Gets the value(s) for <b>recordedDate</b> ().
956         * creating it if it does
957         * not exist. This method may return <code>null</code>.
958         *
959     * <p>
960     * <b>Definition:</b>
961     * Date when the sensitivity was recorded
962     * </p> 
963         */
964        public Date getRecordedDate() {  
965                return getRecordedDateElement().getValue();
966        }
967
968        /**
969         * Sets the value(s) for <b>recordedDate</b> ()
970         *
971     * <p>
972     * <b>Definition:</b>
973     * Date when the sensitivity was recorded
974     * </p> 
975         */
976        public AllergyIntolerance setRecordedDate(DateTimeDt theValue) {
977                myRecordedDate = theValue;
978                return this;
979        }
980        
981        
982
983        /**
984         * Sets the value for <b>recordedDate</b> ()
985         *
986     * <p>
987     * <b>Definition:</b>
988     * Date when the sensitivity was recorded
989     * </p> 
990         */
991        public AllergyIntolerance setRecordedDateWithSecondsPrecision( Date theDate) {
992                myRecordedDate = new DateTimeDt(theDate); 
993                return this; 
994        }
995
996        /**
997         * Sets the value for <b>recordedDate</b> ()
998         *
999     * <p>
1000     * <b>Definition:</b>
1001     * Date when the sensitivity was recorded
1002     * </p> 
1003         */
1004        public AllergyIntolerance setRecordedDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1005                myRecordedDate = new DateTimeDt(theDate, thePrecision); 
1006                return this; 
1007        }
1008
1009 
1010        /**
1011         * Gets the value(s) for <b>recorder</b> ().
1012         * creating it if it does
1013         * not exist. Will not return <code>null</code>.
1014         *
1015     * <p>
1016     * <b>Definition:</b>
1017     * Individual who recorded the record and takes responsibility for its conten
1018     * </p> 
1019         */
1020        public ResourceReferenceDt getRecorder() {  
1021                if (myRecorder == null) {
1022                        myRecorder = new ResourceReferenceDt();
1023                }
1024                return myRecorder;
1025        }
1026
1027        /**
1028         * Sets the value(s) for <b>recorder</b> ()
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * Individual who recorded the record and takes responsibility for its conten
1033     * </p> 
1034         */
1035        public AllergyIntolerance setRecorder(ResourceReferenceDt theValue) {
1036                myRecorder = theValue;
1037                return this;
1038        }
1039        
1040        
1041
1042  
1043        /**
1044         * Gets the value(s) for <b>patient</b> ().
1045         * creating it if it does
1046         * not exist. Will not return <code>null</code>.
1047         *
1048     * <p>
1049     * <b>Definition:</b>
1050     * The patient who has the allergy or intolerance
1051     * </p> 
1052         */
1053        public ResourceReferenceDt getPatient() {  
1054                if (myPatient == null) {
1055                        myPatient = new ResourceReferenceDt();
1056                }
1057                return myPatient;
1058        }
1059
1060        /**
1061         * Sets the value(s) for <b>patient</b> ()
1062         *
1063     * <p>
1064     * <b>Definition:</b>
1065     * The patient who has the allergy or intolerance
1066     * </p> 
1067         */
1068        public AllergyIntolerance setPatient(ResourceReferenceDt theValue) {
1069                myPatient = theValue;
1070                return this;
1071        }
1072        
1073        
1074
1075  
1076        /**
1077         * Gets the value(s) for <b>reporter</b> ().
1078         * creating it if it does
1079         * not exist. Will not return <code>null</code>.
1080         *
1081     * <p>
1082     * <b>Definition:</b>
1083     * The source of the information about the allergy that is recorded
1084     * </p> 
1085         */
1086        public ResourceReferenceDt getReporter() {  
1087                if (myReporter == null) {
1088                        myReporter = new ResourceReferenceDt();
1089                }
1090                return myReporter;
1091        }
1092
1093        /**
1094         * Sets the value(s) for <b>reporter</b> ()
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * The source of the information about the allergy that is recorded
1099     * </p> 
1100         */
1101        public AllergyIntolerance setReporter(ResourceReferenceDt theValue) {
1102                myReporter = theValue;
1103                return this;
1104        }
1105        
1106        
1107
1108  
1109        /**
1110         * Gets the value(s) for <b>substance</b> ().
1111         * creating it if it does
1112         * not exist. Will not return <code>null</code>.
1113         *
1114     * <p>
1115     * <b>Definition:</b>
1116     * Identification of a substance, or a class of substances, that is considered to be responsible for the adverse reaction risk
1117     * </p> 
1118         */
1119        public CodeableConceptDt getSubstance() {  
1120                if (mySubstance == null) {
1121                        mySubstance = new CodeableConceptDt();
1122                }
1123                return mySubstance;
1124        }
1125
1126        /**
1127         * Sets the value(s) for <b>substance</b> ()
1128         *
1129     * <p>
1130     * <b>Definition:</b>
1131     * Identification of a substance, or a class of substances, that is considered to be responsible for the adverse reaction risk
1132     * </p> 
1133         */
1134        public AllergyIntolerance setSubstance(CodeableConceptDt theValue) {
1135                mySubstance = theValue;
1136                return this;
1137        }
1138        
1139        
1140
1141  
1142        /**
1143         * Gets the value(s) for <b>status</b> ().
1144         * creating it if it does
1145         * not exist. Will not return <code>null</code>.
1146         *
1147     * <p>
1148     * <b>Definition:</b>
1149     * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance
1150     * </p> 
1151         */
1152        public BoundCodeDt<AllergyIntoleranceStatusEnum> getStatusElement() {  
1153                if (myStatus == null) {
1154                        myStatus = new BoundCodeDt<AllergyIntoleranceStatusEnum>(AllergyIntoleranceStatusEnum.VALUESET_BINDER);
1155                }
1156                return myStatus;
1157        }
1158
1159        
1160        /**
1161         * Gets the value(s) for <b>status</b> ().
1162         * creating it if it does
1163         * not exist. This method may return <code>null</code>.
1164         *
1165     * <p>
1166     * <b>Definition:</b>
1167     * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance
1168     * </p> 
1169         */
1170        public String getStatus() {  
1171                return getStatusElement().getValue();
1172        }
1173
1174        /**
1175         * Sets the value(s) for <b>status</b> ()
1176         *
1177     * <p>
1178     * <b>Definition:</b>
1179     * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance
1180     * </p> 
1181         */
1182        public AllergyIntolerance setStatus(BoundCodeDt<AllergyIntoleranceStatusEnum> theValue) {
1183                myStatus = theValue;
1184                return this;
1185        }
1186        
1187        
1188
1189        /**
1190         * Sets the value(s) for <b>status</b> ()
1191         *
1192     * <p>
1193     * <b>Definition:</b>
1194     * Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified Substance
1195     * </p> 
1196         */
1197        public AllergyIntolerance setStatus(AllergyIntoleranceStatusEnum theValue) {
1198                setStatus(new BoundCodeDt<AllergyIntoleranceStatusEnum>(AllergyIntoleranceStatusEnum.VALUESET_BINDER, theValue));
1199                
1200/*
1201                getStatusElement().setValueAsEnum(theValue);
1202*/
1203                return this;
1204        }
1205
1206  
1207        /**
1208         * Gets the value(s) for <b>criticality</b> ().
1209         * creating it if it does
1210         * not exist. Will not return <code>null</code>.
1211         *
1212     * <p>
1213     * <b>Definition:</b>
1214     * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance
1215     * </p> 
1216         */
1217        public BoundCodeDt<AllergyIntoleranceCriticalityEnum> getCriticalityElement() {  
1218                if (myCriticality == null) {
1219                        myCriticality = new BoundCodeDt<AllergyIntoleranceCriticalityEnum>(AllergyIntoleranceCriticalityEnum.VALUESET_BINDER);
1220                }
1221                return myCriticality;
1222        }
1223
1224        
1225        /**
1226         * Gets the value(s) for <b>criticality</b> ().
1227         * creating it if it does
1228         * not exist. This method may return <code>null</code>.
1229         *
1230     * <p>
1231     * <b>Definition:</b>
1232     * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance
1233     * </p> 
1234         */
1235        public String getCriticality() {  
1236                return getCriticalityElement().getValue();
1237        }
1238
1239        /**
1240         * Sets the value(s) for <b>criticality</b> ()
1241         *
1242     * <p>
1243     * <b>Definition:</b>
1244     * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance
1245     * </p> 
1246         */
1247        public AllergyIntolerance setCriticality(BoundCodeDt<AllergyIntoleranceCriticalityEnum> theValue) {
1248                myCriticality = theValue;
1249                return this;
1250        }
1251        
1252        
1253
1254        /**
1255         * Sets the value(s) for <b>criticality</b> ()
1256         *
1257     * <p>
1258     * <b>Definition:</b>
1259     * Estimate of the potential clinical harm, or seriousness, of the reaction to the identified Substance
1260     * </p> 
1261         */
1262        public AllergyIntolerance setCriticality(AllergyIntoleranceCriticalityEnum theValue) {
1263                setCriticality(new BoundCodeDt<AllergyIntoleranceCriticalityEnum>(AllergyIntoleranceCriticalityEnum.VALUESET_BINDER, theValue));
1264                
1265/*
1266                getCriticalityElement().setValueAsEnum(theValue);
1267*/
1268                return this;
1269        }
1270
1271  
1272        /**
1273         * Gets the value(s) for <b>type</b> ().
1274         * creating it if it does
1275         * not exist. Will not return <code>null</code>.
1276         *
1277     * <p>
1278     * <b>Definition:</b>
1279     * Identification of the underlying physiological mechanism for the reaction risk.
1280     * </p> 
1281         */
1282        public BoundCodeDt<AllergyIntoleranceTypeEnum> getTypeElement() {  
1283                if (myType == null) {
1284                        myType = new BoundCodeDt<AllergyIntoleranceTypeEnum>(AllergyIntoleranceTypeEnum.VALUESET_BINDER);
1285                }
1286                return myType;
1287        }
1288
1289        
1290        /**
1291         * Gets the value(s) for <b>type</b> ().
1292         * creating it if it does
1293         * not exist. This method may return <code>null</code>.
1294         *
1295     * <p>
1296     * <b>Definition:</b>
1297     * Identification of the underlying physiological mechanism for the reaction risk.
1298     * </p> 
1299         */
1300        public String getType() {  
1301                return getTypeElement().getValue();
1302        }
1303
1304        /**
1305         * Sets the value(s) for <b>type</b> ()
1306         *
1307     * <p>
1308     * <b>Definition:</b>
1309     * Identification of the underlying physiological mechanism for the reaction risk.
1310     * </p> 
1311         */
1312        public AllergyIntolerance setType(BoundCodeDt<AllergyIntoleranceTypeEnum> theValue) {
1313                myType = theValue;
1314                return this;
1315        }
1316        
1317        
1318
1319        /**
1320         * Sets the value(s) for <b>type</b> ()
1321         *
1322     * <p>
1323     * <b>Definition:</b>
1324     * Identification of the underlying physiological mechanism for the reaction risk.
1325     * </p> 
1326         */
1327        public AllergyIntolerance setType(AllergyIntoleranceTypeEnum theValue) {
1328                setType(new BoundCodeDt<AllergyIntoleranceTypeEnum>(AllergyIntoleranceTypeEnum.VALUESET_BINDER, theValue));
1329                
1330/*
1331                getTypeElement().setValueAsEnum(theValue);
1332*/
1333                return this;
1334        }
1335
1336  
1337        /**
1338         * Gets the value(s) for <b>category</b> ().
1339         * creating it if it does
1340         * not exist. Will not return <code>null</code>.
1341         *
1342     * <p>
1343     * <b>Definition:</b>
1344     * Category of the identified Substance
1345     * </p> 
1346         */
1347        public BoundCodeDt<AllergyIntoleranceCategoryEnum> getCategoryElement() {  
1348                if (myCategory == null) {
1349                        myCategory = new BoundCodeDt<AllergyIntoleranceCategoryEnum>(AllergyIntoleranceCategoryEnum.VALUESET_BINDER);
1350                }
1351                return myCategory;
1352        }
1353
1354        
1355        /**
1356         * Gets the value(s) for <b>category</b> ().
1357         * creating it if it does
1358         * not exist. This method may return <code>null</code>.
1359         *
1360     * <p>
1361     * <b>Definition:</b>
1362     * Category of the identified Substance
1363     * </p> 
1364         */
1365        public String getCategory() {  
1366                return getCategoryElement().getValue();
1367        }
1368
1369        /**
1370         * Sets the value(s) for <b>category</b> ()
1371         *
1372     * <p>
1373     * <b>Definition:</b>
1374     * Category of the identified Substance
1375     * </p> 
1376         */
1377        public AllergyIntolerance setCategory(BoundCodeDt<AllergyIntoleranceCategoryEnum> theValue) {
1378                myCategory = theValue;
1379                return this;
1380        }
1381        
1382        
1383
1384        /**
1385         * Sets the value(s) for <b>category</b> ()
1386         *
1387     * <p>
1388     * <b>Definition:</b>
1389     * Category of the identified Substance
1390     * </p> 
1391         */
1392        public AllergyIntolerance setCategory(AllergyIntoleranceCategoryEnum theValue) {
1393                setCategory(new BoundCodeDt<AllergyIntoleranceCategoryEnum>(AllergyIntoleranceCategoryEnum.VALUESET_BINDER, theValue));
1394                
1395/*
1396                getCategoryElement().setValueAsEnum(theValue);
1397*/
1398                return this;
1399        }
1400
1401  
1402        /**
1403         * Gets the value(s) for <b>lastOccurence</b> ().
1404         * creating it if it does
1405         * not exist. Will not return <code>null</code>.
1406         *
1407     * <p>
1408     * <b>Definition:</b>
1409     * Represents the date and/or time of the last known occurrence of a reaction event
1410     * </p> 
1411         */
1412        public DateTimeDt getLastOccurenceElement() {  
1413                if (myLastOccurence == null) {
1414                        myLastOccurence = new DateTimeDt();
1415                }
1416                return myLastOccurence;
1417        }
1418
1419        
1420        /**
1421         * Gets the value(s) for <b>lastOccurence</b> ().
1422         * creating it if it does
1423         * not exist. This method may return <code>null</code>.
1424         *
1425     * <p>
1426     * <b>Definition:</b>
1427     * Represents the date and/or time of the last known occurrence of a reaction event
1428     * </p> 
1429         */
1430        public Date getLastOccurence() {  
1431                return getLastOccurenceElement().getValue();
1432        }
1433
1434        /**
1435         * Sets the value(s) for <b>lastOccurence</b> ()
1436         *
1437     * <p>
1438     * <b>Definition:</b>
1439     * Represents the date and/or time of the last known occurrence of a reaction event
1440     * </p> 
1441         */
1442        public AllergyIntolerance setLastOccurence(DateTimeDt theValue) {
1443                myLastOccurence = theValue;
1444                return this;
1445        }
1446        
1447        
1448
1449        /**
1450         * Sets the value for <b>lastOccurence</b> ()
1451         *
1452     * <p>
1453     * <b>Definition:</b>
1454     * Represents the date and/or time of the last known occurrence of a reaction event
1455     * </p> 
1456         */
1457        public AllergyIntolerance setLastOccurenceWithSecondsPrecision( Date theDate) {
1458                myLastOccurence = new DateTimeDt(theDate); 
1459                return this; 
1460        }
1461
1462        /**
1463         * Sets the value for <b>lastOccurence</b> ()
1464         *
1465     * <p>
1466     * <b>Definition:</b>
1467     * Represents the date and/or time of the last known occurrence of a reaction event
1468     * </p> 
1469         */
1470        public AllergyIntolerance setLastOccurence( Date theDate,  TemporalPrecisionEnum thePrecision) {
1471                myLastOccurence = new DateTimeDt(theDate, thePrecision); 
1472                return this; 
1473        }
1474
1475 
1476        /**
1477         * Gets the value(s) for <b>note</b> ().
1478         * creating it if it does
1479         * not exist. Will not return <code>null</code>.
1480         *
1481     * <p>
1482     * <b>Definition:</b>
1483     * Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.
1484     * </p> 
1485         */
1486        public AnnotationDt getNote() {  
1487                if (myNote == null) {
1488                        myNote = new AnnotationDt();
1489                }
1490                return myNote;
1491        }
1492
1493        /**
1494         * Sets the value(s) for <b>note</b> ()
1495         *
1496     * <p>
1497     * <b>Definition:</b>
1498     * Additional narrative about the propensity for the Adverse Reaction, not captured in other fields.
1499     * </p> 
1500         */
1501        public AllergyIntolerance setNote(AnnotationDt theValue) {
1502                myNote = theValue;
1503                return this;
1504        }
1505        
1506        
1507
1508  
1509        /**
1510         * Gets the value(s) for <b>reaction</b> ().
1511         * creating it if it does
1512         * not exist. Will not return <code>null</code>.
1513         *
1514     * <p>
1515     * <b>Definition:</b>
1516     * Details about each adverse reaction event linked to exposure to the identified Substance
1517     * </p> 
1518         */
1519        public java.util.List<Reaction> getReaction() {  
1520                if (myReaction == null) {
1521                        myReaction = new java.util.ArrayList<Reaction>();
1522                }
1523                return myReaction;
1524        }
1525
1526        /**
1527         * Sets the value(s) for <b>reaction</b> ()
1528         *
1529     * <p>
1530     * <b>Definition:</b>
1531     * Details about each adverse reaction event linked to exposure to the identified Substance
1532     * </p> 
1533         */
1534        public AllergyIntolerance setReaction(java.util.List<Reaction> theValue) {
1535                myReaction = theValue;
1536                return this;
1537        }
1538        
1539        
1540
1541        /**
1542         * Adds and returns a new value for <b>reaction</b> ()
1543         *
1544     * <p>
1545     * <b>Definition:</b>
1546     * Details about each adverse reaction event linked to exposure to the identified Substance
1547     * </p> 
1548         */
1549        public Reaction addReaction() {
1550                Reaction newType = new Reaction();
1551                getReaction().add(newType);
1552                return newType; 
1553        }
1554
1555        /**
1556         * Adds a given new value for <b>reaction</b> ()
1557         *
1558         * <p>
1559         * <b>Definition:</b>
1560         * Details about each adverse reaction event linked to exposure to the identified Substance
1561         * </p>
1562         * @param theValue The reaction to add (must not be <code>null</code>)
1563         */
1564        public AllergyIntolerance addReaction(Reaction theValue) {
1565                if (theValue == null) {
1566                        throw new NullPointerException("theValue must not be null");
1567                }
1568                getReaction().add(theValue);
1569                return this;
1570        }
1571
1572        /**
1573         * Gets the first repetition for <b>reaction</b> (),
1574         * creating it if it does not already exist.
1575         *
1576     * <p>
1577     * <b>Definition:</b>
1578     * Details about each adverse reaction event linked to exposure to the identified Substance
1579     * </p> 
1580         */
1581        public Reaction getReactionFirstRep() {
1582                if (getReaction().isEmpty()) {
1583                        return addReaction();
1584                }
1585                return getReaction().get(0); 
1586        }
1587  
1588        /**
1589         * Block class for child element: <b>AllergyIntolerance.reaction</b> ()
1590         *
1591     * <p>
1592     * <b>Definition:</b>
1593     * Details about each adverse reaction event linked to exposure to the identified Substance
1594     * </p> 
1595         */
1596        @Block()        
1597        public static class Reaction 
1598            extends  BaseIdentifiableElement  
1599            implements IResourceBlock {
1600        
1601        @Child(name="substance", type=CodeableConceptDt.class, order=0, min=0, max=1, summary=true, modifier=false)     
1602        @Description(
1603                shortDefinition="",
1604                formalDefinition="Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance"
1605        )
1606        private CodeableConceptDt mySubstance;
1607        
1608        @Child(name="certainty", type=CodeDt.class, order=1, min=0, max=1, summary=true, modifier=false)        
1609        @Description(
1610                shortDefinition="",
1611                formalDefinition="Statement about the degree of clinical certainty that the specific substance was the cause of the manifestation in this reaction event"
1612        )
1613        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/reaction-event-certainty")
1614        private BoundCodeDt<AllergyIntoleranceCertaintyEnum> myCertainty;
1615        
1616        @Child(name="manifestation", type=CodeableConceptDt.class, order=2, min=1, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
1617        @Description(
1618                shortDefinition="",
1619                formalDefinition="Clinical symptoms and/or signs that are observed or associated with the adverse reaction event"
1620        )
1621        private java.util.List<CodeableConceptDt> myManifestation;
1622        
1623        @Child(name="description", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
1624        @Description(
1625                shortDefinition="",
1626                formalDefinition="Text description about the reaction as a whole, including details of the manifestation if required"
1627        )
1628        private StringDt myDescription;
1629        
1630        @Child(name="onset", type=DateTimeDt.class, order=4, min=0, max=1, summary=true, modifier=false)        
1631        @Description(
1632                shortDefinition="",
1633                formalDefinition="Record of the date and/or time of the onset of the Reaction"
1634        )
1635        private DateTimeDt myOnset;
1636        
1637        @Child(name="severity", type=CodeDt.class, order=5, min=0, max=1, summary=true, modifier=false) 
1638        @Description(
1639                shortDefinition="",
1640                formalDefinition="Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations"
1641        )
1642        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/reaction-event-severity")
1643        private BoundCodeDt<AllergyIntoleranceSeverityEnum> mySeverity;
1644        
1645        @Child(name="exposureRoute", type=CodeableConceptDt.class, order=6, min=0, max=1, summary=true, modifier=false) 
1646        @Description(
1647                shortDefinition="",
1648                formalDefinition="Identification of the route by which the subject was exposed to the substance."
1649        )
1650        private CodeableConceptDt myExposureRoute;
1651        
1652        @Child(name="note", type=AnnotationDt.class, order=7, min=0, max=1, summary=false, modifier=false)      
1653        @Description(
1654                shortDefinition="",
1655                formalDefinition="Additional text about the adverse reaction event not captured in other fields"
1656        )
1657        private AnnotationDt myNote;
1658        
1659
1660        @Override
1661        public boolean isEmpty() {
1662                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySubstance,  myCertainty,  myManifestation,  myDescription,  myOnset,  mySeverity,  myExposureRoute,  myNote);
1663        }
1664        
1665        @Override
1666        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1667                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySubstance, myCertainty, myManifestation, myDescription, myOnset, mySeverity, myExposureRoute, myNote);
1668        }
1669
1670        /**
1671         * Gets the value(s) for <b>substance</b> ().
1672         * creating it if it does
1673         * not exist. Will not return <code>null</code>.
1674         *
1675     * <p>
1676     * <b>Definition:</b>
1677     * Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance
1678     * </p> 
1679         */
1680        public CodeableConceptDt getSubstance() {  
1681                if (mySubstance == null) {
1682                        mySubstance = new CodeableConceptDt();
1683                }
1684                return mySubstance;
1685        }
1686
1687        /**
1688         * Sets the value(s) for <b>substance</b> ()
1689         *
1690     * <p>
1691     * <b>Definition:</b>
1692     * Identification of the specific substance considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different to the substance identified as the cause of the risk, but must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite substance that includes the identified substance. It must be clinically safe to only process the AllergyIntolerance.substance and ignore the AllergyIntolerance.event.substance
1693     * </p> 
1694         */
1695        public Reaction setSubstance(CodeableConceptDt theValue) {
1696                mySubstance = theValue;
1697                return this;
1698        }
1699        
1700        
1701
1702  
1703        /**
1704         * Gets the value(s) for <b>certainty</b> ().
1705         * creating it if it does
1706         * not exist. Will not return <code>null</code>.
1707         *
1708     * <p>
1709     * <b>Definition:</b>
1710     * Statement about the degree of clinical certainty that the specific substance was the cause of the manifestation in this reaction event
1711     * </p> 
1712         */
1713        public BoundCodeDt<AllergyIntoleranceCertaintyEnum> getCertaintyElement() {  
1714                if (myCertainty == null) {
1715                        myCertainty = new BoundCodeDt<AllergyIntoleranceCertaintyEnum>(AllergyIntoleranceCertaintyEnum.VALUESET_BINDER);
1716                }
1717                return myCertainty;
1718        }
1719
1720        
1721        /**
1722         * Gets the value(s) for <b>certainty</b> ().
1723         * creating it if it does
1724         * not exist. This method may return <code>null</code>.
1725         *
1726     * <p>
1727     * <b>Definition:</b>
1728     * Statement about the degree of clinical certainty that the specific substance was the cause of the manifestation in this reaction event
1729     * </p> 
1730         */
1731        public String getCertainty() {  
1732                return getCertaintyElement().getValue();
1733        }
1734
1735        /**
1736         * Sets the value(s) for <b>certainty</b> ()
1737         *
1738     * <p>
1739     * <b>Definition:</b>
1740     * Statement about the degree of clinical certainty that the specific substance was the cause of the manifestation in this reaction event
1741     * </p> 
1742         */
1743        public Reaction setCertainty(BoundCodeDt<AllergyIntoleranceCertaintyEnum> theValue) {
1744                myCertainty = theValue;
1745                return this;
1746        }
1747        
1748        
1749
1750        /**
1751         * Sets the value(s) for <b>certainty</b> ()
1752         *
1753     * <p>
1754     * <b>Definition:</b>
1755     * Statement about the degree of clinical certainty that the specific substance was the cause of the manifestation in this reaction event
1756     * </p> 
1757         */
1758        public Reaction setCertainty(AllergyIntoleranceCertaintyEnum theValue) {
1759                setCertainty(new BoundCodeDt<AllergyIntoleranceCertaintyEnum>(AllergyIntoleranceCertaintyEnum.VALUESET_BINDER, theValue));
1760                
1761/*
1762                getCertaintyElement().setValueAsEnum(theValue);
1763*/
1764                return this;
1765        }
1766
1767  
1768        /**
1769         * Gets the value(s) for <b>manifestation</b> ().
1770         * creating it if it does
1771         * not exist. Will not return <code>null</code>.
1772         *
1773     * <p>
1774     * <b>Definition:</b>
1775     * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event
1776     * </p> 
1777         */
1778        public java.util.List<CodeableConceptDt> getManifestation() {  
1779                if (myManifestation == null) {
1780                        myManifestation = new java.util.ArrayList<CodeableConceptDt>();
1781                }
1782                return myManifestation;
1783        }
1784
1785        /**
1786         * Sets the value(s) for <b>manifestation</b> ()
1787         *
1788     * <p>
1789     * <b>Definition:</b>
1790     * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event
1791     * </p> 
1792         */
1793        public Reaction setManifestation(java.util.List<CodeableConceptDt> theValue) {
1794                myManifestation = theValue;
1795                return this;
1796        }
1797        
1798        
1799
1800        /**
1801         * Adds and returns a new value for <b>manifestation</b> ()
1802         *
1803     * <p>
1804     * <b>Definition:</b>
1805     * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event
1806     * </p> 
1807         */
1808        public CodeableConceptDt addManifestation() {
1809                CodeableConceptDt newType = new CodeableConceptDt();
1810                getManifestation().add(newType);
1811                return newType; 
1812        }
1813
1814        /**
1815         * Adds a given new value for <b>manifestation</b> ()
1816         *
1817         * <p>
1818         * <b>Definition:</b>
1819         * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event
1820         * </p>
1821         * @param theValue The manifestation to add (must not be <code>null</code>)
1822         */
1823        public Reaction addManifestation(CodeableConceptDt theValue) {
1824                if (theValue == null) {
1825                        throw new NullPointerException("theValue must not be null");
1826                }
1827                getManifestation().add(theValue);
1828                return this;
1829        }
1830
1831        /**
1832         * Gets the first repetition for <b>manifestation</b> (),
1833         * creating it if it does not already exist.
1834         *
1835     * <p>
1836     * <b>Definition:</b>
1837     * Clinical symptoms and/or signs that are observed or associated with the adverse reaction event
1838     * </p> 
1839         */
1840        public CodeableConceptDt getManifestationFirstRep() {
1841                if (getManifestation().isEmpty()) {
1842                        return addManifestation();
1843                }
1844                return getManifestation().get(0); 
1845        }
1846  
1847        /**
1848         * Gets the value(s) for <b>description</b> ().
1849         * creating it if it does
1850         * not exist. Will not return <code>null</code>.
1851         *
1852     * <p>
1853     * <b>Definition:</b>
1854     * Text description about the reaction as a whole, including details of the manifestation if required
1855     * </p> 
1856         */
1857        public StringDt getDescriptionElement() {  
1858                if (myDescription == null) {
1859                        myDescription = new StringDt();
1860                }
1861                return myDescription;
1862        }
1863
1864        
1865        /**
1866         * Gets the value(s) for <b>description</b> ().
1867         * creating it if it does
1868         * not exist. This method may return <code>null</code>.
1869         *
1870     * <p>
1871     * <b>Definition:</b>
1872     * Text description about the reaction as a whole, including details of the manifestation if required
1873     * </p> 
1874         */
1875        public String getDescription() {  
1876                return getDescriptionElement().getValue();
1877        }
1878
1879        /**
1880         * Sets the value(s) for <b>description</b> ()
1881         *
1882     * <p>
1883     * <b>Definition:</b>
1884     * Text description about the reaction as a whole, including details of the manifestation if required
1885     * </p> 
1886         */
1887        public Reaction setDescription(StringDt theValue) {
1888                myDescription = theValue;
1889                return this;
1890        }
1891        
1892        
1893
1894        /**
1895         * Sets the value for <b>description</b> ()
1896         *
1897     * <p>
1898     * <b>Definition:</b>
1899     * Text description about the reaction as a whole, including details of the manifestation if required
1900     * </p> 
1901         */
1902        public Reaction setDescription( String theString) {
1903                myDescription = new StringDt(theString); 
1904                return this; 
1905        }
1906
1907 
1908        /**
1909         * Gets the value(s) for <b>onset</b> ().
1910         * creating it if it does
1911         * not exist. Will not return <code>null</code>.
1912         *
1913     * <p>
1914     * <b>Definition:</b>
1915     * Record of the date and/or time of the onset of the Reaction
1916     * </p> 
1917         */
1918        public DateTimeDt getOnsetElement() {  
1919                if (myOnset == null) {
1920                        myOnset = new DateTimeDt();
1921                }
1922                return myOnset;
1923        }
1924
1925        
1926        /**
1927         * Gets the value(s) for <b>onset</b> ().
1928         * creating it if it does
1929         * not exist. This method may return <code>null</code>.
1930         *
1931     * <p>
1932     * <b>Definition:</b>
1933     * Record of the date and/or time of the onset of the Reaction
1934     * </p> 
1935         */
1936        public Date getOnset() {  
1937                return getOnsetElement().getValue();
1938        }
1939
1940        /**
1941         * Sets the value(s) for <b>onset</b> ()
1942         *
1943     * <p>
1944     * <b>Definition:</b>
1945     * Record of the date and/or time of the onset of the Reaction
1946     * </p> 
1947         */
1948        public Reaction setOnset(DateTimeDt theValue) {
1949                myOnset = theValue;
1950                return this;
1951        }
1952        
1953        
1954
1955        /**
1956         * Sets the value for <b>onset</b> ()
1957         *
1958     * <p>
1959     * <b>Definition:</b>
1960     * Record of the date and/or time of the onset of the Reaction
1961     * </p> 
1962         */
1963        public Reaction setOnsetWithSecondsPrecision( Date theDate) {
1964                myOnset = new DateTimeDt(theDate); 
1965                return this; 
1966        }
1967
1968        /**
1969         * Sets the value for <b>onset</b> ()
1970         *
1971     * <p>
1972     * <b>Definition:</b>
1973     * Record of the date and/or time of the onset of the Reaction
1974     * </p> 
1975         */
1976        public Reaction setOnset( Date theDate,  TemporalPrecisionEnum thePrecision) {
1977                myOnset = new DateTimeDt(theDate, thePrecision); 
1978                return this; 
1979        }
1980
1981 
1982        /**
1983         * Gets the value(s) for <b>severity</b> ().
1984         * creating it if it does
1985         * not exist. Will not return <code>null</code>.
1986         *
1987     * <p>
1988     * <b>Definition:</b>
1989     * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations
1990     * </p> 
1991         */
1992        public BoundCodeDt<AllergyIntoleranceSeverityEnum> getSeverityElement() {  
1993                if (mySeverity == null) {
1994                        mySeverity = new BoundCodeDt<AllergyIntoleranceSeverityEnum>(AllergyIntoleranceSeverityEnum.VALUESET_BINDER);
1995                }
1996                return mySeverity;
1997        }
1998
1999        
2000        /**
2001         * Gets the value(s) for <b>severity</b> ().
2002         * creating it if it does
2003         * not exist. This method may return <code>null</code>.
2004         *
2005     * <p>
2006     * <b>Definition:</b>
2007     * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations
2008     * </p> 
2009         */
2010        public String getSeverity() {  
2011                return getSeverityElement().getValue();
2012        }
2013
2014        /**
2015         * Sets the value(s) for <b>severity</b> ()
2016         *
2017     * <p>
2018     * <b>Definition:</b>
2019     * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations
2020     * </p> 
2021         */
2022        public Reaction setSeverity(BoundCodeDt<AllergyIntoleranceSeverityEnum> theValue) {
2023                mySeverity = theValue;
2024                return this;
2025        }
2026        
2027        
2028
2029        /**
2030         * Sets the value(s) for <b>severity</b> ()
2031         *
2032     * <p>
2033     * <b>Definition:</b>
2034     * Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations
2035     * </p> 
2036         */
2037        public Reaction setSeverity(AllergyIntoleranceSeverityEnum theValue) {
2038                setSeverity(new BoundCodeDt<AllergyIntoleranceSeverityEnum>(AllergyIntoleranceSeverityEnum.VALUESET_BINDER, theValue));
2039                
2040/*
2041                getSeverityElement().setValueAsEnum(theValue);
2042*/
2043                return this;
2044        }
2045
2046  
2047        /**
2048         * Gets the value(s) for <b>exposureRoute</b> ().
2049         * creating it if it does
2050         * not exist. Will not return <code>null</code>.
2051         *
2052     * <p>
2053     * <b>Definition:</b>
2054     * Identification of the route by which the subject was exposed to the substance.
2055     * </p> 
2056         */
2057        public CodeableConceptDt getExposureRoute() {  
2058                if (myExposureRoute == null) {
2059                        myExposureRoute = new CodeableConceptDt();
2060                }
2061                return myExposureRoute;
2062        }
2063
2064        /**
2065         * Sets the value(s) for <b>exposureRoute</b> ()
2066         *
2067     * <p>
2068     * <b>Definition:</b>
2069     * Identification of the route by which the subject was exposed to the substance.
2070     * </p> 
2071         */
2072        public Reaction setExposureRoute(CodeableConceptDt theValue) {
2073                myExposureRoute = theValue;
2074                return this;
2075        }
2076        
2077        
2078
2079  
2080        /**
2081         * Gets the value(s) for <b>note</b> ().
2082         * creating it if it does
2083         * not exist. Will not return <code>null</code>.
2084         *
2085     * <p>
2086     * <b>Definition:</b>
2087     * Additional text about the adverse reaction event not captured in other fields
2088     * </p> 
2089         */
2090        public AnnotationDt getNote() {  
2091                if (myNote == null) {
2092                        myNote = new AnnotationDt();
2093                }
2094                return myNote;
2095        }
2096
2097        /**
2098         * Sets the value(s) for <b>note</b> ()
2099         *
2100     * <p>
2101     * <b>Definition:</b>
2102     * Additional text about the adverse reaction event not captured in other fields
2103     * </p> 
2104         */
2105        public Reaction setNote(AnnotationDt theValue) {
2106                myNote = theValue;
2107                return this;
2108        }
2109        
2110        
2111
2112  
2113
2114
2115        }
2116
2117
2118
2119
2120    @Override
2121    public String getResourceName() {
2122        return "AllergyIntolerance";
2123    }
2124    
2125    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2126        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2127    }
2128
2129
2130}