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>Condition</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * Use to record detailed information about conditions, problems or diagnoses recognized by a clinician. There are many uses including: recording a diagnosis during an encounter; populating a problem list or a summary statement, such as a discharge summary.
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/Condition">http://hl7.org/fhir/profiles/Condition</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="Condition", profile="http://hl7.org/fhir/profiles/Condition", id="condition")
339public class Condition extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>code</b>
344         * <p>
345         * Description: <b>Code for the condition</b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>Condition.code</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="code", path="Condition.code", description="Code for the condition", type="token"  )
351        public static final String SP_CODE = "code";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>code</b>
355         * <p>
356         * Description: <b>Code for the condition</b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>Condition.code</b><br>
359         * </p>
360         */
361        public static final TokenClientParam CODE = new TokenClientParam(SP_CODE);
362
363        /**
364         * Search parameter constant for <b>identifier</b>
365         * <p>
366         * Description: <b>A unique identifier of the condition record</b><br>
367         * Type: <b>token</b><br>
368         * Path: <b>Condition.identifier</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="identifier", path="Condition.identifier", description="A unique identifier of the condition record", type="token"  )
372        public static final String SP_IDENTIFIER = "identifier";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
376         * <p>
377         * Description: <b>A unique identifier of the condition record</b><br>
378         * Type: <b>token</b><br>
379         * Path: <b>Condition.identifier</b><br>
380         * </p>
381         */
382        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
383
384        /**
385         * Search parameter constant for <b>clinicalstatus</b>
386         * <p>
387         * Description: <b>The clinical status of the condition</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>Condition.clinicalStatus</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="clinicalstatus", path="Condition.clinicalStatus", description="The clinical status of the condition", type="token"  )
393        public static final String SP_CLINICALSTATUS = "clinicalstatus";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>clinicalstatus</b>
397         * <p>
398         * Description: <b>The clinical status of the condition</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>Condition.clinicalStatus</b><br>
401         * </p>
402         */
403        public static final TokenClientParam CLINICALSTATUS = new TokenClientParam(SP_CLINICALSTATUS);
404
405        /**
406         * Search parameter constant for <b>severity</b>
407         * <p>
408         * Description: <b>The severity of the condition</b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>Condition.severity</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="severity", path="Condition.severity", description="The severity of the condition", type="token"  )
414        public static final String SP_SEVERITY = "severity";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>severity</b>
418         * <p>
419         * Description: <b>The severity of the condition</b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>Condition.severity</b><br>
422         * </p>
423         */
424        public static final TokenClientParam SEVERITY = new TokenClientParam(SP_SEVERITY);
425
426        /**
427         * Search parameter constant for <b>category</b>
428         * <p>
429         * Description: <b>The category of the condition</b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>Condition.category</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="category", path="Condition.category", description="The category of the condition", type="token"  )
435        public static final String SP_CATEGORY = "category";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>category</b>
439         * <p>
440         * Description: <b>The category of the condition</b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>Condition.category</b><br>
443         * </p>
444         */
445        public static final TokenClientParam CATEGORY = new TokenClientParam(SP_CATEGORY);
446
447        /**
448         * Search parameter constant for <b>onset</b>
449         * <p>
450         * Description: <b>Date related onsets (dateTime and Period)</b><br>
451         * Type: <b>date</b><br>
452         * Path: <b>Condition.onset[x]</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="onset", path="Condition.onset[x]", description="Date related onsets (dateTime and Period)", type="date"  )
456        public static final String SP_ONSET = "onset";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>onset</b>
460         * <p>
461         * Description: <b>Date related onsets (dateTime and Period)</b><br>
462         * Type: <b>date</b><br>
463         * Path: <b>Condition.onset[x]</b><br>
464         * </p>
465         */
466        public static final DateClientParam ONSET = new DateClientParam(SP_ONSET);
467
468        /**
469         * Search parameter constant for <b>onset-info</b>
470         * <p>
471         * Description: <b>Other onsets (boolean, age, range, string)</b><br>
472         * Type: <b>string</b><br>
473         * Path: <b>Condition.onset[x]</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="onset-info", path="Condition.onset[x]", description="Other onsets (boolean, age, range, string)", type="string"  )
477        public static final String SP_ONSET_INFO = "onset-info";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>onset-info</b>
481         * <p>
482         * Description: <b>Other onsets (boolean, age, range, string)</b><br>
483         * Type: <b>string</b><br>
484         * Path: <b>Condition.onset[x]</b><br>
485         * </p>
486         */
487        public static final StringClientParam ONSET_INFO = new StringClientParam(SP_ONSET_INFO);
488
489        /**
490         * Search parameter constant for <b>encounter</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>reference</b><br>
494         * Path: <b>Condition.encounter</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="encounter", path="Condition.encounter", description="", type="reference"  )
498        public static final String SP_ENCOUNTER = "encounter";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
502         * <p>
503         * Description: <b></b><br>
504         * Type: <b>reference</b><br>
505         * Path: <b>Condition.encounter</b><br>
506         * </p>
507         */
508        public static final ReferenceClientParam ENCOUNTER = new ReferenceClientParam(SP_ENCOUNTER);
509
510        /**
511         * Search parameter constant for <b>asserter</b>
512         * <p>
513         * Description: <b></b><br>
514         * Type: <b>reference</b><br>
515         * Path: <b>Condition.asserter</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="asserter", path="Condition.asserter", description="", type="reference"  )
519        public static final String SP_ASSERTER = "asserter";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>asserter</b>
523         * <p>
524         * Description: <b></b><br>
525         * Type: <b>reference</b><br>
526         * Path: <b>Condition.asserter</b><br>
527         * </p>
528         */
529        public static final ReferenceClientParam ASSERTER = new ReferenceClientParam(SP_ASSERTER);
530
531        /**
532         * Search parameter constant for <b>date-recorded</b>
533         * <p>
534         * Description: <b>A date, when the Condition statement was documented</b><br>
535         * Type: <b>date</b><br>
536         * Path: <b>Condition.dateRecorded</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="date-recorded", path="Condition.dateRecorded", description="A date, when the Condition statement was documented", type="date"  )
540        public static final String SP_DATE_RECORDED = "date-recorded";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>date-recorded</b>
544         * <p>
545         * Description: <b>A date, when the Condition statement was documented</b><br>
546         * Type: <b>date</b><br>
547         * Path: <b>Condition.dateRecorded</b><br>
548         * </p>
549         */
550        public static final DateClientParam DATE_RECORDED = new DateClientParam(SP_DATE_RECORDED);
551
552        /**
553         * Search parameter constant for <b>evidence</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>token</b><br>
557         * Path: <b>Condition.evidence.code</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="evidence", path="Condition.evidence.code", description="", type="token"  )
561        public static final String SP_EVIDENCE = "evidence";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>evidence</b>
565         * <p>
566         * Description: <b></b><br>
567         * Type: <b>token</b><br>
568         * Path: <b>Condition.evidence.code</b><br>
569         * </p>
570         */
571        public static final TokenClientParam EVIDENCE = new TokenClientParam(SP_EVIDENCE);
572
573        /**
574         * Search parameter constant for <b>body-site</b>
575         * <p>
576         * Description: <b></b><br>
577         * Type: <b>token</b><br>
578         * Path: <b>Condition.bodySite</b><br>
579         * </p>
580         */
581        @SearchParamDefinition(name="body-site", path="Condition.bodySite", description="", type="token"  )
582        public static final String SP_BODY_SITE = "body-site";
583
584        /**
585         * <b>Fluent Client</b> search parameter constant for <b>body-site</b>
586         * <p>
587         * Description: <b></b><br>
588         * Type: <b>token</b><br>
589         * Path: <b>Condition.bodySite</b><br>
590         * </p>
591         */
592        public static final TokenClientParam BODY_SITE = new TokenClientParam(SP_BODY_SITE);
593
594        /**
595         * Search parameter constant for <b>stage</b>
596         * <p>
597         * Description: <b></b><br>
598         * Type: <b>token</b><br>
599         * Path: <b>Condition.stage.summary</b><br>
600         * </p>
601         */
602        @SearchParamDefinition(name="stage", path="Condition.stage.summary", description="", type="token"  )
603        public static final String SP_STAGE = "stage";
604
605        /**
606         * <b>Fluent Client</b> search parameter constant for <b>stage</b>
607         * <p>
608         * Description: <b></b><br>
609         * Type: <b>token</b><br>
610         * Path: <b>Condition.stage.summary</b><br>
611         * </p>
612         */
613        public static final TokenClientParam STAGE = new TokenClientParam(SP_STAGE);
614
615        /**
616         * Search parameter constant for <b>patient</b>
617         * <p>
618         * Description: <b></b><br>
619         * Type: <b>reference</b><br>
620         * Path: <b>Condition.patient</b><br>
621         * </p>
622         */
623        @SearchParamDefinition(name="patient", path="Condition.patient", description="", type="reference"  )
624        public static final String SP_PATIENT = "patient";
625
626        /**
627         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
628         * <p>
629         * Description: <b></b><br>
630         * Type: <b>reference</b><br>
631         * Path: <b>Condition.patient</b><br>
632         * </p>
633         */
634        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
635
636
637        /**
638         * Constant for fluent queries to be used to add include statements. Specifies
639         * the path value of "<b>Condition:asserter</b>".
640         */
641        public static final Include INCLUDE_ASSERTER = new Include("Condition:asserter");
642
643        /**
644         * Constant for fluent queries to be used to add include statements. Specifies
645         * the path value of "<b>Condition:encounter</b>".
646         */
647        public static final Include INCLUDE_ENCOUNTER = new Include("Condition:encounter");
648
649        /**
650         * Constant for fluent queries to be used to add include statements. Specifies
651         * the path value of "<b>Condition:patient</b>".
652         */
653        public static final Include INCLUDE_PATIENT = new Include("Condition:patient");
654
655
656        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
657        @Description(
658                shortDefinition="",
659                formalDefinition="This records identifiers associated with this condition 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)"
660        )
661        private java.util.List<IdentifierDt> myIdentifier;
662        
663        @Child(name="patient", order=1, min=1, max=1, summary=false, modifier=false, type={
664                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
665        @Description(
666                shortDefinition="",
667                formalDefinition="Indicates the patient who the condition record is associated with"
668        )
669        private ResourceReferenceDt myPatient;
670        
671        @Child(name="encounter", order=2, min=0, max=1, summary=false, modifier=false, type={
672                ca.uhn.fhir.model.dstu2.resource.Encounter.class        })
673        @Description(
674                shortDefinition="",
675                formalDefinition="Encounter during which the condition was first asserted"
676        )
677        private ResourceReferenceDt myEncounter;
678        
679        @Child(name="asserter", order=3, min=0, max=1, summary=false, modifier=false, type={
680                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Patient.class  })
681        @Description(
682                shortDefinition="",
683                formalDefinition="Individual who is making the condition statement"
684        )
685        private ResourceReferenceDt myAsserter;
686        
687        @Child(name="dateRecorded", type=DateDt.class, order=4, min=0, max=1, summary=false, modifier=false)    
688        @Description(
689                shortDefinition="",
690                formalDefinition="A date, when  the Condition statement was documented"
691        )
692        private DateDt myDateRecorded;
693        
694        @Child(name="code", type=CodeableConceptDt.class, order=5, min=1, max=1, summary=false, modifier=false) 
695        @Description(
696                shortDefinition="",
697                formalDefinition="Identification of the condition, problem or diagnosis."
698        )
699        private CodeableConceptDt myCode;
700        
701        @Child(name="category", type=CodeableConceptDt.class, order=6, min=0, max=1, summary=false, modifier=false)     
702        @Description(
703                shortDefinition="",
704                formalDefinition="A category assigned to the condition."
705        )
706        private BoundCodeableConceptDt<ConditionCategoryCodesEnum> myCategory;
707        
708        @Child(name="clinicalStatus", type=CodeDt.class, order=7, min=0, max=1, summary=false, modifier=true)   
709        @Description(
710                shortDefinition="",
711                formalDefinition="The clinical status of the condition."
712        )
713        private BoundCodeDt<ConditionClinicalStatusCodesEnum> myClinicalStatus;
714        
715        @Child(name="verificationStatus", type=CodeDt.class, order=8, min=1, max=1, summary=false, modifier=true)       
716        @Description(
717                shortDefinition="",
718                formalDefinition="The verification status to support the clinical status of the condition."
719        )
720        private BoundCodeDt<ConditionVerificationStatusEnum> myVerificationStatus;
721        
722        @Child(name="severity", type=CodeableConceptDt.class, order=9, min=0, max=1, summary=false, modifier=false)     
723        @Description(
724                shortDefinition="",
725                formalDefinition="A subjective assessment of the severity of the condition as evaluated by the clinician."
726        )
727        private CodeableConceptDt mySeverity;
728        
729        @Child(name="onset", order=10, min=0, max=1, summary=false, modifier=false, type={
730                DateTimeDt.class,               AgeDt.class,            PeriodDt.class,                 RangeDt.class,          StringDt.class  })
731        @Description(
732                shortDefinition="",
733                formalDefinition="Estimated or actual date or date-time  the condition began, in the opinion of the clinician"
734        )
735        private IDatatype myOnset;
736        
737        @Child(name="abatement", order=11, min=0, max=1, summary=false, modifier=false, type={
738                DateTimeDt.class,               AgeDt.class,            BooleanDt.class,                PeriodDt.class,                 RangeDt.class,          StringDt.class  })
739        @Description(
740                shortDefinition="",
741                formalDefinition="The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate."
742        )
743        private IDatatype myAbatement;
744        
745        @Child(name="stage", order=12, min=0, max=1, summary=false, modifier=false)     
746        @Description(
747                shortDefinition="",
748                formalDefinition="Clinical stage or grade of a condition. May include formal severity assessments"
749        )
750        private Stage myStage;
751        
752        @Child(name="evidence", order=13, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
753        @Description(
754                shortDefinition="",
755                formalDefinition="Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed"
756        )
757        private java.util.List<Evidence> myEvidence;
758        
759        @Child(name="bodySite", type=CodeableConceptDt.class, order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
760        @Description(
761                shortDefinition="",
762                formalDefinition="The anatomical location where this condition manifests itself"
763        )
764        private java.util.List<CodeableConceptDt> myBodySite;
765        
766        @Child(name="notes", type=StringDt.class, order=15, min=0, max=1, summary=false, modifier=false)        
767        @Description(
768                shortDefinition="",
769                formalDefinition="Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis"
770        )
771        private StringDt myNotes;
772        
773
774        @Override
775        public boolean isEmpty() {
776                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myPatient,  myEncounter,  myAsserter,  myDateRecorded,  myCode,  myCategory,  myClinicalStatus,  myVerificationStatus,  mySeverity,  myOnset,  myAbatement,  myStage,  myEvidence,  myBodySite,  myNotes);
777        }
778        
779        @Override
780        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
781                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myPatient, myEncounter, myAsserter, myDateRecorded, myCode, myCategory, myClinicalStatus, myVerificationStatus, mySeverity, myOnset, myAbatement, myStage, myEvidence, myBodySite, myNotes);
782        }
783
784        /**
785         * Gets the value(s) for <b>identifier</b> ().
786         * creating it if it does
787         * not exist. Will not return <code>null</code>.
788         *
789     * <p>
790     * <b>Definition:</b>
791     * This records identifiers associated with this condition 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)
792     * </p> 
793         */
794        public java.util.List<IdentifierDt> getIdentifier() {  
795                if (myIdentifier == null) {
796                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
797                }
798                return myIdentifier;
799        }
800
801        /**
802         * Sets the value(s) for <b>identifier</b> ()
803         *
804     * <p>
805     * <b>Definition:</b>
806     * This records identifiers associated with this condition 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)
807     * </p> 
808         */
809        public Condition setIdentifier(java.util.List<IdentifierDt> theValue) {
810                myIdentifier = theValue;
811                return this;
812        }
813        
814        
815
816        /**
817         * Adds and returns a new value for <b>identifier</b> ()
818         *
819     * <p>
820     * <b>Definition:</b>
821     * This records identifiers associated with this condition 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)
822     * </p> 
823         */
824        public IdentifierDt addIdentifier() {
825                IdentifierDt newType = new IdentifierDt();
826                getIdentifier().add(newType);
827                return newType; 
828        }
829
830        /**
831         * Adds a given new value for <b>identifier</b> ()
832         *
833         * <p>
834         * <b>Definition:</b>
835         * This records identifiers associated with this condition 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)
836         * </p>
837         * @param theValue The identifier to add (must not be <code>null</code>)
838         */
839        public Condition addIdentifier(IdentifierDt theValue) {
840                if (theValue == null) {
841                        throw new NullPointerException("theValue must not be null");
842                }
843                getIdentifier().add(theValue);
844                return this;
845        }
846
847        /**
848         * Gets the first repetition for <b>identifier</b> (),
849         * creating it if it does not already exist.
850         *
851     * <p>
852     * <b>Definition:</b>
853     * This records identifiers associated with this condition 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)
854     * </p> 
855         */
856        public IdentifierDt getIdentifierFirstRep() {
857                if (getIdentifier().isEmpty()) {
858                        return addIdentifier();
859                }
860                return getIdentifier().get(0); 
861        }
862  
863        /**
864         * Gets the value(s) for <b>patient</b> ().
865         * creating it if it does
866         * not exist. Will not return <code>null</code>.
867         *
868     * <p>
869     * <b>Definition:</b>
870     * Indicates the patient who the condition record is associated with
871     * </p> 
872         */
873        public ResourceReferenceDt getPatient() {  
874                if (myPatient == null) {
875                        myPatient = new ResourceReferenceDt();
876                }
877                return myPatient;
878        }
879
880        /**
881         * Sets the value(s) for <b>patient</b> ()
882         *
883     * <p>
884     * <b>Definition:</b>
885     * Indicates the patient who the condition record is associated with
886     * </p> 
887         */
888        public Condition setPatient(ResourceReferenceDt theValue) {
889                myPatient = theValue;
890                return this;
891        }
892        
893        
894
895  
896        /**
897         * Gets the value(s) for <b>encounter</b> ().
898         * creating it if it does
899         * not exist. Will not return <code>null</code>.
900         *
901     * <p>
902     * <b>Definition:</b>
903     * Encounter during which the condition was first asserted
904     * </p> 
905         */
906        public ResourceReferenceDt getEncounter() {  
907                if (myEncounter == null) {
908                        myEncounter = new ResourceReferenceDt();
909                }
910                return myEncounter;
911        }
912
913        /**
914         * Sets the value(s) for <b>encounter</b> ()
915         *
916     * <p>
917     * <b>Definition:</b>
918     * Encounter during which the condition was first asserted
919     * </p> 
920         */
921        public Condition setEncounter(ResourceReferenceDt theValue) {
922                myEncounter = theValue;
923                return this;
924        }
925        
926        
927
928  
929        /**
930         * Gets the value(s) for <b>asserter</b> ().
931         * creating it if it does
932         * not exist. Will not return <code>null</code>.
933         *
934     * <p>
935     * <b>Definition:</b>
936     * Individual who is making the condition statement
937     * </p> 
938         */
939        public ResourceReferenceDt getAsserter() {  
940                if (myAsserter == null) {
941                        myAsserter = new ResourceReferenceDt();
942                }
943                return myAsserter;
944        }
945
946        /**
947         * Sets the value(s) for <b>asserter</b> ()
948         *
949     * <p>
950     * <b>Definition:</b>
951     * Individual who is making the condition statement
952     * </p> 
953         */
954        public Condition setAsserter(ResourceReferenceDt theValue) {
955                myAsserter = theValue;
956                return this;
957        }
958        
959        
960
961  
962        /**
963         * Gets the value(s) for <b>dateRecorded</b> ().
964         * creating it if it does
965         * not exist. Will not return <code>null</code>.
966         *
967     * <p>
968     * <b>Definition:</b>
969     * A date, when  the Condition statement was documented
970     * </p> 
971         */
972        public DateDt getDateRecordedElement() {  
973                if (myDateRecorded == null) {
974                        myDateRecorded = new DateDt();
975                }
976                return myDateRecorded;
977        }
978
979        
980        /**
981         * Gets the value(s) for <b>dateRecorded</b> ().
982         * creating it if it does
983         * not exist. Will not return <code>null</code>.
984         *
985     * <p>
986     * <b>Definition:</b>
987     * A date, when  the Condition statement was documented
988     * </p> 
989         */
990        public Date getDateRecorded() {  
991                return getDateRecordedElement().getValue();
992        }
993
994        /**
995         * Sets the value(s) for <b>dateRecorded</b> ()
996         *
997     * <p>
998     * <b>Definition:</b>
999     * A date, when  the Condition statement was documented
1000     * </p> 
1001         */
1002        public Condition setDateRecorded(DateDt theValue) {
1003                myDateRecorded = theValue;
1004                return this;
1005        }
1006        
1007        
1008
1009        /**
1010         * Sets the value for <b>dateRecorded</b> ()
1011         *
1012     * <p>
1013     * <b>Definition:</b>
1014     * A date, when  the Condition statement was documented
1015     * </p> 
1016         */
1017        public Condition setDateRecorded( Date theDate,  TemporalPrecisionEnum thePrecision) {
1018                myDateRecorded = new DateDt(theDate, thePrecision); 
1019                return this; 
1020        }
1021
1022        /**
1023         * Sets the value for <b>dateRecorded</b> ()
1024         *
1025     * <p>
1026     * <b>Definition:</b>
1027     * A date, when  the Condition statement was documented
1028     * </p> 
1029         */
1030        public Condition setDateRecordedWithDayPrecision( Date theDate) {
1031                myDateRecorded = new DateDt(theDate); 
1032                return this; 
1033        }
1034
1035 
1036        /**
1037         * Gets the value(s) for <b>code</b> ().
1038         * creating it if it does
1039         * not exist. Will not return <code>null</code>.
1040         *
1041     * <p>
1042     * <b>Definition:</b>
1043     * Identification of the condition, problem or diagnosis.
1044     * </p> 
1045         */
1046        public CodeableConceptDt getCode() {  
1047                if (myCode == null) {
1048                        myCode = new CodeableConceptDt();
1049                }
1050                return myCode;
1051        }
1052
1053        /**
1054         * Sets the value(s) for <b>code</b> ()
1055         *
1056     * <p>
1057     * <b>Definition:</b>
1058     * Identification of the condition, problem or diagnosis.
1059     * </p> 
1060         */
1061        public Condition setCode(CodeableConceptDt theValue) {
1062                myCode = theValue;
1063                return this;
1064        }
1065        
1066        
1067
1068  
1069        /**
1070         * Gets the value(s) for <b>category</b> ().
1071         * creating it if it does
1072         * not exist. Will not return <code>null</code>.
1073         *
1074     * <p>
1075     * <b>Definition:</b>
1076     * A category assigned to the condition.
1077     * </p> 
1078         */
1079        public BoundCodeableConceptDt<ConditionCategoryCodesEnum> getCategory() {  
1080                if (myCategory == null) {
1081                        myCategory = new BoundCodeableConceptDt<ConditionCategoryCodesEnum>(ConditionCategoryCodesEnum.VALUESET_BINDER);
1082                }
1083                return myCategory;
1084        }
1085
1086        /**
1087         * Sets the value(s) for <b>category</b> ()
1088         *
1089     * <p>
1090     * <b>Definition:</b>
1091     * A category assigned to the condition.
1092     * </p> 
1093         */
1094        public Condition setCategory(BoundCodeableConceptDt<ConditionCategoryCodesEnum> theValue) {
1095                myCategory = theValue;
1096                return this;
1097        }
1098        
1099        
1100
1101        /**
1102         * Sets the value(s) for <b>category</b> ()
1103         *
1104     * <p>
1105     * <b>Definition:</b>
1106     * A category assigned to the condition.
1107     * </p> 
1108         */
1109        public Condition setCategory(ConditionCategoryCodesEnum theValue) {
1110                setCategory(new BoundCodeableConceptDt<ConditionCategoryCodesEnum>(ConditionCategoryCodesEnum.VALUESET_BINDER, theValue));
1111                
1112/*
1113                getCategory().setValueAsEnum(theValue);
1114*/
1115                return this;
1116        }
1117
1118  
1119        /**
1120         * Gets the value(s) for <b>clinicalStatus</b> ().
1121         * creating it if it does
1122         * not exist. Will not return <code>null</code>.
1123         *
1124     * <p>
1125     * <b>Definition:</b>
1126     * The clinical status of the condition.
1127     * </p> 
1128         */
1129        public BoundCodeDt<ConditionClinicalStatusCodesEnum> getClinicalStatusElement() {  
1130                if (myClinicalStatus == null) {
1131                        myClinicalStatus = new BoundCodeDt<ConditionClinicalStatusCodesEnum>(ConditionClinicalStatusCodesEnum.VALUESET_BINDER);
1132                }
1133                return myClinicalStatus;
1134        }
1135
1136        
1137        /**
1138         * Gets the value(s) for <b>clinicalStatus</b> ().
1139         * creating it if it does
1140         * not exist. Will not return <code>null</code>.
1141         *
1142     * <p>
1143     * <b>Definition:</b>
1144     * The clinical status of the condition.
1145     * </p> 
1146         */
1147        public String getClinicalStatus() {  
1148                return getClinicalStatusElement().getValue();
1149        }
1150
1151        /**
1152         * Sets the value(s) for <b>clinicalStatus</b> ()
1153         *
1154     * <p>
1155     * <b>Definition:</b>
1156     * The clinical status of the condition.
1157     * </p> 
1158         */
1159        public Condition setClinicalStatus(BoundCodeDt<ConditionClinicalStatusCodesEnum> theValue) {
1160                myClinicalStatus = theValue;
1161                return this;
1162        }
1163        
1164        
1165
1166        /**
1167         * Sets the value(s) for <b>clinicalStatus</b> ()
1168         *
1169     * <p>
1170     * <b>Definition:</b>
1171     * The clinical status of the condition.
1172     * </p> 
1173         */
1174        public Condition setClinicalStatus(ConditionClinicalStatusCodesEnum theValue) {
1175                setClinicalStatus(new BoundCodeDt<ConditionClinicalStatusCodesEnum>(ConditionClinicalStatusCodesEnum.VALUESET_BINDER, theValue));
1176                
1177/*
1178                getClinicalStatusElement().setValueAsEnum(theValue);
1179*/
1180                return this;
1181        }
1182
1183  
1184        /**
1185         * Gets the value(s) for <b>verificationStatus</b> ().
1186         * creating it if it does
1187         * not exist. Will not return <code>null</code>.
1188         *
1189     * <p>
1190     * <b>Definition:</b>
1191     * The verification status to support the clinical status of the condition.
1192     * </p> 
1193         */
1194        public BoundCodeDt<ConditionVerificationStatusEnum> getVerificationStatusElement() {  
1195                if (myVerificationStatus == null) {
1196                        myVerificationStatus = new BoundCodeDt<ConditionVerificationStatusEnum>(ConditionVerificationStatusEnum.VALUESET_BINDER);
1197                }
1198                return myVerificationStatus;
1199        }
1200
1201        
1202        /**
1203         * Gets the value(s) for <b>verificationStatus</b> ().
1204         * creating it if it does
1205         * not exist. Will not return <code>null</code>.
1206         *
1207     * <p>
1208     * <b>Definition:</b>
1209     * The verification status to support the clinical status of the condition.
1210     * </p> 
1211         */
1212        public String getVerificationStatus() {  
1213                return getVerificationStatusElement().getValue();
1214        }
1215
1216        /**
1217         * Sets the value(s) for <b>verificationStatus</b> ()
1218         *
1219     * <p>
1220     * <b>Definition:</b>
1221     * The verification status to support the clinical status of the condition.
1222     * </p> 
1223         */
1224        public Condition setVerificationStatus(BoundCodeDt<ConditionVerificationStatusEnum> theValue) {
1225                myVerificationStatus = theValue;
1226                return this;
1227        }
1228        
1229        
1230
1231        /**
1232         * Sets the value(s) for <b>verificationStatus</b> ()
1233         *
1234     * <p>
1235     * <b>Definition:</b>
1236     * The verification status to support the clinical status of the condition.
1237     * </p> 
1238         */
1239        public Condition setVerificationStatus(ConditionVerificationStatusEnum theValue) {
1240                setVerificationStatus(new BoundCodeDt<ConditionVerificationStatusEnum>(ConditionVerificationStatusEnum.VALUESET_BINDER, theValue));
1241                
1242/*
1243                getVerificationStatusElement().setValueAsEnum(theValue);
1244*/
1245                return this;
1246        }
1247
1248  
1249        /**
1250         * Gets the value(s) for <b>severity</b> ().
1251         * creating it if it does
1252         * not exist. Will not return <code>null</code>.
1253         *
1254     * <p>
1255     * <b>Definition:</b>
1256     * A subjective assessment of the severity of the condition as evaluated by the clinician.
1257     * </p> 
1258         */
1259        public CodeableConceptDt getSeverity() {  
1260                if (mySeverity == null) {
1261                        mySeverity = new CodeableConceptDt();
1262                }
1263                return mySeverity;
1264        }
1265
1266        /**
1267         * Sets the value(s) for <b>severity</b> ()
1268         *
1269     * <p>
1270     * <b>Definition:</b>
1271     * A subjective assessment of the severity of the condition as evaluated by the clinician.
1272     * </p> 
1273         */
1274        public Condition setSeverity(CodeableConceptDt theValue) {
1275                mySeverity = theValue;
1276                return this;
1277        }
1278        
1279        
1280
1281  
1282        /**
1283         * Gets the value(s) for <b>onset[x]</b> ().
1284         * creating it if it does
1285         * not exist. Will not return <code>null</code>.
1286         *
1287     * <p>
1288     * <b>Definition:</b>
1289     * Estimated or actual date or date-time  the condition began, in the opinion of the clinician
1290     * </p> 
1291         */
1292        public IDatatype getOnset() {  
1293                return myOnset;
1294        }
1295
1296        /**
1297         * Sets the value(s) for <b>onset[x]</b> ()
1298         *
1299     * <p>
1300     * <b>Definition:</b>
1301     * Estimated or actual date or date-time  the condition began, in the opinion of the clinician
1302     * </p> 
1303         */
1304        public Condition setOnset(IDatatype theValue) {
1305                myOnset = theValue;
1306                return this;
1307        }
1308        
1309        
1310
1311  
1312        /**
1313         * Gets the value(s) for <b>abatement[x]</b> ().
1314         * creating it if it does
1315         * not exist. Will not return <code>null</code>.
1316         *
1317     * <p>
1318     * <b>Definition:</b>
1319     * The date or estimated date that the condition resolved or went into remission. This is called \&quot;abatement\&quot; because of the many overloaded connotations associated with \&quot;remission\&quot; or \&quot;resolution\&quot; - Conditions are never really resolved, but they can abate.
1320     * </p> 
1321         */
1322        public IDatatype getAbatement() {  
1323                return myAbatement;
1324        }
1325
1326        /**
1327         * Sets the value(s) for <b>abatement[x]</b> ()
1328         *
1329     * <p>
1330     * <b>Definition:</b>
1331     * The date or estimated date that the condition resolved or went into remission. This is called \&quot;abatement\&quot; because of the many overloaded connotations associated with \&quot;remission\&quot; or \&quot;resolution\&quot; - Conditions are never really resolved, but they can abate.
1332     * </p> 
1333         */
1334        public Condition setAbatement(IDatatype theValue) {
1335                myAbatement = theValue;
1336                return this;
1337        }
1338        
1339        
1340
1341  
1342        /**
1343         * Gets the value(s) for <b>stage</b> ().
1344         * creating it if it does
1345         * not exist. Will not return <code>null</code>.
1346         *
1347     * <p>
1348     * <b>Definition:</b>
1349     * Clinical stage or grade of a condition. May include formal severity assessments
1350     * </p> 
1351         */
1352        public Stage getStage() {  
1353                if (myStage == null) {
1354                        myStage = new Stage();
1355                }
1356                return myStage;
1357        }
1358
1359        /**
1360         * Sets the value(s) for <b>stage</b> ()
1361         *
1362     * <p>
1363     * <b>Definition:</b>
1364     * Clinical stage or grade of a condition. May include formal severity assessments
1365     * </p> 
1366         */
1367        public Condition setStage(Stage theValue) {
1368                myStage = theValue;
1369                return this;
1370        }
1371        
1372        
1373
1374  
1375        /**
1376         * Gets the value(s) for <b>evidence</b> ().
1377         * creating it if it does
1378         * not exist. Will not return <code>null</code>.
1379         *
1380     * <p>
1381     * <b>Definition:</b>
1382     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1383     * </p> 
1384         */
1385        public java.util.List<Evidence> getEvidence() {  
1386                if (myEvidence == null) {
1387                        myEvidence = new java.util.ArrayList<Evidence>();
1388                }
1389                return myEvidence;
1390        }
1391
1392        /**
1393         * Sets the value(s) for <b>evidence</b> ()
1394         *
1395     * <p>
1396     * <b>Definition:</b>
1397     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1398     * </p> 
1399         */
1400        public Condition setEvidence(java.util.List<Evidence> theValue) {
1401                myEvidence = theValue;
1402                return this;
1403        }
1404        
1405        
1406
1407        /**
1408         * Adds and returns a new value for <b>evidence</b> ()
1409         *
1410     * <p>
1411     * <b>Definition:</b>
1412     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1413     * </p> 
1414         */
1415        public Evidence addEvidence() {
1416                Evidence newType = new Evidence();
1417                getEvidence().add(newType);
1418                return newType; 
1419        }
1420
1421        /**
1422         * Adds a given new value for <b>evidence</b> ()
1423         *
1424         * <p>
1425         * <b>Definition:</b>
1426         * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1427         * </p>
1428         * @param theValue The evidence to add (must not be <code>null</code>)
1429         */
1430        public Condition addEvidence(Evidence theValue) {
1431                if (theValue == null) {
1432                        throw new NullPointerException("theValue must not be null");
1433                }
1434                getEvidence().add(theValue);
1435                return this;
1436        }
1437
1438        /**
1439         * Gets the first repetition for <b>evidence</b> (),
1440         * creating it if it does not already exist.
1441         *
1442     * <p>
1443     * <b>Definition:</b>
1444     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1445     * </p> 
1446         */
1447        public Evidence getEvidenceFirstRep() {
1448                if (getEvidence().isEmpty()) {
1449                        return addEvidence();
1450                }
1451                return getEvidence().get(0); 
1452        }
1453  
1454        /**
1455         * Gets the value(s) for <b>bodySite</b> ().
1456         * creating it if it does
1457         * not exist. Will not return <code>null</code>.
1458         *
1459     * <p>
1460     * <b>Definition:</b>
1461     * The anatomical location where this condition manifests itself
1462     * </p> 
1463         */
1464        public java.util.List<CodeableConceptDt> getBodySite() {  
1465                if (myBodySite == null) {
1466                        myBodySite = new java.util.ArrayList<CodeableConceptDt>();
1467                }
1468                return myBodySite;
1469        }
1470
1471        /**
1472         * Sets the value(s) for <b>bodySite</b> ()
1473         *
1474     * <p>
1475     * <b>Definition:</b>
1476     * The anatomical location where this condition manifests itself
1477     * </p> 
1478         */
1479        public Condition setBodySite(java.util.List<CodeableConceptDt> theValue) {
1480                myBodySite = theValue;
1481                return this;
1482        }
1483        
1484        
1485
1486        /**
1487         * Adds and returns a new value for <b>bodySite</b> ()
1488         *
1489     * <p>
1490     * <b>Definition:</b>
1491     * The anatomical location where this condition manifests itself
1492     * </p> 
1493         */
1494        public CodeableConceptDt addBodySite() {
1495                CodeableConceptDt newType = new CodeableConceptDt();
1496                getBodySite().add(newType);
1497                return newType; 
1498        }
1499
1500        /**
1501         * Adds a given new value for <b>bodySite</b> ()
1502         *
1503         * <p>
1504         * <b>Definition:</b>
1505         * The anatomical location where this condition manifests itself
1506         * </p>
1507         * @param theValue The bodySite to add (must not be <code>null</code>)
1508         */
1509        public Condition addBodySite(CodeableConceptDt theValue) {
1510                if (theValue == null) {
1511                        throw new NullPointerException("theValue must not be null");
1512                }
1513                getBodySite().add(theValue);
1514                return this;
1515        }
1516
1517        /**
1518         * Gets the first repetition for <b>bodySite</b> (),
1519         * creating it if it does not already exist.
1520         *
1521     * <p>
1522     * <b>Definition:</b>
1523     * The anatomical location where this condition manifests itself
1524     * </p> 
1525         */
1526        public CodeableConceptDt getBodySiteFirstRep() {
1527                if (getBodySite().isEmpty()) {
1528                        return addBodySite();
1529                }
1530                return getBodySite().get(0); 
1531        }
1532  
1533        /**
1534         * Gets the value(s) for <b>notes</b> ().
1535         * creating it if it does
1536         * not exist. Will not return <code>null</code>.
1537         *
1538     * <p>
1539     * <b>Definition:</b>
1540     * Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis
1541     * </p> 
1542         */
1543        public StringDt getNotesElement() {  
1544                if (myNotes == null) {
1545                        myNotes = new StringDt();
1546                }
1547                return myNotes;
1548        }
1549
1550        
1551        /**
1552         * Gets the value(s) for <b>notes</b> ().
1553         * creating it if it does
1554         * not exist. Will not return <code>null</code>.
1555         *
1556     * <p>
1557     * <b>Definition:</b>
1558     * Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis
1559     * </p> 
1560         */
1561        public String getNotes() {  
1562                return getNotesElement().getValue();
1563        }
1564
1565        /**
1566         * Sets the value(s) for <b>notes</b> ()
1567         *
1568     * <p>
1569     * <b>Definition:</b>
1570     * Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis
1571     * </p> 
1572         */
1573        public Condition setNotes(StringDt theValue) {
1574                myNotes = theValue;
1575                return this;
1576        }
1577        
1578        
1579
1580        /**
1581         * Sets the value for <b>notes</b> ()
1582         *
1583     * <p>
1584     * <b>Definition:</b>
1585     * Additional information about the Condition. This is a general notes/comments entry  for description of the Condition, its diagnosis and prognosis
1586     * </p> 
1587         */
1588        public Condition setNotes( String theString) {
1589                myNotes = new StringDt(theString); 
1590                return this; 
1591        }
1592
1593 
1594        /**
1595         * Block class for child element: <b>Condition.stage</b> ()
1596         *
1597     * <p>
1598     * <b>Definition:</b>
1599     * Clinical stage or grade of a condition. May include formal severity assessments
1600     * </p> 
1601         */
1602        @Block()        
1603        public static class Stage 
1604            extends  BaseIdentifiableElement        implements IResourceBlock {
1605        
1606        @Child(name="summary", type=CodeableConceptDt.class, order=0, min=0, max=1, summary=false, modifier=false)      
1607        @Description(
1608                shortDefinition="",
1609                formalDefinition="A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific"
1610        )
1611        private CodeableConceptDt mySummary;
1612        
1613        @Child(name="assessment", order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
1614                ca.uhn.fhir.model.dstu2.resource.ClinicalImpression.class,              ca.uhn.fhir.model.dstu2.resource.DiagnosticReport.class,                ca.uhn.fhir.model.dstu2.resource.Observation.class      })
1615        @Description(
1616                shortDefinition="",
1617                formalDefinition="Reference to a formal record of the evidence on which the staging assessment is based"
1618        )
1619        private java.util.List<ResourceReferenceDt> myAssessment;
1620        
1621
1622        @Override
1623        public boolean isEmpty() {
1624                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySummary,  myAssessment);
1625        }
1626        
1627        @Override
1628        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1629                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySummary, myAssessment);
1630        }
1631
1632        /**
1633         * Gets the value(s) for <b>summary</b> ().
1634         * creating it if it does
1635         * not exist. Will not return <code>null</code>.
1636         *
1637     * <p>
1638     * <b>Definition:</b>
1639     * A simple summary of the stage such as \&quot;Stage 3\&quot;. The determination of the stage is disease-specific
1640     * </p> 
1641         */
1642        public CodeableConceptDt getSummary() {  
1643                if (mySummary == null) {
1644                        mySummary = new CodeableConceptDt();
1645                }
1646                return mySummary;
1647        }
1648
1649        /**
1650         * Sets the value(s) for <b>summary</b> ()
1651         *
1652     * <p>
1653     * <b>Definition:</b>
1654     * A simple summary of the stage such as \&quot;Stage 3\&quot;. The determination of the stage is disease-specific
1655     * </p> 
1656         */
1657        public Stage setSummary(CodeableConceptDt theValue) {
1658                mySummary = theValue;
1659                return this;
1660        }
1661        
1662        
1663
1664  
1665        /**
1666         * Gets the value(s) for <b>assessment</b> ().
1667         * creating it if it does
1668         * not exist. Will not return <code>null</code>.
1669         *
1670     * <p>
1671     * <b>Definition:</b>
1672     * Reference to a formal record of the evidence on which the staging assessment is based
1673     * </p> 
1674         */
1675        public java.util.List<ResourceReferenceDt> getAssessment() {  
1676                if (myAssessment == null) {
1677                        myAssessment = new java.util.ArrayList<ResourceReferenceDt>();
1678                }
1679                return myAssessment;
1680        }
1681
1682        /**
1683         * Sets the value(s) for <b>assessment</b> ()
1684         *
1685     * <p>
1686     * <b>Definition:</b>
1687     * Reference to a formal record of the evidence on which the staging assessment is based
1688     * </p> 
1689         */
1690        public Stage setAssessment(java.util.List<ResourceReferenceDt> theValue) {
1691                myAssessment = theValue;
1692                return this;
1693        }
1694        
1695        
1696
1697        /**
1698         * Adds and returns a new value for <b>assessment</b> ()
1699         *
1700     * <p>
1701     * <b>Definition:</b>
1702     * Reference to a formal record of the evidence on which the staging assessment is based
1703     * </p> 
1704         */
1705        public ResourceReferenceDt addAssessment() {
1706                ResourceReferenceDt newType = new ResourceReferenceDt();
1707                getAssessment().add(newType);
1708                return newType; 
1709        }
1710  
1711
1712
1713        }
1714
1715
1716        /**
1717         * Block class for child element: <b>Condition.evidence</b> ()
1718         *
1719     * <p>
1720     * <b>Definition:</b>
1721     * Supporting Evidence / manifestations that are the basis on which this condition is suspected or confirmed
1722     * </p> 
1723         */
1724        @Block()        
1725        public static class Evidence 
1726            extends  BaseIdentifiableElement        implements IResourceBlock {
1727        
1728        @Child(name="code", type=CodeableConceptDt.class, order=0, min=0, max=1, summary=false, modifier=false) 
1729        @Description(
1730                shortDefinition="",
1731                formalDefinition="A manifestation or symptom that led to the recording of this condition"
1732        )
1733        private CodeableConceptDt myCode;
1734        
1735        @Child(name="detail", order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
1736                IResource.class })
1737        @Description(
1738                shortDefinition="",
1739                formalDefinition="Links to other relevant information, including pathology reports"
1740        )
1741        private java.util.List<ResourceReferenceDt> myDetail;
1742        
1743
1744        @Override
1745        public boolean isEmpty() {
1746                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCode,  myDetail);
1747        }
1748        
1749        @Override
1750        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1751                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCode, myDetail);
1752        }
1753
1754        /**
1755         * Gets the value(s) for <b>code</b> ().
1756         * creating it if it does
1757         * not exist. Will not return <code>null</code>.
1758         *
1759     * <p>
1760     * <b>Definition:</b>
1761     * A manifestation or symptom that led to the recording of this condition
1762     * </p> 
1763         */
1764        public CodeableConceptDt getCode() {  
1765                if (myCode == null) {
1766                        myCode = new CodeableConceptDt();
1767                }
1768                return myCode;
1769        }
1770
1771        /**
1772         * Sets the value(s) for <b>code</b> ()
1773         *
1774     * <p>
1775     * <b>Definition:</b>
1776     * A manifestation or symptom that led to the recording of this condition
1777     * </p> 
1778         */
1779        public Evidence setCode(CodeableConceptDt theValue) {
1780                myCode = theValue;
1781                return this;
1782        }
1783        
1784        
1785
1786  
1787        /**
1788         * Gets the value(s) for <b>detail</b> ().
1789         * creating it if it does
1790         * not exist. Will not return <code>null</code>.
1791         *
1792     * <p>
1793     * <b>Definition:</b>
1794     * Links to other relevant information, including pathology reports
1795     * </p> 
1796         */
1797        public java.util.List<ResourceReferenceDt> getDetail() {  
1798                if (myDetail == null) {
1799                        myDetail = new java.util.ArrayList<ResourceReferenceDt>();
1800                }
1801                return myDetail;
1802        }
1803
1804        /**
1805         * Sets the value(s) for <b>detail</b> ()
1806         *
1807     * <p>
1808     * <b>Definition:</b>
1809     * Links to other relevant information, including pathology reports
1810     * </p> 
1811         */
1812        public Evidence setDetail(java.util.List<ResourceReferenceDt> theValue) {
1813                myDetail = theValue;
1814                return this;
1815        }
1816        
1817        
1818
1819        /**
1820         * Adds and returns a new value for <b>detail</b> ()
1821         *
1822     * <p>
1823     * <b>Definition:</b>
1824     * Links to other relevant information, including pathology reports
1825     * </p> 
1826         */
1827        public ResourceReferenceDt addDetail() {
1828                ResourceReferenceDt newType = new ResourceReferenceDt();
1829                getDetail().add(newType);
1830                return newType; 
1831        }
1832  
1833
1834
1835        }
1836
1837
1838
1839
1840    @Override
1841    public String getResourceName() {
1842        return "Condition";
1843    }
1844    
1845    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1846        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1847    }
1848
1849
1850}