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