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>DetectedIssue</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc.
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/DetectedIssue">http://hl7.org/fhir/profiles/DetectedIssue</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="DetectedIssue", profile="http://hl7.org/fhir/profiles/DetectedIssue", id="detectedissue")
339public class DetectedIssue extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>category</b>
344         * <p>
345         * Description: <b></b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>DetectedIssue.category</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="category", path="DetectedIssue.category", description="", type="token"  )
351        public static final String SP_CATEGORY = "category";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>category</b>
355         * <p>
356         * Description: <b></b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>DetectedIssue.category</b><br>
359         * </p>
360         */
361        public static final TokenClientParam CATEGORY = new TokenClientParam(SP_CATEGORY);
362
363        /**
364         * Search parameter constant for <b>date</b>
365         * <p>
366         * Description: <b></b><br>
367         * Type: <b>date</b><br>
368         * Path: <b>DetectedIssue.date</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="date", path="DetectedIssue.date", description="", type="date"  )
372        public static final String SP_DATE = "date";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>date</b>
376         * <p>
377         * Description: <b></b><br>
378         * Type: <b>date</b><br>
379         * Path: <b>DetectedIssue.date</b><br>
380         * </p>
381         */
382        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
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>DetectedIssue.identifier</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="identifier", path="DetectedIssue.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>DetectedIssue.identifier</b><br>
401         * </p>
402         */
403        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
404
405        /**
406         * Search parameter constant for <b>patient</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>reference</b><br>
410         * Path: <b>DetectedIssue.patient</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="patient", path="DetectedIssue.patient", description="", type="reference"  )
414        public static final String SP_PATIENT = "patient";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
418         * <p>
419         * Description: <b></b><br>
420         * Type: <b>reference</b><br>
421         * Path: <b>DetectedIssue.patient</b><br>
422         * </p>
423         */
424        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
425
426        /**
427         * Search parameter constant for <b>implicated</b>
428         * <p>
429         * Description: <b></b><br>
430         * Type: <b>reference</b><br>
431         * Path: <b>DetectedIssue.implicated</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="implicated", path="DetectedIssue.implicated", description="", type="reference"  )
435        public static final String SP_IMPLICATED = "implicated";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>implicated</b>
439         * <p>
440         * Description: <b></b><br>
441         * Type: <b>reference</b><br>
442         * Path: <b>DetectedIssue.implicated</b><br>
443         * </p>
444         */
445        public static final ReferenceClientParam IMPLICATED = new ReferenceClientParam(SP_IMPLICATED);
446
447        /**
448         * Search parameter constant for <b>author</b>
449         * <p>
450         * Description: <b></b><br>
451         * Type: <b>reference</b><br>
452         * Path: <b>DetectedIssue.author</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="author", path="DetectedIssue.author", description="", type="reference"  )
456        public static final String SP_AUTHOR = "author";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>author</b>
460         * <p>
461         * Description: <b></b><br>
462         * Type: <b>reference</b><br>
463         * Path: <b>DetectedIssue.author</b><br>
464         * </p>
465         */
466        public static final ReferenceClientParam AUTHOR = new ReferenceClientParam(SP_AUTHOR);
467
468
469        /**
470         * Constant for fluent queries to be used to add include statements. Specifies
471         * the path value of "<b>DetectedIssue:author</b>".
472         */
473        public static final Include INCLUDE_AUTHOR = new Include("DetectedIssue:author");
474
475        /**
476         * Constant for fluent queries to be used to add include statements. Specifies
477         * the path value of "<b>DetectedIssue:implicated</b>".
478         */
479        public static final Include INCLUDE_IMPLICATED = new Include("DetectedIssue:implicated");
480
481        /**
482         * Constant for fluent queries to be used to add include statements. Specifies
483         * the path value of "<b>DetectedIssue:patient</b>".
484         */
485        public static final Include INCLUDE_PATIENT = new Include("DetectedIssue:patient");
486
487
488        @Child(name="patient", order=0, min=0, max=1, summary=true, modifier=false, type={
489                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
490        @Description(
491                shortDefinition="",
492                formalDefinition="Indicates the patient whose record the detected issue is associated with."
493        )
494        private ResourceReferenceDt myPatient;
495        
496        @Child(name="category", type=CodeableConceptDt.class, order=1, min=0, max=1, summary=true, modifier=false)      
497        @Description(
498                shortDefinition="",
499                formalDefinition="Identifies the general type of issue identified."
500        )
501        private CodeableConceptDt myCategory;
502        
503        @Child(name="severity", type=CodeDt.class, order=2, min=0, max=1, summary=true, modifier=false) 
504        @Description(
505                shortDefinition="",
506                formalDefinition="Indicates the degree of importance associated with the identified issue based on the potential impact on the patient"
507        )
508        private BoundCodeDt<DetectedIssueSeverityEnum> mySeverity;
509        
510        @Child(name="implicated", order=3, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false, type={
511                IResource.class })
512        @Description(
513                shortDefinition="",
514                formalDefinition="Indicates the resource representing the current activity or proposed activity that is potentially problematic"
515        )
516        private java.util.List<ResourceReferenceDt> myImplicated;
517        
518        @Child(name="detail", type=StringDt.class, order=4, min=0, max=1, summary=false, modifier=false)        
519        @Description(
520                shortDefinition="",
521                formalDefinition="A textual explanation of the detected issue"
522        )
523        private StringDt myDetail;
524        
525        @Child(name="date", type=DateTimeDt.class, order=5, min=0, max=1, summary=true, modifier=false) 
526        @Description(
527                shortDefinition="",
528                formalDefinition="The date or date-time when the detected issue was initially identified."
529        )
530        private DateTimeDt myDate;
531        
532        @Child(name="author", order=6, min=0, max=1, summary=true, modifier=false, type={
533                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Device.class   })
534        @Description(
535                shortDefinition="",
536                formalDefinition="Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review"
537        )
538        private ResourceReferenceDt myAuthor;
539        
540        @Child(name="identifier", type=IdentifierDt.class, order=7, min=0, max=1, summary=true, modifier=false) 
541        @Description(
542                shortDefinition="",
543                formalDefinition="Business identifier associated with the detected issue record"
544        )
545        private IdentifierDt myIdentifier;
546        
547        @Child(name="reference", type=UriDt.class, order=8, min=0, max=1, summary=false, modifier=false)        
548        @Description(
549                shortDefinition="",
550                formalDefinition="The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified"
551        )
552        private UriDt myReference;
553        
554        @Child(name="mitigation", order=9, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
555        @Description(
556                shortDefinition="",
557                formalDefinition="Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action."
558        )
559        private java.util.List<Mitigation> myMitigation;
560        
561
562        @Override
563        public boolean isEmpty() {
564                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myPatient,  myCategory,  mySeverity,  myImplicated,  myDetail,  myDate,  myAuthor,  myIdentifier,  myReference,  myMitigation);
565        }
566        
567        @Override
568        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
569                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPatient, myCategory, mySeverity, myImplicated, myDetail, myDate, myAuthor, myIdentifier, myReference, myMitigation);
570        }
571
572        /**
573         * Gets the value(s) for <b>patient</b> ().
574         * creating it if it does
575         * not exist. Will not return <code>null</code>.
576         *
577     * <p>
578     * <b>Definition:</b>
579     * Indicates the patient whose record the detected issue is associated with.
580     * </p> 
581         */
582        public ResourceReferenceDt getPatient() {  
583                if (myPatient == null) {
584                        myPatient = new ResourceReferenceDt();
585                }
586                return myPatient;
587        }
588
589        /**
590         * Sets the value(s) for <b>patient</b> ()
591         *
592     * <p>
593     * <b>Definition:</b>
594     * Indicates the patient whose record the detected issue is associated with.
595     * </p> 
596         */
597        public DetectedIssue setPatient(ResourceReferenceDt theValue) {
598                myPatient = theValue;
599                return this;
600        }
601        
602        
603
604  
605        /**
606         * Gets the value(s) for <b>category</b> ().
607         * creating it if it does
608         * not exist. Will not return <code>null</code>.
609         *
610     * <p>
611     * <b>Definition:</b>
612     * Identifies the general type of issue identified.
613     * </p> 
614         */
615        public CodeableConceptDt getCategory() {  
616                if (myCategory == null) {
617                        myCategory = new CodeableConceptDt();
618                }
619                return myCategory;
620        }
621
622        /**
623         * Sets the value(s) for <b>category</b> ()
624         *
625     * <p>
626     * <b>Definition:</b>
627     * Identifies the general type of issue identified.
628     * </p> 
629         */
630        public DetectedIssue setCategory(CodeableConceptDt theValue) {
631                myCategory = theValue;
632                return this;
633        }
634        
635        
636
637  
638        /**
639         * Gets the value(s) for <b>severity</b> ().
640         * creating it if it does
641         * not exist. Will not return <code>null</code>.
642         *
643     * <p>
644     * <b>Definition:</b>
645     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient
646     * </p> 
647         */
648        public BoundCodeDt<DetectedIssueSeverityEnum> getSeverityElement() {  
649                if (mySeverity == null) {
650                        mySeverity = new BoundCodeDt<DetectedIssueSeverityEnum>(DetectedIssueSeverityEnum.VALUESET_BINDER);
651                }
652                return mySeverity;
653        }
654
655        
656        /**
657         * Gets the value(s) for <b>severity</b> ().
658         * creating it if it does
659         * not exist. Will not return <code>null</code>.
660         *
661     * <p>
662     * <b>Definition:</b>
663     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient
664     * </p> 
665         */
666        public String getSeverity() {  
667                return getSeverityElement().getValue();
668        }
669
670        /**
671         * Sets the value(s) for <b>severity</b> ()
672         *
673     * <p>
674     * <b>Definition:</b>
675     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient
676     * </p> 
677         */
678        public DetectedIssue setSeverity(BoundCodeDt<DetectedIssueSeverityEnum> theValue) {
679                mySeverity = theValue;
680                return this;
681        }
682        
683        
684
685        /**
686         * Sets the value(s) for <b>severity</b> ()
687         *
688     * <p>
689     * <b>Definition:</b>
690     * Indicates the degree of importance associated with the identified issue based on the potential impact on the patient
691     * </p> 
692         */
693        public DetectedIssue setSeverity(DetectedIssueSeverityEnum theValue) {
694                setSeverity(new BoundCodeDt<DetectedIssueSeverityEnum>(DetectedIssueSeverityEnum.VALUESET_BINDER, theValue));
695                
696/*
697                getSeverityElement().setValueAsEnum(theValue);
698*/
699                return this;
700        }
701
702  
703        /**
704         * Gets the value(s) for <b>implicated</b> ().
705         * creating it if it does
706         * not exist. Will not return <code>null</code>.
707         *
708     * <p>
709     * <b>Definition:</b>
710     * Indicates the resource representing the current activity or proposed activity that is potentially problematic
711     * </p> 
712         */
713        public java.util.List<ResourceReferenceDt> getImplicated() {  
714                if (myImplicated == null) {
715                        myImplicated = new java.util.ArrayList<ResourceReferenceDt>();
716                }
717                return myImplicated;
718        }
719
720        /**
721         * Sets the value(s) for <b>implicated</b> ()
722         *
723     * <p>
724     * <b>Definition:</b>
725     * Indicates the resource representing the current activity or proposed activity that is potentially problematic
726     * </p> 
727         */
728        public DetectedIssue setImplicated(java.util.List<ResourceReferenceDt> theValue) {
729                myImplicated = theValue;
730                return this;
731        }
732        
733        
734
735        /**
736         * Adds and returns a new value for <b>implicated</b> ()
737         *
738     * <p>
739     * <b>Definition:</b>
740     * Indicates the resource representing the current activity or proposed activity that is potentially problematic
741     * </p> 
742         */
743        public ResourceReferenceDt addImplicated() {
744                ResourceReferenceDt newType = new ResourceReferenceDt();
745                getImplicated().add(newType);
746                return newType; 
747        }
748  
749        /**
750         * Gets the value(s) for <b>detail</b> ().
751         * creating it if it does
752         * not exist. Will not return <code>null</code>.
753         *
754     * <p>
755     * <b>Definition:</b>
756     * A textual explanation of the detected issue
757     * </p> 
758         */
759        public StringDt getDetailElement() {  
760                if (myDetail == null) {
761                        myDetail = new StringDt();
762                }
763                return myDetail;
764        }
765
766        
767        /**
768         * Gets the value(s) for <b>detail</b> ().
769         * creating it if it does
770         * not exist. Will not return <code>null</code>.
771         *
772     * <p>
773     * <b>Definition:</b>
774     * A textual explanation of the detected issue
775     * </p> 
776         */
777        public String getDetail() {  
778                return getDetailElement().getValue();
779        }
780
781        /**
782         * Sets the value(s) for <b>detail</b> ()
783         *
784     * <p>
785     * <b>Definition:</b>
786     * A textual explanation of the detected issue
787     * </p> 
788         */
789        public DetectedIssue setDetail(StringDt theValue) {
790                myDetail = theValue;
791                return this;
792        }
793        
794        
795
796        /**
797         * Sets the value for <b>detail</b> ()
798         *
799     * <p>
800     * <b>Definition:</b>
801     * A textual explanation of the detected issue
802     * </p> 
803         */
804        public DetectedIssue setDetail( String theString) {
805                myDetail = new StringDt(theString); 
806                return this; 
807        }
808
809 
810        /**
811         * Gets the value(s) for <b>date</b> ().
812         * creating it if it does
813         * not exist. Will not return <code>null</code>.
814         *
815     * <p>
816     * <b>Definition:</b>
817     * The date or date-time when the detected issue was initially identified.
818     * </p> 
819         */
820        public DateTimeDt getDateElement() {  
821                if (myDate == null) {
822                        myDate = new DateTimeDt();
823                }
824                return myDate;
825        }
826
827        
828        /**
829         * Gets the value(s) for <b>date</b> ().
830         * creating it if it does
831         * not exist. Will not return <code>null</code>.
832         *
833     * <p>
834     * <b>Definition:</b>
835     * The date or date-time when the detected issue was initially identified.
836     * </p> 
837         */
838        public Date getDate() {  
839                return getDateElement().getValue();
840        }
841
842        /**
843         * Sets the value(s) for <b>date</b> ()
844         *
845     * <p>
846     * <b>Definition:</b>
847     * The date or date-time when the detected issue was initially identified.
848     * </p> 
849         */
850        public DetectedIssue setDate(DateTimeDt theValue) {
851                myDate = theValue;
852                return this;
853        }
854        
855        
856
857        /**
858         * Sets the value for <b>date</b> ()
859         *
860     * <p>
861     * <b>Definition:</b>
862     * The date or date-time when the detected issue was initially identified.
863     * </p> 
864         */
865        public DetectedIssue setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
866                myDate = new DateTimeDt(theDate, thePrecision); 
867                return this; 
868        }
869
870        /**
871         * Sets the value for <b>date</b> ()
872         *
873     * <p>
874     * <b>Definition:</b>
875     * The date or date-time when the detected issue was initially identified.
876     * </p> 
877         */
878        public DetectedIssue setDateWithSecondsPrecision( Date theDate) {
879                myDate = new DateTimeDt(theDate); 
880                return this; 
881        }
882
883 
884        /**
885         * Gets the value(s) for <b>author</b> ().
886         * creating it if it does
887         * not exist. Will not return <code>null</code>.
888         *
889     * <p>
890     * <b>Definition:</b>
891     * Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review
892     * </p> 
893         */
894        public ResourceReferenceDt getAuthor() {  
895                if (myAuthor == null) {
896                        myAuthor = new ResourceReferenceDt();
897                }
898                return myAuthor;
899        }
900
901        /**
902         * Sets the value(s) for <b>author</b> ()
903         *
904     * <p>
905     * <b>Definition:</b>
906     * Individual or device responsible for the issue being raised.  For example, a decision support application or a pharmacist conducting a medication review
907     * </p> 
908         */
909        public DetectedIssue setAuthor(ResourceReferenceDt theValue) {
910                myAuthor = theValue;
911                return this;
912        }
913        
914        
915
916  
917        /**
918         * Gets the value(s) for <b>identifier</b> ().
919         * creating it if it does
920         * not exist. Will not return <code>null</code>.
921         *
922     * <p>
923     * <b>Definition:</b>
924     * Business identifier associated with the detected issue record
925     * </p> 
926         */
927        public IdentifierDt getIdentifier() {  
928                if (myIdentifier == null) {
929                        myIdentifier = new IdentifierDt();
930                }
931                return myIdentifier;
932        }
933
934        /**
935         * Sets the value(s) for <b>identifier</b> ()
936         *
937     * <p>
938     * <b>Definition:</b>
939     * Business identifier associated with the detected issue record
940     * </p> 
941         */
942        public DetectedIssue setIdentifier(IdentifierDt theValue) {
943                myIdentifier = theValue;
944                return this;
945        }
946        
947        
948
949  
950        /**
951         * Gets the value(s) for <b>reference</b> ().
952         * creating it if it does
953         * not exist. Will not return <code>null</code>.
954         *
955     * <p>
956     * <b>Definition:</b>
957     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified
958     * </p> 
959         */
960        public UriDt getReferenceElement() {  
961                if (myReference == null) {
962                        myReference = new UriDt();
963                }
964                return myReference;
965        }
966
967        
968        /**
969         * Gets the value(s) for <b>reference</b> ().
970         * creating it if it does
971         * not exist. Will not return <code>null</code>.
972         *
973     * <p>
974     * <b>Definition:</b>
975     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified
976     * </p> 
977         */
978        public String getReference() {  
979                return getReferenceElement().getValue();
980        }
981
982        /**
983         * Sets the value(s) for <b>reference</b> ()
984         *
985     * <p>
986     * <b>Definition:</b>
987     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified
988     * </p> 
989         */
990        public DetectedIssue setReference(UriDt theValue) {
991                myReference = theValue;
992                return this;
993        }
994        
995        
996
997        /**
998         * Sets the value for <b>reference</b> ()
999         *
1000     * <p>
1001     * <b>Definition:</b>
1002     * The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified
1003     * </p> 
1004         */
1005        public DetectedIssue setReference( String theUri) {
1006                myReference = new UriDt(theUri); 
1007                return this; 
1008        }
1009
1010 
1011        /**
1012         * Gets the value(s) for <b>mitigation</b> ().
1013         * creating it if it does
1014         * not exist. Will not return <code>null</code>.
1015         *
1016     * <p>
1017     * <b>Definition:</b>
1018     * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1019     * </p> 
1020         */
1021        public java.util.List<Mitigation> getMitigation() {  
1022                if (myMitigation == null) {
1023                        myMitigation = new java.util.ArrayList<Mitigation>();
1024                }
1025                return myMitigation;
1026        }
1027
1028        /**
1029         * Sets the value(s) for <b>mitigation</b> ()
1030         *
1031     * <p>
1032     * <b>Definition:</b>
1033     * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1034     * </p> 
1035         */
1036        public DetectedIssue setMitigation(java.util.List<Mitigation> theValue) {
1037                myMitigation = theValue;
1038                return this;
1039        }
1040        
1041        
1042
1043        /**
1044         * Adds and returns a new value for <b>mitigation</b> ()
1045         *
1046     * <p>
1047     * <b>Definition:</b>
1048     * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1049     * </p> 
1050         */
1051        public Mitigation addMitigation() {
1052                Mitigation newType = new Mitigation();
1053                getMitigation().add(newType);
1054                return newType; 
1055        }
1056
1057        /**
1058         * Adds a given new value for <b>mitigation</b> ()
1059         *
1060         * <p>
1061         * <b>Definition:</b>
1062         * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1063         * </p>
1064         * @param theValue The mitigation to add (must not be <code>null</code>)
1065         */
1066        public DetectedIssue addMitigation(Mitigation theValue) {
1067                if (theValue == null) {
1068                        throw new NullPointerException("theValue must not be null");
1069                }
1070                getMitigation().add(theValue);
1071                return this;
1072        }
1073
1074        /**
1075         * Gets the first repetition for <b>mitigation</b> (),
1076         * creating it if it does not already exist.
1077         *
1078     * <p>
1079     * <b>Definition:</b>
1080     * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1081     * </p> 
1082         */
1083        public Mitigation getMitigationFirstRep() {
1084                if (getMitigation().isEmpty()) {
1085                        return addMitigation();
1086                }
1087                return getMitigation().get(0); 
1088        }
1089  
1090        /**
1091         * Block class for child element: <b>DetectedIssue.mitigation</b> ()
1092         *
1093     * <p>
1094     * <b>Definition:</b>
1095     * Indicates an action that has been taken or is committed to to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting.  Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action.
1096     * </p> 
1097         */
1098        @Block()        
1099        public static class Mitigation 
1100            extends  BaseIdentifiableElement        implements IResourceBlock {
1101        
1102        @Child(name="action", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false)       
1103        @Description(
1104                shortDefinition="",
1105                formalDefinition="Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue"
1106        )
1107        private CodeableConceptDt myAction;
1108        
1109        @Child(name="date", type=DateTimeDt.class, order=1, min=0, max=1, summary=false, modifier=false)        
1110        @Description(
1111                shortDefinition="",
1112                formalDefinition="Indicates when the mitigating action was documented"
1113        )
1114        private DateTimeDt myDate;
1115        
1116        @Child(name="author", order=2, min=0, max=1, summary=false, modifier=false, type={
1117                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
1118        @Description(
1119                shortDefinition="",
1120                formalDefinition="Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring"
1121        )
1122        private ResourceReferenceDt myAuthor;
1123        
1124
1125        @Override
1126        public boolean isEmpty() {
1127                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myAction,  myDate,  myAuthor);
1128        }
1129        
1130        @Override
1131        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1132                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myAction, myDate, myAuthor);
1133        }
1134
1135        /**
1136         * Gets the value(s) for <b>action</b> ().
1137         * creating it if it does
1138         * not exist. Will not return <code>null</code>.
1139         *
1140     * <p>
1141     * <b>Definition:</b>
1142     * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue
1143     * </p> 
1144         */
1145        public CodeableConceptDt getAction() {  
1146                if (myAction == null) {
1147                        myAction = new CodeableConceptDt();
1148                }
1149                return myAction;
1150        }
1151
1152        /**
1153         * Sets the value(s) for <b>action</b> ()
1154         *
1155     * <p>
1156     * <b>Definition:</b>
1157     * Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue
1158     * </p> 
1159         */
1160        public Mitigation setAction(CodeableConceptDt theValue) {
1161                myAction = theValue;
1162                return this;
1163        }
1164        
1165        
1166
1167  
1168        /**
1169         * Gets the value(s) for <b>date</b> ().
1170         * creating it if it does
1171         * not exist. Will not return <code>null</code>.
1172         *
1173     * <p>
1174     * <b>Definition:</b>
1175     * Indicates when the mitigating action was documented
1176     * </p> 
1177         */
1178        public DateTimeDt getDateElement() {  
1179                if (myDate == null) {
1180                        myDate = new DateTimeDt();
1181                }
1182                return myDate;
1183        }
1184
1185        
1186        /**
1187         * Gets the value(s) for <b>date</b> ().
1188         * creating it if it does
1189         * not exist. Will not return <code>null</code>.
1190         *
1191     * <p>
1192     * <b>Definition:</b>
1193     * Indicates when the mitigating action was documented
1194     * </p> 
1195         */
1196        public Date getDate() {  
1197                return getDateElement().getValue();
1198        }
1199
1200        /**
1201         * Sets the value(s) for <b>date</b> ()
1202         *
1203     * <p>
1204     * <b>Definition:</b>
1205     * Indicates when the mitigating action was documented
1206     * </p> 
1207         */
1208        public Mitigation setDate(DateTimeDt theValue) {
1209                myDate = theValue;
1210                return this;
1211        }
1212        
1213        
1214
1215        /**
1216         * Sets the value for <b>date</b> ()
1217         *
1218     * <p>
1219     * <b>Definition:</b>
1220     * Indicates when the mitigating action was documented
1221     * </p> 
1222         */
1223        public Mitigation setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1224                myDate = new DateTimeDt(theDate, thePrecision); 
1225                return this; 
1226        }
1227
1228        /**
1229         * Sets the value for <b>date</b> ()
1230         *
1231     * <p>
1232     * <b>Definition:</b>
1233     * Indicates when the mitigating action was documented
1234     * </p> 
1235         */
1236        public Mitigation setDateWithSecondsPrecision( Date theDate) {
1237                myDate = new DateTimeDt(theDate); 
1238                return this; 
1239        }
1240
1241 
1242        /**
1243         * Gets the value(s) for <b>author</b> ().
1244         * creating it if it does
1245         * not exist. Will not return <code>null</code>.
1246         *
1247     * <p>
1248     * <b>Definition:</b>
1249     * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring
1250     * </p> 
1251         */
1252        public ResourceReferenceDt getAuthor() {  
1253                if (myAuthor == null) {
1254                        myAuthor = new ResourceReferenceDt();
1255                }
1256                return myAuthor;
1257        }
1258
1259        /**
1260         * Sets the value(s) for <b>author</b> ()
1261         *
1262     * <p>
1263     * <b>Definition:</b>
1264     * Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring
1265     * </p> 
1266         */
1267        public Mitigation setAuthor(ResourceReferenceDt theValue) {
1268                myAuthor = theValue;
1269                return this;
1270        }
1271        
1272        
1273
1274  
1275
1276
1277        }
1278
1279
1280
1281
1282    @Override
1283    public String getResourceName() {
1284        return "DetectedIssue";
1285    }
1286    
1287    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1288        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1289    }
1290
1291
1292}