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