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>ClinicalImpression</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter,  but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score
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/ClinicalImpression">http://hl7.org/fhir/profiles/ClinicalImpression</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="ClinicalImpression", profile="http://hl7.org/fhir/profiles/ClinicalImpression", id="clinicalimpression")
339public class ClinicalImpression extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>previous</b>
344         * <p>
345         * Description: <b></b><br>
346         * Type: <b>reference</b><br>
347         * Path: <b>ClinicalImpression.previous</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="previous", path="ClinicalImpression.previous", description="", type="reference"  )
351        public static final String SP_PREVIOUS = "previous";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>previous</b>
355         * <p>
356         * Description: <b></b><br>
357         * Type: <b>reference</b><br>
358         * Path: <b>ClinicalImpression.previous</b><br>
359         * </p>
360         */
361        public static final ReferenceClientParam PREVIOUS = new ReferenceClientParam(SP_PREVIOUS);
362
363        /**
364         * Search parameter constant for <b>problem</b>
365         * <p>
366         * Description: <b></b><br>
367         * Type: <b>reference</b><br>
368         * Path: <b>ClinicalImpression.problem</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="problem", path="ClinicalImpression.problem", description="", type="reference"  )
372        public static final String SP_PROBLEM = "problem";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>problem</b>
376         * <p>
377         * Description: <b></b><br>
378         * Type: <b>reference</b><br>
379         * Path: <b>ClinicalImpression.problem</b><br>
380         * </p>
381         */
382        public static final ReferenceClientParam PROBLEM = new ReferenceClientParam(SP_PROBLEM);
383
384        /**
385         * Search parameter constant for <b>trigger</b>
386         * <p>
387         * Description: <b></b><br>
388         * Type: <b>reference</b><br>
389         * Path: <b>ClinicalImpression.triggerReference</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="trigger", path="ClinicalImpression.triggerReference", description="", type="reference"  )
393        public static final String SP_TRIGGER = "trigger";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>trigger</b>
397         * <p>
398         * Description: <b></b><br>
399         * Type: <b>reference</b><br>
400         * Path: <b>ClinicalImpression.triggerReference</b><br>
401         * </p>
402         */
403        public static final ReferenceClientParam TRIGGER = new ReferenceClientParam(SP_TRIGGER);
404
405        /**
406         * Search parameter constant for <b>trigger-code</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>ClinicalImpression.triggerCodeableConcept</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="trigger-code", path="ClinicalImpression.triggerCodeableConcept", description="", type="token"  )
414        public static final String SP_TRIGGER_CODE = "trigger-code";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>trigger-code</b>
418         * <p>
419         * Description: <b></b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>ClinicalImpression.triggerCodeableConcept</b><br>
422         * </p>
423         */
424        public static final TokenClientParam TRIGGER_CODE = new TokenClientParam(SP_TRIGGER_CODE);
425
426        /**
427         * Search parameter constant for <b>investigation</b>
428         * <p>
429         * Description: <b></b><br>
430         * Type: <b>reference</b><br>
431         * Path: <b>ClinicalImpression.investigations.item</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="investigation", path="ClinicalImpression.investigations.item", description="", type="reference"  )
435        public static final String SP_INVESTIGATION = "investigation";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>investigation</b>
439         * <p>
440         * Description: <b></b><br>
441         * Type: <b>reference</b><br>
442         * Path: <b>ClinicalImpression.investigations.item</b><br>
443         * </p>
444         */
445        public static final ReferenceClientParam INVESTIGATION = new ReferenceClientParam(SP_INVESTIGATION);
446
447        /**
448         * Search parameter constant for <b>finding</b>
449         * <p>
450         * Description: <b></b><br>
451         * Type: <b>token</b><br>
452         * Path: <b>ClinicalImpression.finding.item</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="finding", path="ClinicalImpression.finding.item", description="", type="token"  )
456        public static final String SP_FINDING = "finding";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>finding</b>
460         * <p>
461         * Description: <b></b><br>
462         * Type: <b>token</b><br>
463         * Path: <b>ClinicalImpression.finding.item</b><br>
464         * </p>
465         */
466        public static final TokenClientParam FINDING = new TokenClientParam(SP_FINDING);
467
468        /**
469         * Search parameter constant for <b>resolved</b>
470         * <p>
471         * Description: <b></b><br>
472         * Type: <b>token</b><br>
473         * Path: <b>ClinicalImpression.resolved</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="resolved", path="ClinicalImpression.resolved", description="", type="token"  )
477        public static final String SP_RESOLVED = "resolved";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>resolved</b>
481         * <p>
482         * Description: <b></b><br>
483         * Type: <b>token</b><br>
484         * Path: <b>ClinicalImpression.resolved</b><br>
485         * </p>
486         */
487        public static final TokenClientParam RESOLVED = new TokenClientParam(SP_RESOLVED);
488
489        /**
490         * Search parameter constant for <b>ruledout</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>token</b><br>
494         * Path: <b>ClinicalImpression.ruledOut.item</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="ruledout", path="ClinicalImpression.ruledOut.item", description="", type="token"  )
498        public static final String SP_RULEDOUT = "ruledout";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>ruledout</b>
502         * <p>
503         * Description: <b></b><br>
504         * Type: <b>token</b><br>
505         * Path: <b>ClinicalImpression.ruledOut.item</b><br>
506         * </p>
507         */
508        public static final TokenClientParam RULEDOUT = new TokenClientParam(SP_RULEDOUT);
509
510        /**
511         * Search parameter constant for <b>plan</b>
512         * <p>
513         * Description: <b></b><br>
514         * Type: <b>reference</b><br>
515         * Path: <b>ClinicalImpression.plan</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="plan", path="ClinicalImpression.plan", description="", type="reference"  )
519        public static final String SP_PLAN = "plan";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>plan</b>
523         * <p>
524         * Description: <b></b><br>
525         * Type: <b>reference</b><br>
526         * Path: <b>ClinicalImpression.plan</b><br>
527         * </p>
528         */
529        public static final ReferenceClientParam PLAN = new ReferenceClientParam(SP_PLAN);
530
531        /**
532         * Search parameter constant for <b>action</b>
533         * <p>
534         * Description: <b></b><br>
535         * Type: <b>reference</b><br>
536         * Path: <b>ClinicalImpression.action</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="action", path="ClinicalImpression.action", description="", type="reference"  )
540        public static final String SP_ACTION = "action";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>action</b>
544         * <p>
545         * Description: <b></b><br>
546         * Type: <b>reference</b><br>
547         * Path: <b>ClinicalImpression.action</b><br>
548         * </p>
549         */
550        public static final ReferenceClientParam ACTION = new ReferenceClientParam(SP_ACTION);
551
552        /**
553         * Search parameter constant for <b>patient</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>reference</b><br>
557         * Path: <b>ClinicalImpression.patient</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="patient", path="ClinicalImpression.patient", description="", type="reference"  )
561        public static final String SP_PATIENT = "patient";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
565         * <p>
566         * Description: <b></b><br>
567         * Type: <b>reference</b><br>
568         * Path: <b>ClinicalImpression.patient</b><br>
569         * </p>
570         */
571        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
572
573        /**
574         * Search parameter constant for <b>assessor</b>
575         * <p>
576         * Description: <b></b><br>
577         * Type: <b>reference</b><br>
578         * Path: <b>ClinicalImpression.assessor</b><br>
579         * </p>
580         */
581        @SearchParamDefinition(name="assessor", path="ClinicalImpression.assessor", description="", type="reference"  )
582        public static final String SP_ASSESSOR = "assessor";
583
584        /**
585         * <b>Fluent Client</b> search parameter constant for <b>assessor</b>
586         * <p>
587         * Description: <b></b><br>
588         * Type: <b>reference</b><br>
589         * Path: <b>ClinicalImpression.assessor</b><br>
590         * </p>
591         */
592        public static final ReferenceClientParam ASSESSOR = new ReferenceClientParam(SP_ASSESSOR);
593
594        /**
595         * Search parameter constant for <b>date</b>
596         * <p>
597         * Description: <b></b><br>
598         * Type: <b>date</b><br>
599         * Path: <b>ClinicalImpression.date</b><br>
600         * </p>
601         */
602        @SearchParamDefinition(name="date", path="ClinicalImpression.date", description="", type="date"  )
603        public static final String SP_DATE = "date";
604
605        /**
606         * <b>Fluent Client</b> search parameter constant for <b>date</b>
607         * <p>
608         * Description: <b></b><br>
609         * Type: <b>date</b><br>
610         * Path: <b>ClinicalImpression.date</b><br>
611         * </p>
612         */
613        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
614
615        /**
616         * Search parameter constant for <b>status</b>
617         * <p>
618         * Description: <b></b><br>
619         * Type: <b>token</b><br>
620         * Path: <b>ClinicalImpression.status</b><br>
621         * </p>
622         */
623        @SearchParamDefinition(name="status", path="ClinicalImpression.status", description="", type="token"  )
624        public static final String SP_STATUS = "status";
625
626        /**
627         * <b>Fluent Client</b> search parameter constant for <b>status</b>
628         * <p>
629         * Description: <b></b><br>
630         * Type: <b>token</b><br>
631         * Path: <b>ClinicalImpression.status</b><br>
632         * </p>
633         */
634        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
635
636
637        /**
638         * Constant for fluent queries to be used to add include statements. Specifies
639         * the path value of "<b>ClinicalImpression:action</b>".
640         */
641        public static final Include INCLUDE_ACTION = new Include("ClinicalImpression:action");
642
643        /**
644         * Constant for fluent queries to be used to add include statements. Specifies
645         * the path value of "<b>ClinicalImpression:assessor</b>".
646         */
647        public static final Include INCLUDE_ASSESSOR = new Include("ClinicalImpression:assessor");
648
649        /**
650         * Constant for fluent queries to be used to add include statements. Specifies
651         * the path value of "<b>ClinicalImpression:investigation</b>".
652         */
653        public static final Include INCLUDE_INVESTIGATION = new Include("ClinicalImpression:investigation");
654
655        /**
656         * Constant for fluent queries to be used to add include statements. Specifies
657         * the path value of "<b>ClinicalImpression:patient</b>".
658         */
659        public static final Include INCLUDE_PATIENT = new Include("ClinicalImpression:patient");
660
661        /**
662         * Constant for fluent queries to be used to add include statements. Specifies
663         * the path value of "<b>ClinicalImpression:plan</b>".
664         */
665        public static final Include INCLUDE_PLAN = new Include("ClinicalImpression:plan");
666
667        /**
668         * Constant for fluent queries to be used to add include statements. Specifies
669         * the path value of "<b>ClinicalImpression:previous</b>".
670         */
671        public static final Include INCLUDE_PREVIOUS = new Include("ClinicalImpression:previous");
672
673        /**
674         * Constant for fluent queries to be used to add include statements. Specifies
675         * the path value of "<b>ClinicalImpression:problem</b>".
676         */
677        public static final Include INCLUDE_PROBLEM = new Include("ClinicalImpression:problem");
678
679        /**
680         * Constant for fluent queries to be used to add include statements. Specifies
681         * the path value of "<b>ClinicalImpression:trigger</b>".
682         */
683        public static final Include INCLUDE_TRIGGER = new Include("ClinicalImpression:trigger");
684
685
686        @Child(name="patient", order=0, min=1, max=1, summary=true, modifier=false, type={
687                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
688        @Description(
689                shortDefinition="",
690                formalDefinition="The patient being assessed"
691        )
692        private ResourceReferenceDt myPatient;
693        
694        @Child(name="assessor", order=1, min=0, max=1, summary=true, modifier=false, type={
695                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
696        @Description(
697                shortDefinition="",
698                formalDefinition="The clinician performing the assessment"
699        )
700        private ResourceReferenceDt myAssessor;
701        
702        @Child(name="status", type=CodeDt.class, order=2, min=1, max=1, summary=true, modifier=true)    
703        @Description(
704                shortDefinition="",
705                formalDefinition="Identifies the workflow status of the assessment"
706        )
707        private BoundCodeDt<ClinicalImpressionStatusEnum> myStatus;
708        
709        @Child(name="date", type=DateTimeDt.class, order=3, min=0, max=1, summary=true, modifier=false) 
710        @Description(
711                shortDefinition="",
712                formalDefinition="The point in time at which the assessment was concluded (not when it was recorded)"
713        )
714        private DateTimeDt myDate;
715        
716        @Child(name="description", type=StringDt.class, order=4, min=0, max=1, summary=true, modifier=false)    
717        @Description(
718                shortDefinition="",
719                formalDefinition="A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it"
720        )
721        private StringDt myDescription;
722        
723        @Child(name="previous", order=5, min=0, max=1, summary=false, modifier=false, type={
724                ca.uhn.fhir.model.dstu2.resource.ClinicalImpression.class       })
725        @Description(
726                shortDefinition="",
727                formalDefinition="A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes"
728        )
729        private ResourceReferenceDt myPrevious;
730        
731        @Child(name="problem", order=6, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false, type={
732                ca.uhn.fhir.model.dstu2.resource.Condition.class,               ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance.class       })
733        @Description(
734                shortDefinition="",
735                formalDefinition="This a list of the general problems/conditions for a patient"
736        )
737        private java.util.List<ResourceReferenceDt> myProblem;
738        
739        @Child(name="trigger", order=7, min=0, max=1, summary=false, modifier=false, type={
740                CodeableConceptDt.class,                IResource.class })
741        @Description(
742                shortDefinition="",
743                formalDefinition="The request or event that necessitated this assessment. This may be a diagnosis, a Care Plan, a Request Referral, or some other resource"
744        )
745        private IDatatype myTrigger;
746        
747        @Child(name="investigations", order=8, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
748        @Description(
749                shortDefinition="",
750                formalDefinition="One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes"
751        )
752        private java.util.List<Investigations> myInvestigations;
753        
754        @Child(name="protocol", type=UriDt.class, order=9, min=0, max=1, summary=false, modifier=false) 
755        @Description(
756                shortDefinition="",
757                formalDefinition="Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis"
758        )
759        private UriDt myProtocol;
760        
761        @Child(name="summary", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false)      
762        @Description(
763                shortDefinition="",
764                formalDefinition="A text summary of the investigations and the diagnosis"
765        )
766        private StringDt mySummary;
767        
768        @Child(name="finding", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
769        @Description(
770                shortDefinition="",
771                formalDefinition="Specific findings or diagnoses that was considered likely or relevant to ongoing treatment"
772        )
773        private java.util.List<Finding> myFinding;
774        
775        @Child(name="resolved", type=CodeableConceptDt.class, order=12, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
776        @Description(
777                shortDefinition="",
778                formalDefinition="Diagnoses/conditions resolved since the last assessment"
779        )
780        private java.util.List<CodeableConceptDt> myResolved;
781        
782        @Child(name="ruledOut", order=13, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
783        @Description(
784                shortDefinition="",
785                formalDefinition="Diagnosis considered not possible"
786        )
787        private java.util.List<RuledOut> myRuledOut;
788        
789        @Child(name="prognosis", type=StringDt.class, order=14, min=0, max=1, summary=false, modifier=false)    
790        @Description(
791                shortDefinition="",
792                formalDefinition="Estimate of likely outcome"
793        )
794        private StringDt myPrognosis;
795        
796        @Child(name="plan", order=15, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
797                ca.uhn.fhir.model.dstu2.resource.CarePlan.class,                ca.uhn.fhir.model.dstu2.resource.Appointment.class,             ca.uhn.fhir.model.dstu2.resource.CommunicationRequest.class,            ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest.class,                ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder.class,                 ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class,                 ca.uhn.fhir.model.dstu2.resource.NutritionOrder.class,          ca.uhn.fhir.model.dstu2.resource.Order.class,           ca.uhn.fhir.model.dstu2.resource.ProcedureRequest.class,                ca.uhn.fhir.model.dstu2.resource.ProcessRequest.class,          ca.uhn.fhir.model.dstu2.resource.ReferralRequest.class,                 ca.uhn.fhir.model.dstu2.resource.SupplyRequest.class,           ca.uhn.fhir.model.dstu2.resource.VisionPrescription.class       })
798        @Description(
799                shortDefinition="",
800                formalDefinition="Plan of action after assessment"
801        )
802        private java.util.List<ResourceReferenceDt> myPlan;
803        
804        @Child(name="action", order=16, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
805                ca.uhn.fhir.model.dstu2.resource.ReferralRequest.class,                 ca.uhn.fhir.model.dstu2.resource.ProcedureRequest.class,                ca.uhn.fhir.model.dstu2.resource.Procedure.class,               ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class,                 ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder.class,                 ca.uhn.fhir.model.dstu2.resource.NutritionOrder.class,          ca.uhn.fhir.model.dstu2.resource.SupplyRequest.class,           ca.uhn.fhir.model.dstu2.resource.Appointment.class      })
806        @Description(
807                shortDefinition="",
808                formalDefinition="Actions taken during assessment"
809        )
810        private java.util.List<ResourceReferenceDt> myAction;
811        
812
813        @Override
814        public boolean isEmpty() {
815                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myPatient,  myAssessor,  myStatus,  myDate,  myDescription,  myPrevious,  myProblem,  myTrigger,  myInvestigations,  myProtocol,  mySummary,  myFinding,  myResolved,  myRuledOut,  myPrognosis,  myPlan,  myAction);
816        }
817        
818        @Override
819        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
820                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPatient, myAssessor, myStatus, myDate, myDescription, myPrevious, myProblem, myTrigger, myInvestigations, myProtocol, mySummary, myFinding, myResolved, myRuledOut, myPrognosis, myPlan, myAction);
821        }
822
823        /**
824         * Gets the value(s) for <b>patient</b> ().
825         * creating it if it does
826         * not exist. Will not return <code>null</code>.
827         *
828     * <p>
829     * <b>Definition:</b>
830     * The patient being assessed
831     * </p> 
832         */
833        public ResourceReferenceDt getPatient() {  
834                if (myPatient == null) {
835                        myPatient = new ResourceReferenceDt();
836                }
837                return myPatient;
838        }
839
840        /**
841         * Sets the value(s) for <b>patient</b> ()
842         *
843     * <p>
844     * <b>Definition:</b>
845     * The patient being assessed
846     * </p> 
847         */
848        public ClinicalImpression setPatient(ResourceReferenceDt theValue) {
849                myPatient = theValue;
850                return this;
851        }
852        
853        
854
855  
856        /**
857         * Gets the value(s) for <b>assessor</b> ().
858         * creating it if it does
859         * not exist. Will not return <code>null</code>.
860         *
861     * <p>
862     * <b>Definition:</b>
863     * The clinician performing the assessment
864     * </p> 
865         */
866        public ResourceReferenceDt getAssessor() {  
867                if (myAssessor == null) {
868                        myAssessor = new ResourceReferenceDt();
869                }
870                return myAssessor;
871        }
872
873        /**
874         * Sets the value(s) for <b>assessor</b> ()
875         *
876     * <p>
877     * <b>Definition:</b>
878     * The clinician performing the assessment
879     * </p> 
880         */
881        public ClinicalImpression setAssessor(ResourceReferenceDt theValue) {
882                myAssessor = theValue;
883                return this;
884        }
885        
886        
887
888  
889        /**
890         * Gets the value(s) for <b>status</b> ().
891         * creating it if it does
892         * not exist. Will not return <code>null</code>.
893         *
894     * <p>
895     * <b>Definition:</b>
896     * Identifies the workflow status of the assessment
897     * </p> 
898         */
899        public BoundCodeDt<ClinicalImpressionStatusEnum> getStatusElement() {  
900                if (myStatus == null) {
901                        myStatus = new BoundCodeDt<ClinicalImpressionStatusEnum>(ClinicalImpressionStatusEnum.VALUESET_BINDER);
902                }
903                return myStatus;
904        }
905
906        
907        /**
908         * Gets the value(s) for <b>status</b> ().
909         * creating it if it does
910         * not exist. Will not return <code>null</code>.
911         *
912     * <p>
913     * <b>Definition:</b>
914     * Identifies the workflow status of the assessment
915     * </p> 
916         */
917        public String getStatus() {  
918                return getStatusElement().getValue();
919        }
920
921        /**
922         * Sets the value(s) for <b>status</b> ()
923         *
924     * <p>
925     * <b>Definition:</b>
926     * Identifies the workflow status of the assessment
927     * </p> 
928         */
929        public ClinicalImpression setStatus(BoundCodeDt<ClinicalImpressionStatusEnum> theValue) {
930                myStatus = theValue;
931                return this;
932        }
933        
934        
935
936        /**
937         * Sets the value(s) for <b>status</b> ()
938         *
939     * <p>
940     * <b>Definition:</b>
941     * Identifies the workflow status of the assessment
942     * </p> 
943         */
944        public ClinicalImpression setStatus(ClinicalImpressionStatusEnum theValue) {
945                setStatus(new BoundCodeDt<ClinicalImpressionStatusEnum>(ClinicalImpressionStatusEnum.VALUESET_BINDER, theValue));
946                
947/*
948                getStatusElement().setValueAsEnum(theValue);
949*/
950                return this;
951        }
952
953  
954        /**
955         * Gets the value(s) for <b>date</b> ().
956         * creating it if it does
957         * not exist. Will not return <code>null</code>.
958         *
959     * <p>
960     * <b>Definition:</b>
961     * The point in time at which the assessment was concluded (not when it was recorded)
962     * </p> 
963         */
964        public DateTimeDt getDateElement() {  
965                if (myDate == null) {
966                        myDate = new DateTimeDt();
967                }
968                return myDate;
969        }
970
971        
972        /**
973         * Gets the value(s) for <b>date</b> ().
974         * creating it if it does
975         * not exist. Will not return <code>null</code>.
976         *
977     * <p>
978     * <b>Definition:</b>
979     * The point in time at which the assessment was concluded (not when it was recorded)
980     * </p> 
981         */
982        public Date getDate() {  
983                return getDateElement().getValue();
984        }
985
986        /**
987         * Sets the value(s) for <b>date</b> ()
988         *
989     * <p>
990     * <b>Definition:</b>
991     * The point in time at which the assessment was concluded (not when it was recorded)
992     * </p> 
993         */
994        public ClinicalImpression setDate(DateTimeDt theValue) {
995                myDate = theValue;
996                return this;
997        }
998        
999        
1000
1001        /**
1002         * Sets the value for <b>date</b> ()
1003         *
1004     * <p>
1005     * <b>Definition:</b>
1006     * The point in time at which the assessment was concluded (not when it was recorded)
1007     * </p> 
1008         */
1009        public ClinicalImpression setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1010                myDate = new DateTimeDt(theDate, thePrecision); 
1011                return this; 
1012        }
1013
1014        /**
1015         * Sets the value for <b>date</b> ()
1016         *
1017     * <p>
1018     * <b>Definition:</b>
1019     * The point in time at which the assessment was concluded (not when it was recorded)
1020     * </p> 
1021         */
1022        public ClinicalImpression setDateWithSecondsPrecision( Date theDate) {
1023                myDate = new DateTimeDt(theDate); 
1024                return this; 
1025        }
1026
1027 
1028        /**
1029         * Gets the value(s) for <b>description</b> ().
1030         * creating it if it does
1031         * not exist. Will not return <code>null</code>.
1032         *
1033     * <p>
1034     * <b>Definition:</b>
1035     * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it
1036     * </p> 
1037         */
1038        public StringDt getDescriptionElement() {  
1039                if (myDescription == null) {
1040                        myDescription = new StringDt();
1041                }
1042                return myDescription;
1043        }
1044
1045        
1046        /**
1047         * Gets the value(s) for <b>description</b> ().
1048         * creating it if it does
1049         * not exist. Will not return <code>null</code>.
1050         *
1051     * <p>
1052     * <b>Definition:</b>
1053     * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it
1054     * </p> 
1055         */
1056        public String getDescription() {  
1057                return getDescriptionElement().getValue();
1058        }
1059
1060        /**
1061         * Sets the value(s) for <b>description</b> ()
1062         *
1063     * <p>
1064     * <b>Definition:</b>
1065     * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it
1066     * </p> 
1067         */
1068        public ClinicalImpression setDescription(StringDt theValue) {
1069                myDescription = theValue;
1070                return this;
1071        }
1072        
1073        
1074
1075        /**
1076         * Sets the value for <b>description</b> ()
1077         *
1078     * <p>
1079     * <b>Definition:</b>
1080     * A summary of the context and/or cause of the assessment - why / where was it peformed, and what patient events/sstatus prompted it
1081     * </p> 
1082         */
1083        public ClinicalImpression setDescription( String theString) {
1084                myDescription = new StringDt(theString); 
1085                return this; 
1086        }
1087
1088 
1089        /**
1090         * Gets the value(s) for <b>previous</b> ().
1091         * creating it if it does
1092         * not exist. Will not return <code>null</code>.
1093         *
1094     * <p>
1095     * <b>Definition:</b>
1096     * A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes
1097     * </p> 
1098         */
1099        public ResourceReferenceDt getPrevious() {  
1100                if (myPrevious == null) {
1101                        myPrevious = new ResourceReferenceDt();
1102                }
1103                return myPrevious;
1104        }
1105
1106        /**
1107         * Sets the value(s) for <b>previous</b> ()
1108         *
1109     * <p>
1110     * <b>Definition:</b>
1111     * A reference to the last assesment that was conducted bon this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes
1112     * </p> 
1113         */
1114        public ClinicalImpression setPrevious(ResourceReferenceDt theValue) {
1115                myPrevious = theValue;
1116                return this;
1117        }
1118        
1119        
1120
1121  
1122        /**
1123         * Gets the value(s) for <b>problem</b> ().
1124         * creating it if it does
1125         * not exist. Will not return <code>null</code>.
1126         *
1127     * <p>
1128     * <b>Definition:</b>
1129     * This a list of the general problems/conditions for a patient
1130     * </p> 
1131         */
1132        public java.util.List<ResourceReferenceDt> getProblem() {  
1133                if (myProblem == null) {
1134                        myProblem = new java.util.ArrayList<ResourceReferenceDt>();
1135                }
1136                return myProblem;
1137        }
1138
1139        /**
1140         * Sets the value(s) for <b>problem</b> ()
1141         *
1142     * <p>
1143     * <b>Definition:</b>
1144     * This a list of the general problems/conditions for a patient
1145     * </p> 
1146         */
1147        public ClinicalImpression setProblem(java.util.List<ResourceReferenceDt> theValue) {
1148                myProblem = theValue;
1149                return this;
1150        }
1151        
1152        
1153
1154        /**
1155         * Adds and returns a new value for <b>problem</b> ()
1156         *
1157     * <p>
1158     * <b>Definition:</b>
1159     * This a list of the general problems/conditions for a patient
1160     * </p> 
1161         */
1162        public ResourceReferenceDt addProblem() {
1163                ResourceReferenceDt newType = new ResourceReferenceDt();
1164                getProblem().add(newType);
1165                return newType; 
1166        }
1167  
1168        /**
1169         * Gets the value(s) for <b>trigger[x]</b> ().
1170         * creating it if it does
1171         * not exist. Will not return <code>null</code>.
1172         *
1173     * <p>
1174     * <b>Definition:</b>
1175     * The request or event that necessitated this assessment. This may be a diagnosis, a Care Plan, a Request Referral, or some other resource
1176     * </p> 
1177         */
1178        public IDatatype getTrigger() {  
1179                return myTrigger;
1180        }
1181
1182        /**
1183         * Sets the value(s) for <b>trigger[x]</b> ()
1184         *
1185     * <p>
1186     * <b>Definition:</b>
1187     * The request or event that necessitated this assessment. This may be a diagnosis, a Care Plan, a Request Referral, or some other resource
1188     * </p> 
1189         */
1190        public ClinicalImpression setTrigger(IDatatype theValue) {
1191                myTrigger = theValue;
1192                return this;
1193        }
1194        
1195        
1196
1197  
1198        /**
1199         * Gets the value(s) for <b>investigations</b> ().
1200         * creating it if it does
1201         * not exist. Will not return <code>null</code>.
1202         *
1203     * <p>
1204     * <b>Definition:</b>
1205     * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1206     * </p> 
1207         */
1208        public java.util.List<Investigations> getInvestigations() {  
1209                if (myInvestigations == null) {
1210                        myInvestigations = new java.util.ArrayList<Investigations>();
1211                }
1212                return myInvestigations;
1213        }
1214
1215        /**
1216         * Sets the value(s) for <b>investigations</b> ()
1217         *
1218     * <p>
1219     * <b>Definition:</b>
1220     * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1221     * </p> 
1222         */
1223        public ClinicalImpression setInvestigations(java.util.List<Investigations> theValue) {
1224                myInvestigations = theValue;
1225                return this;
1226        }
1227        
1228        
1229
1230        /**
1231         * Adds and returns a new value for <b>investigations</b> ()
1232         *
1233     * <p>
1234     * <b>Definition:</b>
1235     * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1236     * </p> 
1237         */
1238        public Investigations addInvestigations() {
1239                Investigations newType = new Investigations();
1240                getInvestigations().add(newType);
1241                return newType; 
1242        }
1243
1244        /**
1245         * Adds a given new value for <b>investigations</b> ()
1246         *
1247         * <p>
1248         * <b>Definition:</b>
1249         * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1250         * </p>
1251         * @param theValue The investigations to add (must not be <code>null</code>)
1252         */
1253        public ClinicalImpression addInvestigations(Investigations theValue) {
1254                if (theValue == null) {
1255                        throw new NullPointerException("theValue must not be null");
1256                }
1257                getInvestigations().add(theValue);
1258                return this;
1259        }
1260
1261        /**
1262         * Gets the first repetition for <b>investigations</b> (),
1263         * creating it if it does not already exist.
1264         *
1265     * <p>
1266     * <b>Definition:</b>
1267     * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1268     * </p> 
1269         */
1270        public Investigations getInvestigationsFirstRep() {
1271                if (getInvestigations().isEmpty()) {
1272                        return addInvestigations();
1273                }
1274                return getInvestigations().get(0); 
1275        }
1276  
1277        /**
1278         * Gets the value(s) for <b>protocol</b> ().
1279         * creating it if it does
1280         * not exist. Will not return <code>null</code>.
1281         *
1282     * <p>
1283     * <b>Definition:</b>
1284     * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis
1285     * </p> 
1286         */
1287        public UriDt getProtocolElement() {  
1288                if (myProtocol == null) {
1289                        myProtocol = new UriDt();
1290                }
1291                return myProtocol;
1292        }
1293
1294        
1295        /**
1296         * Gets the value(s) for <b>protocol</b> ().
1297         * creating it if it does
1298         * not exist. Will not return <code>null</code>.
1299         *
1300     * <p>
1301     * <b>Definition:</b>
1302     * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis
1303     * </p> 
1304         */
1305        public String getProtocol() {  
1306                return getProtocolElement().getValue();
1307        }
1308
1309        /**
1310         * Sets the value(s) for <b>protocol</b> ()
1311         *
1312     * <p>
1313     * <b>Definition:</b>
1314     * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis
1315     * </p> 
1316         */
1317        public ClinicalImpression setProtocol(UriDt theValue) {
1318                myProtocol = theValue;
1319                return this;
1320        }
1321        
1322        
1323
1324        /**
1325         * Sets the value for <b>protocol</b> ()
1326         *
1327     * <p>
1328     * <b>Definition:</b>
1329     * Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis
1330     * </p> 
1331         */
1332        public ClinicalImpression setProtocol( String theUri) {
1333                myProtocol = new UriDt(theUri); 
1334                return this; 
1335        }
1336
1337 
1338        /**
1339         * Gets the value(s) for <b>summary</b> ().
1340         * creating it if it does
1341         * not exist. Will not return <code>null</code>.
1342         *
1343     * <p>
1344     * <b>Definition:</b>
1345     * A text summary of the investigations and the diagnosis
1346     * </p> 
1347         */
1348        public StringDt getSummaryElement() {  
1349                if (mySummary == null) {
1350                        mySummary = new StringDt();
1351                }
1352                return mySummary;
1353        }
1354
1355        
1356        /**
1357         * Gets the value(s) for <b>summary</b> ().
1358         * creating it if it does
1359         * not exist. Will not return <code>null</code>.
1360         *
1361     * <p>
1362     * <b>Definition:</b>
1363     * A text summary of the investigations and the diagnosis
1364     * </p> 
1365         */
1366        public String getSummary() {  
1367                return getSummaryElement().getValue();
1368        }
1369
1370        /**
1371         * Sets the value(s) for <b>summary</b> ()
1372         *
1373     * <p>
1374     * <b>Definition:</b>
1375     * A text summary of the investigations and the diagnosis
1376     * </p> 
1377         */
1378        public ClinicalImpression setSummary(StringDt theValue) {
1379                mySummary = theValue;
1380                return this;
1381        }
1382        
1383        
1384
1385        /**
1386         * Sets the value for <b>summary</b> ()
1387         *
1388     * <p>
1389     * <b>Definition:</b>
1390     * A text summary of the investigations and the diagnosis
1391     * </p> 
1392         */
1393        public ClinicalImpression setSummary( String theString) {
1394                mySummary = new StringDt(theString); 
1395                return this; 
1396        }
1397
1398 
1399        /**
1400         * Gets the value(s) for <b>finding</b> ().
1401         * creating it if it does
1402         * not exist. Will not return <code>null</code>.
1403         *
1404     * <p>
1405     * <b>Definition:</b>
1406     * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1407     * </p> 
1408         */
1409        public java.util.List<Finding> getFinding() {  
1410                if (myFinding == null) {
1411                        myFinding = new java.util.ArrayList<Finding>();
1412                }
1413                return myFinding;
1414        }
1415
1416        /**
1417         * Sets the value(s) for <b>finding</b> ()
1418         *
1419     * <p>
1420     * <b>Definition:</b>
1421     * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1422     * </p> 
1423         */
1424        public ClinicalImpression setFinding(java.util.List<Finding> theValue) {
1425                myFinding = theValue;
1426                return this;
1427        }
1428        
1429        
1430
1431        /**
1432         * Adds and returns a new value for <b>finding</b> ()
1433         *
1434     * <p>
1435     * <b>Definition:</b>
1436     * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1437     * </p> 
1438         */
1439        public Finding addFinding() {
1440                Finding newType = new Finding();
1441                getFinding().add(newType);
1442                return newType; 
1443        }
1444
1445        /**
1446         * Adds a given new value for <b>finding</b> ()
1447         *
1448         * <p>
1449         * <b>Definition:</b>
1450         * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1451         * </p>
1452         * @param theValue The finding to add (must not be <code>null</code>)
1453         */
1454        public ClinicalImpression addFinding(Finding theValue) {
1455                if (theValue == null) {
1456                        throw new NullPointerException("theValue must not be null");
1457                }
1458                getFinding().add(theValue);
1459                return this;
1460        }
1461
1462        /**
1463         * Gets the first repetition for <b>finding</b> (),
1464         * creating it if it does not already exist.
1465         *
1466     * <p>
1467     * <b>Definition:</b>
1468     * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1469     * </p> 
1470         */
1471        public Finding getFindingFirstRep() {
1472                if (getFinding().isEmpty()) {
1473                        return addFinding();
1474                }
1475                return getFinding().get(0); 
1476        }
1477  
1478        /**
1479         * Gets the value(s) for <b>resolved</b> ().
1480         * creating it if it does
1481         * not exist. Will not return <code>null</code>.
1482         *
1483     * <p>
1484     * <b>Definition:</b>
1485     * Diagnoses/conditions resolved since the last assessment
1486     * </p> 
1487         */
1488        public java.util.List<CodeableConceptDt> getResolved() {  
1489                if (myResolved == null) {
1490                        myResolved = new java.util.ArrayList<CodeableConceptDt>();
1491                }
1492                return myResolved;
1493        }
1494
1495        /**
1496         * Sets the value(s) for <b>resolved</b> ()
1497         *
1498     * <p>
1499     * <b>Definition:</b>
1500     * Diagnoses/conditions resolved since the last assessment
1501     * </p> 
1502         */
1503        public ClinicalImpression setResolved(java.util.List<CodeableConceptDt> theValue) {
1504                myResolved = theValue;
1505                return this;
1506        }
1507        
1508        
1509
1510        /**
1511         * Adds and returns a new value for <b>resolved</b> ()
1512         *
1513     * <p>
1514     * <b>Definition:</b>
1515     * Diagnoses/conditions resolved since the last assessment
1516     * </p> 
1517         */
1518        public CodeableConceptDt addResolved() {
1519                CodeableConceptDt newType = new CodeableConceptDt();
1520                getResolved().add(newType);
1521                return newType; 
1522        }
1523
1524        /**
1525         * Adds a given new value for <b>resolved</b> ()
1526         *
1527         * <p>
1528         * <b>Definition:</b>
1529         * Diagnoses/conditions resolved since the last assessment
1530         * </p>
1531         * @param theValue The resolved to add (must not be <code>null</code>)
1532         */
1533        public ClinicalImpression addResolved(CodeableConceptDt theValue) {
1534                if (theValue == null) {
1535                        throw new NullPointerException("theValue must not be null");
1536                }
1537                getResolved().add(theValue);
1538                return this;
1539        }
1540
1541        /**
1542         * Gets the first repetition for <b>resolved</b> (),
1543         * creating it if it does not already exist.
1544         *
1545     * <p>
1546     * <b>Definition:</b>
1547     * Diagnoses/conditions resolved since the last assessment
1548     * </p> 
1549         */
1550        public CodeableConceptDt getResolvedFirstRep() {
1551                if (getResolved().isEmpty()) {
1552                        return addResolved();
1553                }
1554                return getResolved().get(0); 
1555        }
1556  
1557        /**
1558         * Gets the value(s) for <b>ruledOut</b> ().
1559         * creating it if it does
1560         * not exist. Will not return <code>null</code>.
1561         *
1562     * <p>
1563     * <b>Definition:</b>
1564     * Diagnosis considered not possible
1565     * </p> 
1566         */
1567        public java.util.List<RuledOut> getRuledOut() {  
1568                if (myRuledOut == null) {
1569                        myRuledOut = new java.util.ArrayList<RuledOut>();
1570                }
1571                return myRuledOut;
1572        }
1573
1574        /**
1575         * Sets the value(s) for <b>ruledOut</b> ()
1576         *
1577     * <p>
1578     * <b>Definition:</b>
1579     * Diagnosis considered not possible
1580     * </p> 
1581         */
1582        public ClinicalImpression setRuledOut(java.util.List<RuledOut> theValue) {
1583                myRuledOut = theValue;
1584                return this;
1585        }
1586        
1587        
1588
1589        /**
1590         * Adds and returns a new value for <b>ruledOut</b> ()
1591         *
1592     * <p>
1593     * <b>Definition:</b>
1594     * Diagnosis considered not possible
1595     * </p> 
1596         */
1597        public RuledOut addRuledOut() {
1598                RuledOut newType = new RuledOut();
1599                getRuledOut().add(newType);
1600                return newType; 
1601        }
1602
1603        /**
1604         * Adds a given new value for <b>ruledOut</b> ()
1605         *
1606         * <p>
1607         * <b>Definition:</b>
1608         * Diagnosis considered not possible
1609         * </p>
1610         * @param theValue The ruledOut to add (must not be <code>null</code>)
1611         */
1612        public ClinicalImpression addRuledOut(RuledOut theValue) {
1613                if (theValue == null) {
1614                        throw new NullPointerException("theValue must not be null");
1615                }
1616                getRuledOut().add(theValue);
1617                return this;
1618        }
1619
1620        /**
1621         * Gets the first repetition for <b>ruledOut</b> (),
1622         * creating it if it does not already exist.
1623         *
1624     * <p>
1625     * <b>Definition:</b>
1626     * Diagnosis considered not possible
1627     * </p> 
1628         */
1629        public RuledOut getRuledOutFirstRep() {
1630                if (getRuledOut().isEmpty()) {
1631                        return addRuledOut();
1632                }
1633                return getRuledOut().get(0); 
1634        }
1635  
1636        /**
1637         * Gets the value(s) for <b>prognosis</b> ().
1638         * creating it if it does
1639         * not exist. Will not return <code>null</code>.
1640         *
1641     * <p>
1642     * <b>Definition:</b>
1643     * Estimate of likely outcome
1644     * </p> 
1645         */
1646        public StringDt getPrognosisElement() {  
1647                if (myPrognosis == null) {
1648                        myPrognosis = new StringDt();
1649                }
1650                return myPrognosis;
1651        }
1652
1653        
1654        /**
1655         * Gets the value(s) for <b>prognosis</b> ().
1656         * creating it if it does
1657         * not exist. Will not return <code>null</code>.
1658         *
1659     * <p>
1660     * <b>Definition:</b>
1661     * Estimate of likely outcome
1662     * </p> 
1663         */
1664        public String getPrognosis() {  
1665                return getPrognosisElement().getValue();
1666        }
1667
1668        /**
1669         * Sets the value(s) for <b>prognosis</b> ()
1670         *
1671     * <p>
1672     * <b>Definition:</b>
1673     * Estimate of likely outcome
1674     * </p> 
1675         */
1676        public ClinicalImpression setPrognosis(StringDt theValue) {
1677                myPrognosis = theValue;
1678                return this;
1679        }
1680        
1681        
1682
1683        /**
1684         * Sets the value for <b>prognosis</b> ()
1685         *
1686     * <p>
1687     * <b>Definition:</b>
1688     * Estimate of likely outcome
1689     * </p> 
1690         */
1691        public ClinicalImpression setPrognosis( String theString) {
1692                myPrognosis = new StringDt(theString); 
1693                return this; 
1694        }
1695
1696 
1697        /**
1698         * Gets the value(s) for <b>plan</b> ().
1699         * creating it if it does
1700         * not exist. Will not return <code>null</code>.
1701         *
1702     * <p>
1703     * <b>Definition:</b>
1704     * Plan of action after assessment
1705     * </p> 
1706         */
1707        public java.util.List<ResourceReferenceDt> getPlan() {  
1708                if (myPlan == null) {
1709                        myPlan = new java.util.ArrayList<ResourceReferenceDt>();
1710                }
1711                return myPlan;
1712        }
1713
1714        /**
1715         * Sets the value(s) for <b>plan</b> ()
1716         *
1717     * <p>
1718     * <b>Definition:</b>
1719     * Plan of action after assessment
1720     * </p> 
1721         */
1722        public ClinicalImpression setPlan(java.util.List<ResourceReferenceDt> theValue) {
1723                myPlan = theValue;
1724                return this;
1725        }
1726        
1727        
1728
1729        /**
1730         * Adds and returns a new value for <b>plan</b> ()
1731         *
1732     * <p>
1733     * <b>Definition:</b>
1734     * Plan of action after assessment
1735     * </p> 
1736         */
1737        public ResourceReferenceDt addPlan() {
1738                ResourceReferenceDt newType = new ResourceReferenceDt();
1739                getPlan().add(newType);
1740                return newType; 
1741        }
1742  
1743        /**
1744         * Gets the value(s) for <b>action</b> ().
1745         * creating it if it does
1746         * not exist. Will not return <code>null</code>.
1747         *
1748     * <p>
1749     * <b>Definition:</b>
1750     * Actions taken during assessment
1751     * </p> 
1752         */
1753        public java.util.List<ResourceReferenceDt> getAction() {  
1754                if (myAction == null) {
1755                        myAction = new java.util.ArrayList<ResourceReferenceDt>();
1756                }
1757                return myAction;
1758        }
1759
1760        /**
1761         * Sets the value(s) for <b>action</b> ()
1762         *
1763     * <p>
1764     * <b>Definition:</b>
1765     * Actions taken during assessment
1766     * </p> 
1767         */
1768        public ClinicalImpression setAction(java.util.List<ResourceReferenceDt> theValue) {
1769                myAction = theValue;
1770                return this;
1771        }
1772        
1773        
1774
1775        /**
1776         * Adds and returns a new value for <b>action</b> ()
1777         *
1778     * <p>
1779     * <b>Definition:</b>
1780     * Actions taken during assessment
1781     * </p> 
1782         */
1783        public ResourceReferenceDt addAction() {
1784                ResourceReferenceDt newType = new ResourceReferenceDt();
1785                getAction().add(newType);
1786                return newType; 
1787        }
1788  
1789        /**
1790         * Block class for child element: <b>ClinicalImpression.investigations</b> ()
1791         *
1792     * <p>
1793     * <b>Definition:</b>
1794     * One or more sets of investigations (signs, symptions, etc.). The actual grouping of investigations vary greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes
1795     * </p> 
1796         */
1797        @Block()        
1798        public static class Investigations 
1799            extends  BaseIdentifiableElement        implements IResourceBlock {
1800        
1801        @Child(name="code", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
1802        @Description(
1803                shortDefinition="",
1804                formalDefinition="A name/code for the group (\"set\") of investigations. Typically, this will be something like \"signs\", \"symptoms\", \"clinical\", \"diagnostic\", but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used"
1805        )
1806        private CodeableConceptDt myCode;
1807        
1808        @Child(name="item", order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
1809                ca.uhn.fhir.model.dstu2.resource.Observation.class,             ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse.class,           ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory.class,             ca.uhn.fhir.model.dstu2.resource.DiagnosticReport.class })
1810        @Description(
1811                shortDefinition="",
1812                formalDefinition="A record of a specific investigation that was undertaken"
1813        )
1814        private java.util.List<ResourceReferenceDt> myItem;
1815        
1816
1817        @Override
1818        public boolean isEmpty() {
1819                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCode,  myItem);
1820        }
1821        
1822        @Override
1823        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1824                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCode, myItem);
1825        }
1826
1827        /**
1828         * Gets the value(s) for <b>code</b> ().
1829         * creating it if it does
1830         * not exist. Will not return <code>null</code>.
1831         *
1832     * <p>
1833     * <b>Definition:</b>
1834     * A name/code for the group (\&quot;set\&quot;) of investigations. Typically, this will be something like \&quot;signs\&quot;, \&quot;symptoms\&quot;, \&quot;clinical\&quot;, \&quot;diagnostic\&quot;, but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used
1835     * </p> 
1836         */
1837        public CodeableConceptDt getCode() {  
1838                if (myCode == null) {
1839                        myCode = new CodeableConceptDt();
1840                }
1841                return myCode;
1842        }
1843
1844        /**
1845         * Sets the value(s) for <b>code</b> ()
1846         *
1847     * <p>
1848     * <b>Definition:</b>
1849     * A name/code for the group (\&quot;set\&quot;) of investigations. Typically, this will be something like \&quot;signs\&quot;, \&quot;symptoms\&quot;, \&quot;clinical\&quot;, \&quot;diagnostic\&quot;, but the list is not constrained, and others such groups such as (exposure|family|travel|nutitirional) history may be used
1850     * </p> 
1851         */
1852        public Investigations setCode(CodeableConceptDt theValue) {
1853                myCode = theValue;
1854                return this;
1855        }
1856        
1857        
1858
1859  
1860        /**
1861         * Gets the value(s) for <b>item</b> ().
1862         * creating it if it does
1863         * not exist. Will not return <code>null</code>.
1864         *
1865     * <p>
1866     * <b>Definition:</b>
1867     * A record of a specific investigation that was undertaken
1868     * </p> 
1869         */
1870        public java.util.List<ResourceReferenceDt> getItem() {  
1871                if (myItem == null) {
1872                        myItem = new java.util.ArrayList<ResourceReferenceDt>();
1873                }
1874                return myItem;
1875        }
1876
1877        /**
1878         * Sets the value(s) for <b>item</b> ()
1879         *
1880     * <p>
1881     * <b>Definition:</b>
1882     * A record of a specific investigation that was undertaken
1883     * </p> 
1884         */
1885        public Investigations setItem(java.util.List<ResourceReferenceDt> theValue) {
1886                myItem = theValue;
1887                return this;
1888        }
1889        
1890        
1891
1892        /**
1893         * Adds and returns a new value for <b>item</b> ()
1894         *
1895     * <p>
1896     * <b>Definition:</b>
1897     * A record of a specific investigation that was undertaken
1898     * </p> 
1899         */
1900        public ResourceReferenceDt addItem() {
1901                ResourceReferenceDt newType = new ResourceReferenceDt();
1902                getItem().add(newType);
1903                return newType; 
1904        }
1905  
1906
1907
1908        }
1909
1910
1911        /**
1912         * Block class for child element: <b>ClinicalImpression.finding</b> ()
1913         *
1914     * <p>
1915     * <b>Definition:</b>
1916     * Specific findings or diagnoses that was considered likely or relevant to ongoing treatment
1917     * </p> 
1918         */
1919        @Block()        
1920        public static class Finding 
1921            extends  BaseIdentifiableElement        implements IResourceBlock {
1922        
1923        @Child(name="item", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
1924        @Description(
1925                shortDefinition="",
1926                formalDefinition="Specific text of code for finding or diagnosis"
1927        )
1928        private CodeableConceptDt myItem;
1929        
1930        @Child(name="cause", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false) 
1931        @Description(
1932                shortDefinition="",
1933                formalDefinition="Which investigations support finding or diagnosis"
1934        )
1935        private StringDt myCause;
1936        
1937
1938        @Override
1939        public boolean isEmpty() {
1940                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myItem,  myCause);
1941        }
1942        
1943        @Override
1944        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1945                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myItem, myCause);
1946        }
1947
1948        /**
1949         * Gets the value(s) for <b>item</b> ().
1950         * creating it if it does
1951         * not exist. Will not return <code>null</code>.
1952         *
1953     * <p>
1954     * <b>Definition:</b>
1955     * Specific text of code for finding or diagnosis
1956     * </p> 
1957         */
1958        public CodeableConceptDt getItem() {  
1959                if (myItem == null) {
1960                        myItem = new CodeableConceptDt();
1961                }
1962                return myItem;
1963        }
1964
1965        /**
1966         * Sets the value(s) for <b>item</b> ()
1967         *
1968     * <p>
1969     * <b>Definition:</b>
1970     * Specific text of code for finding or diagnosis
1971     * </p> 
1972         */
1973        public Finding setItem(CodeableConceptDt theValue) {
1974                myItem = theValue;
1975                return this;
1976        }
1977        
1978        
1979
1980  
1981        /**
1982         * Gets the value(s) for <b>cause</b> ().
1983         * creating it if it does
1984         * not exist. Will not return <code>null</code>.
1985         *
1986     * <p>
1987     * <b>Definition:</b>
1988     * Which investigations support finding or diagnosis
1989     * </p> 
1990         */
1991        public StringDt getCauseElement() {  
1992                if (myCause == null) {
1993                        myCause = new StringDt();
1994                }
1995                return myCause;
1996        }
1997
1998        
1999        /**
2000         * Gets the value(s) for <b>cause</b> ().
2001         * creating it if it does
2002         * not exist. Will not return <code>null</code>.
2003         *
2004     * <p>
2005     * <b>Definition:</b>
2006     * Which investigations support finding or diagnosis
2007     * </p> 
2008         */
2009        public String getCause() {  
2010                return getCauseElement().getValue();
2011        }
2012
2013        /**
2014         * Sets the value(s) for <b>cause</b> ()
2015         *
2016     * <p>
2017     * <b>Definition:</b>
2018     * Which investigations support finding or diagnosis
2019     * </p> 
2020         */
2021        public Finding setCause(StringDt theValue) {
2022                myCause = theValue;
2023                return this;
2024        }
2025        
2026        
2027
2028        /**
2029         * Sets the value for <b>cause</b> ()
2030         *
2031     * <p>
2032     * <b>Definition:</b>
2033     * Which investigations support finding or diagnosis
2034     * </p> 
2035         */
2036        public Finding setCause( String theString) {
2037                myCause = new StringDt(theString); 
2038                return this; 
2039        }
2040
2041 
2042
2043
2044        }
2045
2046
2047        /**
2048         * Block class for child element: <b>ClinicalImpression.ruledOut</b> ()
2049         *
2050     * <p>
2051     * <b>Definition:</b>
2052     * Diagnosis considered not possible
2053     * </p> 
2054         */
2055        @Block()        
2056        public static class RuledOut 
2057            extends  BaseIdentifiableElement        implements IResourceBlock {
2058        
2059        @Child(name="item", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
2060        @Description(
2061                shortDefinition="",
2062                formalDefinition="Specific text of code for diagnosis"
2063        )
2064        private CodeableConceptDt myItem;
2065        
2066        @Child(name="reason", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)        
2067        @Description(
2068                shortDefinition="",
2069                formalDefinition="Grounds for elimination"
2070        )
2071        private StringDt myReason;
2072        
2073
2074        @Override
2075        public boolean isEmpty() {
2076                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myItem,  myReason);
2077        }
2078        
2079        @Override
2080        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2081                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myItem, myReason);
2082        }
2083
2084        /**
2085         * Gets the value(s) for <b>item</b> ().
2086         * creating it if it does
2087         * not exist. Will not return <code>null</code>.
2088         *
2089     * <p>
2090     * <b>Definition:</b>
2091     * Specific text of code for diagnosis
2092     * </p> 
2093         */
2094        public CodeableConceptDt getItem() {  
2095                if (myItem == null) {
2096                        myItem = new CodeableConceptDt();
2097                }
2098                return myItem;
2099        }
2100
2101        /**
2102         * Sets the value(s) for <b>item</b> ()
2103         *
2104     * <p>
2105     * <b>Definition:</b>
2106     * Specific text of code for diagnosis
2107     * </p> 
2108         */
2109        public RuledOut setItem(CodeableConceptDt theValue) {
2110                myItem = theValue;
2111                return this;
2112        }
2113        
2114        
2115
2116  
2117        /**
2118         * Gets the value(s) for <b>reason</b> ().
2119         * creating it if it does
2120         * not exist. Will not return <code>null</code>.
2121         *
2122     * <p>
2123     * <b>Definition:</b>
2124     * Grounds for elimination
2125     * </p> 
2126         */
2127        public StringDt getReasonElement() {  
2128                if (myReason == null) {
2129                        myReason = new StringDt();
2130                }
2131                return myReason;
2132        }
2133
2134        
2135        /**
2136         * Gets the value(s) for <b>reason</b> ().
2137         * creating it if it does
2138         * not exist. Will not return <code>null</code>.
2139         *
2140     * <p>
2141     * <b>Definition:</b>
2142     * Grounds for elimination
2143     * </p> 
2144         */
2145        public String getReason() {  
2146                return getReasonElement().getValue();
2147        }
2148
2149        /**
2150         * Sets the value(s) for <b>reason</b> ()
2151         *
2152     * <p>
2153     * <b>Definition:</b>
2154     * Grounds for elimination
2155     * </p> 
2156         */
2157        public RuledOut setReason(StringDt theValue) {
2158                myReason = theValue;
2159                return this;
2160        }
2161        
2162        
2163
2164        /**
2165         * Sets the value for <b>reason</b> ()
2166         *
2167     * <p>
2168     * <b>Definition:</b>
2169     * Grounds for elimination
2170     * </p> 
2171         */
2172        public RuledOut setReason( String theString) {
2173                myReason = new StringDt(theString); 
2174                return this; 
2175        }
2176
2177 
2178
2179
2180        }
2181
2182
2183
2184
2185    @Override
2186    public String getResourceName() {
2187        return "ClinicalImpression";
2188    }
2189    
2190    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2191        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2192    }
2193
2194
2195}