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>Goal</b> Resource
282 * (clinical.careprovision)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
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/Goal">http://hl7.org/fhir/profiles/Goal</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="Goal", profile="http://hl7.org/fhir/profiles/Goal", id="goal")
301public class Goal extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>patient</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>reference</b><br>
309         * Path: <b>Goal.subject</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="patient", path="Goal.subject", description="", type="reference" , providesMembershipIn={
313 @Compartment(name="Patient")   }
314, target={
315 ca.uhn.fhir.model.dstu2.resource.Patient.class         }
316 )
317        public static final String SP_PATIENT = "patient";
318
319        /**
320         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
321         * <p>
322         * Description: <b></b><br>
323         * Type: <b>reference</b><br>
324         * Path: <b>Goal.subject</b><br>
325         * </p>
326         */
327        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
328
329        /**
330         * Search parameter constant for <b>subject</b>
331         * <p>
332         * Description: <b></b><br>
333         * Type: <b>reference</b><br>
334         * Path: <b>Goal.subject</b><br>
335         * </p>
336         */
337        @SearchParamDefinition(name="subject", path="Goal.subject", description="", type="reference"  )
338        public static final String SP_SUBJECT = "subject";
339
340        /**
341         * <b>Fluent Client</b> search parameter constant for <b>subject</b>
342         * <p>
343         * Description: <b></b><br>
344         * Type: <b>reference</b><br>
345         * Path: <b>Goal.subject</b><br>
346         * </p>
347         */
348        public static final ReferenceClientParam SUBJECT = new ReferenceClientParam(SP_SUBJECT);
349
350        /**
351         * Search parameter constant for <b>category</b>
352         * <p>
353         * Description: <b></b><br>
354         * Type: <b>token</b><br>
355         * Path: <b>Goal.category</b><br>
356         * </p>
357         */
358        @SearchParamDefinition(name="category", path="Goal.category", description="", type="token"  )
359        public static final String SP_CATEGORY = "category";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>category</b>
363         * <p>
364         * Description: <b></b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>Goal.category</b><br>
367         * </p>
368         */
369        public static final TokenClientParam CATEGORY = new TokenClientParam(SP_CATEGORY);
370
371        /**
372         * Search parameter constant for <b>targetdate</b>
373         * <p>
374         * Description: <b></b><br>
375         * Type: <b>date</b><br>
376         * Path: <b>Goal.targetDate</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="targetdate", path="Goal.targetDate", description="", type="date"  )
380        public static final String SP_TARGETDATE = "targetdate";
381
382        /**
383         * <b>Fluent Client</b> search parameter constant for <b>targetdate</b>
384         * <p>
385         * Description: <b></b><br>
386         * Type: <b>date</b><br>
387         * Path: <b>Goal.targetDate</b><br>
388         * </p>
389         */
390        public static final DateClientParam TARGETDATE = new DateClientParam(SP_TARGETDATE);
391
392        /**
393         * Search parameter constant for <b>identifier</b>
394         * <p>
395         * Description: <b></b><br>
396         * Type: <b>token</b><br>
397         * Path: <b>Goal.identifier</b><br>
398         * </p>
399         */
400        @SearchParamDefinition(name="identifier", path="Goal.identifier", description="", type="token"  )
401        public static final String SP_IDENTIFIER = "identifier";
402
403        /**
404         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
405         * <p>
406         * Description: <b></b><br>
407         * Type: <b>token</b><br>
408         * Path: <b>Goal.identifier</b><br>
409         * </p>
410         */
411        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
412
413        /**
414         * Search parameter constant for <b>status</b>
415         * <p>
416         * Description: <b></b><br>
417         * Type: <b>token</b><br>
418         * Path: <b>Goal.status</b><br>
419         * </p>
420         */
421        @SearchParamDefinition(name="status", path="Goal.status", description="", type="token"  )
422        public static final String SP_STATUS = "status";
423
424        /**
425         * <b>Fluent Client</b> search parameter constant for <b>status</b>
426         * <p>
427         * Description: <b></b><br>
428         * Type: <b>token</b><br>
429         * Path: <b>Goal.status</b><br>
430         * </p>
431         */
432        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
433
434
435        /**
436         * Constant for fluent queries to be used to add include statements. Specifies
437         * the path value of "<b>Goal:patient</b>".
438         */
439        public static final Include INCLUDE_PATIENT = new Include("Goal:patient");
440
441        /**
442         * Constant for fluent queries to be used to add include statements. Specifies
443         * the path value of "<b>Goal:subject</b>".
444         */
445        public static final Include INCLUDE_SUBJECT = new Include("Goal:subject");
446
447
448        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
449        @Description(
450                shortDefinition="id",
451                formalDefinition="This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)"
452        )
453        private java.util.List<IdentifierDt> myIdentifier;
454        
455        @Child(name="subject", order=1, min=0, max=1, summary=true, modifier=false, type={
456                ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.Group.class,           ca.uhn.fhir.model.dstu2.resource.Organization.class     })
457        @Description(
458                shortDefinition="who.focus",
459                formalDefinition="Identifies the patient, group or organization for whom the goal is being established."
460        )
461        private ResourceReferenceDt mySubject;
462        
463        @Child(name="start", order=2, min=0, max=1, summary=true, modifier=false, type={
464                DateDt.class,           CodeableConceptDt.class })
465        @Description(
466                shortDefinition="",
467                formalDefinition="The date or event after which the goal should begin being pursued"
468        )
469        private IDatatype myStart;
470        
471        @Child(name="target", order=3, min=0, max=1, summary=true, modifier=false, type={
472                DateDt.class,           DurationDt.class        })
473        @Description(
474                shortDefinition="",
475                formalDefinition="Indicates either the date or the duration after start by which the goal should be met"
476        )
477        private IDatatype myTarget;
478        
479        @Child(name="category", type=CodeableConceptDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)    
480        @Description(
481                shortDefinition="",
482                formalDefinition="Indicates a category the goal falls within"
483        )
484        private java.util.List<CodeableConceptDt> myCategory;
485        
486        @Child(name="description", type=StringDt.class, order=5, min=1, max=1, summary=true, modifier=false)    
487        @Description(
488                shortDefinition="",
489                formalDefinition="Human-readable description of a specific desired objective of care."
490        )
491        private StringDt myDescription;
492        
493        @Child(name="status", type=CodeDt.class, order=6, min=1, max=1, summary=true, modifier=true)    
494        @Description(
495                shortDefinition="status",
496                formalDefinition="Indicates whether the goal has been reached and is still considered relevant"
497        )
498        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/goal-status")
499        private BoundCodeDt<GoalStatusEnum> myStatus;
500        
501        @Child(name="statusDate", type=DateDt.class, order=7, min=0, max=1, summary=true, modifier=false)       
502        @Description(
503                shortDefinition="when.recorded",
504                formalDefinition="Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc."
505        )
506        private DateDt myStatusDate;
507        
508        @Child(name="statusReason", type=CodeableConceptDt.class, order=8, min=0, max=1, summary=false, modifier=false) 
509        @Description(
510                shortDefinition="",
511                formalDefinition="Captures the reason for the current status."
512        )
513        private CodeableConceptDt myStatusReason;
514        
515        @Child(name="author", order=9, min=0, max=1, summary=true, modifier=false, type={
516                ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class    })
517        @Description(
518                shortDefinition="who.actor",
519                formalDefinition="Indicates whose goal this is - patient goal, practitioner goal, etc."
520        )
521        private ResourceReferenceDt myAuthor;
522        
523        @Child(name="priority", type=CodeableConceptDt.class, order=10, min=0, max=1, summary=true, modifier=false)     
524        @Description(
525                shortDefinition="",
526                formalDefinition="Identifies the mutually agreed level of importance associated with reaching/sustaining the goal"
527        )
528        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/valueset-goal-priority")
529        private BoundCodeableConceptDt<GoalPriorityEnum> myPriority;
530        
531        @Child(name="addresses", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
532                ca.uhn.fhir.model.dstu2.resource.Condition.class,               ca.uhn.fhir.model.dstu2.resource.Observation.class,             ca.uhn.fhir.model.dstu2.resource.MedicationStatement.class,             ca.uhn.fhir.model.dstu2.resource.NutritionOrder.class,          ca.uhn.fhir.model.dstu2.resource.ProcedureRequest.class,                ca.uhn.fhir.model.dstu2.resource.RiskAssessment.class   })
533        @Description(
534                shortDefinition="",
535                formalDefinition="The identified conditions and other health record elements that are intended to be addressed by the goal"
536        )
537        private java.util.List<ResourceReferenceDt> myAddresses;
538        
539        @Child(name="note", type=AnnotationDt.class, order=12, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
540        @Description(
541                shortDefinition="",
542                formalDefinition="Any comments related to the goal"
543        )
544        private java.util.List<AnnotationDt> myNote;
545        
546        @Child(name="outcome", order=13, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
547        @Description(
548                shortDefinition="",
549                formalDefinition="Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved."
550        )
551        private java.util.List<Outcome> myOutcome;
552        
553
554        @Override
555        public boolean isEmpty() {
556                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  mySubject,  myStart,  myTarget,  myCategory,  myDescription,  myStatus,  myStatusDate,  myStatusReason,  myAuthor,  myPriority,  myAddresses,  myNote,  myOutcome);
557        }
558        
559        @Override
560        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
561                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, mySubject, myStart, myTarget, myCategory, myDescription, myStatus, myStatusDate, myStatusReason, myAuthor, myPriority, myAddresses, myNote, myOutcome);
562        }
563
564        /**
565         * Gets the value(s) for <b>identifier</b> (id).
566         * creating it if it does
567         * not exist. Will not return <code>null</code>.
568         *
569     * <p>
570     * <b>Definition:</b>
571     * This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
572     * </p> 
573         */
574        public java.util.List<IdentifierDt> getIdentifier() {  
575                if (myIdentifier == null) {
576                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
577                }
578                return myIdentifier;
579        }
580
581        /**
582         * Sets the value(s) for <b>identifier</b> (id)
583         *
584     * <p>
585     * <b>Definition:</b>
586     * This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
587     * </p> 
588         */
589        public Goal setIdentifier(java.util.List<IdentifierDt> theValue) {
590                myIdentifier = theValue;
591                return this;
592        }
593        
594        
595
596        /**
597         * Adds and returns a new value for <b>identifier</b> (id)
598         *
599     * <p>
600     * <b>Definition:</b>
601     * This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
602     * </p> 
603         */
604        public IdentifierDt addIdentifier() {
605                IdentifierDt newType = new IdentifierDt();
606                getIdentifier().add(newType);
607                return newType; 
608        }
609
610        /**
611         * Adds a given new value for <b>identifier</b> (id)
612         *
613         * <p>
614         * <b>Definition:</b>
615         * This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
616         * </p>
617         * @param theValue The identifier to add (must not be <code>null</code>)
618         */
619        public Goal addIdentifier(IdentifierDt theValue) {
620                if (theValue == null) {
621                        throw new NullPointerException("theValue must not be null");
622                }
623                getIdentifier().add(theValue);
624                return this;
625        }
626
627        /**
628         * Gets the first repetition for <b>identifier</b> (id),
629         * creating it if it does not already exist.
630         *
631     * <p>
632     * <b>Definition:</b>
633     * This records identifiers associated with this care plan that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)
634     * </p> 
635         */
636        public IdentifierDt getIdentifierFirstRep() {
637                if (getIdentifier().isEmpty()) {
638                        return addIdentifier();
639                }
640                return getIdentifier().get(0); 
641        }
642  
643        /**
644         * Gets the value(s) for <b>subject</b> (who.focus).
645         * creating it if it does
646         * not exist. Will not return <code>null</code>.
647         *
648     * <p>
649     * <b>Definition:</b>
650     * Identifies the patient, group or organization for whom the goal is being established.
651     * </p> 
652         */
653        public ResourceReferenceDt getSubject() {  
654                if (mySubject == null) {
655                        mySubject = new ResourceReferenceDt();
656                }
657                return mySubject;
658        }
659
660        /**
661         * Sets the value(s) for <b>subject</b> (who.focus)
662         *
663     * <p>
664     * <b>Definition:</b>
665     * Identifies the patient, group or organization for whom the goal is being established.
666     * </p> 
667         */
668        public Goal setSubject(ResourceReferenceDt theValue) {
669                mySubject = theValue;
670                return this;
671        }
672        
673        
674
675  
676        /**
677         * Gets the value(s) for <b>start[x]</b> ().
678         * creating it if it does
679         * not exist. Will not return <code>null</code>.
680         *
681     * <p>
682     * <b>Definition:</b>
683     * The date or event after which the goal should begin being pursued
684     * </p> 
685         */
686        public IDatatype getStart() {  
687                return myStart;
688        }
689
690        /**
691         * Sets the value(s) for <b>start[x]</b> ()
692         *
693     * <p>
694     * <b>Definition:</b>
695     * The date or event after which the goal should begin being pursued
696     * </p> 
697         */
698        public Goal setStart(IDatatype theValue) {
699                myStart = theValue;
700                return this;
701        }
702        
703        
704
705  
706        /**
707         * Gets the value(s) for <b>target[x]</b> ().
708         * creating it if it does
709         * not exist. Will not return <code>null</code>.
710         *
711     * <p>
712     * <b>Definition:</b>
713     * Indicates either the date or the duration after start by which the goal should be met
714     * </p> 
715         */
716        public IDatatype getTarget() {  
717                return myTarget;
718        }
719
720        /**
721         * Sets the value(s) for <b>target[x]</b> ()
722         *
723     * <p>
724     * <b>Definition:</b>
725     * Indicates either the date or the duration after start by which the goal should be met
726     * </p> 
727         */
728        public Goal setTarget(IDatatype theValue) {
729                myTarget = theValue;
730                return this;
731        }
732        
733        
734
735  
736        /**
737         * Gets the value(s) for <b>category</b> ().
738         * creating it if it does
739         * not exist. Will not return <code>null</code>.
740         *
741     * <p>
742     * <b>Definition:</b>
743     * Indicates a category the goal falls within
744     * </p> 
745         */
746        public java.util.List<CodeableConceptDt> getCategory() {  
747                if (myCategory == null) {
748                        myCategory = new java.util.ArrayList<CodeableConceptDt>();
749                }
750                return myCategory;
751        }
752
753        /**
754         * Sets the value(s) for <b>category</b> ()
755         *
756     * <p>
757     * <b>Definition:</b>
758     * Indicates a category the goal falls within
759     * </p> 
760         */
761        public Goal setCategory(java.util.List<CodeableConceptDt> theValue) {
762                myCategory = theValue;
763                return this;
764        }
765        
766        
767
768        /**
769         * Adds and returns a new value for <b>category</b> ()
770         *
771     * <p>
772     * <b>Definition:</b>
773     * Indicates a category the goal falls within
774     * </p> 
775         */
776        public CodeableConceptDt addCategory() {
777                CodeableConceptDt newType = new CodeableConceptDt();
778                getCategory().add(newType);
779                return newType; 
780        }
781
782        /**
783         * Adds a given new value for <b>category</b> ()
784         *
785         * <p>
786         * <b>Definition:</b>
787         * Indicates a category the goal falls within
788         * </p>
789         * @param theValue The category to add (must not be <code>null</code>)
790         */
791        public Goal addCategory(CodeableConceptDt theValue) {
792                if (theValue == null) {
793                        throw new NullPointerException("theValue must not be null");
794                }
795                getCategory().add(theValue);
796                return this;
797        }
798
799        /**
800         * Gets the first repetition for <b>category</b> (),
801         * creating it if it does not already exist.
802         *
803     * <p>
804     * <b>Definition:</b>
805     * Indicates a category the goal falls within
806     * </p> 
807         */
808        public CodeableConceptDt getCategoryFirstRep() {
809                if (getCategory().isEmpty()) {
810                        return addCategory();
811                }
812                return getCategory().get(0); 
813        }
814  
815        /**
816         * Gets the value(s) for <b>description</b> ().
817         * creating it if it does
818         * not exist. Will not return <code>null</code>.
819         *
820     * <p>
821     * <b>Definition:</b>
822     * Human-readable description of a specific desired objective of care.
823     * </p> 
824         */
825        public StringDt getDescriptionElement() {  
826                if (myDescription == null) {
827                        myDescription = new StringDt();
828                }
829                return myDescription;
830        }
831
832        
833        /**
834         * Gets the value(s) for <b>description</b> ().
835         * creating it if it does
836         * not exist. This method may return <code>null</code>.
837         *
838     * <p>
839     * <b>Definition:</b>
840     * Human-readable description of a specific desired objective of care.
841     * </p> 
842         */
843        public String getDescription() {  
844                return getDescriptionElement().getValue();
845        }
846
847        /**
848         * Sets the value(s) for <b>description</b> ()
849         *
850     * <p>
851     * <b>Definition:</b>
852     * Human-readable description of a specific desired objective of care.
853     * </p> 
854         */
855        public Goal setDescription(StringDt theValue) {
856                myDescription = theValue;
857                return this;
858        }
859        
860        
861
862        /**
863         * Sets the value for <b>description</b> ()
864         *
865     * <p>
866     * <b>Definition:</b>
867     * Human-readable description of a specific desired objective of care.
868     * </p> 
869         */
870        public Goal setDescription( String theString) {
871                myDescription = new StringDt(theString); 
872                return this; 
873        }
874
875 
876        /**
877         * Gets the value(s) for <b>status</b> (status).
878         * creating it if it does
879         * not exist. Will not return <code>null</code>.
880         *
881     * <p>
882     * <b>Definition:</b>
883     * Indicates whether the goal has been reached and is still considered relevant
884     * </p> 
885         */
886        public BoundCodeDt<GoalStatusEnum> getStatusElement() {  
887                if (myStatus == null) {
888                        myStatus = new BoundCodeDt<GoalStatusEnum>(GoalStatusEnum.VALUESET_BINDER);
889                }
890                return myStatus;
891        }
892
893        
894        /**
895         * Gets the value(s) for <b>status</b> (status).
896         * creating it if it does
897         * not exist. This method may return <code>null</code>.
898         *
899     * <p>
900     * <b>Definition:</b>
901     * Indicates whether the goal has been reached and is still considered relevant
902     * </p> 
903         */
904        public String getStatus() {  
905                return getStatusElement().getValue();
906        }
907
908        /**
909         * Sets the value(s) for <b>status</b> (status)
910         *
911     * <p>
912     * <b>Definition:</b>
913     * Indicates whether the goal has been reached and is still considered relevant
914     * </p> 
915         */
916        public Goal setStatus(BoundCodeDt<GoalStatusEnum> theValue) {
917                myStatus = theValue;
918                return this;
919        }
920        
921        
922
923        /**
924         * Sets the value(s) for <b>status</b> (status)
925         *
926     * <p>
927     * <b>Definition:</b>
928     * Indicates whether the goal has been reached and is still considered relevant
929     * </p> 
930         */
931        public Goal setStatus(GoalStatusEnum theValue) {
932                setStatus(new BoundCodeDt<GoalStatusEnum>(GoalStatusEnum.VALUESET_BINDER, theValue));
933                
934/*
935                getStatusElement().setValueAsEnum(theValue);
936*/
937                return this;
938        }
939
940  
941        /**
942         * Gets the value(s) for <b>statusDate</b> (when.recorded).
943         * creating it if it does
944         * not exist. Will not return <code>null</code>.
945         *
946     * <p>
947     * <b>Definition:</b>
948     * Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc.
949     * </p> 
950         */
951        public DateDt getStatusDateElement() {  
952                if (myStatusDate == null) {
953                        myStatusDate = new DateDt();
954                }
955                return myStatusDate;
956        }
957
958        
959        /**
960         * Gets the value(s) for <b>statusDate</b> (when.recorded).
961         * creating it if it does
962         * not exist. This method may return <code>null</code>.
963         *
964     * <p>
965     * <b>Definition:</b>
966     * Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc.
967     * </p> 
968         */
969        public Date getStatusDate() {  
970                return getStatusDateElement().getValue();
971        }
972
973        /**
974         * Sets the value(s) for <b>statusDate</b> (when.recorded)
975         *
976     * <p>
977     * <b>Definition:</b>
978     * Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc.
979     * </p> 
980         */
981        public Goal setStatusDate(DateDt theValue) {
982                myStatusDate = theValue;
983                return this;
984        }
985        
986        
987
988        /**
989         * Sets the value for <b>statusDate</b> (when.recorded)
990         *
991     * <p>
992     * <b>Definition:</b>
993     * Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc.
994     * </p> 
995         */
996        public Goal setStatusDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
997                myStatusDate = new DateDt(theDate, thePrecision); 
998                return this; 
999        }
1000
1001        /**
1002         * Sets the value for <b>statusDate</b> (when.recorded)
1003         *
1004     * <p>
1005     * <b>Definition:</b>
1006     * Identifies when the current status.  I.e. When initially created, when achieved, when cancelled, etc.
1007     * </p> 
1008         */
1009        public Goal setStatusDateWithDayPrecision( Date theDate) {
1010                myStatusDate = new DateDt(theDate); 
1011                return this; 
1012        }
1013
1014 
1015        /**
1016         * Gets the value(s) for <b>statusReason</b> ().
1017         * creating it if it does
1018         * not exist. Will not return <code>null</code>.
1019         *
1020     * <p>
1021     * <b>Definition:</b>
1022     * Captures the reason for the current status.
1023     * </p> 
1024         */
1025        public CodeableConceptDt getStatusReason() {  
1026                if (myStatusReason == null) {
1027                        myStatusReason = new CodeableConceptDt();
1028                }
1029                return myStatusReason;
1030        }
1031
1032        /**
1033         * Sets the value(s) for <b>statusReason</b> ()
1034         *
1035     * <p>
1036     * <b>Definition:</b>
1037     * Captures the reason for the current status.
1038     * </p> 
1039         */
1040        public Goal setStatusReason(CodeableConceptDt theValue) {
1041                myStatusReason = theValue;
1042                return this;
1043        }
1044        
1045        
1046
1047  
1048        /**
1049         * Gets the value(s) for <b>author</b> (who.actor).
1050         * creating it if it does
1051         * not exist. Will not return <code>null</code>.
1052         *
1053     * <p>
1054     * <b>Definition:</b>
1055     * Indicates whose goal this is - patient goal, practitioner goal, etc.
1056     * </p> 
1057         */
1058        public ResourceReferenceDt getAuthor() {  
1059                if (myAuthor == null) {
1060                        myAuthor = new ResourceReferenceDt();
1061                }
1062                return myAuthor;
1063        }
1064
1065        /**
1066         * Sets the value(s) for <b>author</b> (who.actor)
1067         *
1068     * <p>
1069     * <b>Definition:</b>
1070     * Indicates whose goal this is - patient goal, practitioner goal, etc.
1071     * </p> 
1072         */
1073        public Goal setAuthor(ResourceReferenceDt theValue) {
1074                myAuthor = theValue;
1075                return this;
1076        }
1077        
1078        
1079
1080  
1081        /**
1082         * Gets the value(s) for <b>priority</b> ().
1083         * creating it if it does
1084         * not exist. Will not return <code>null</code>.
1085         *
1086     * <p>
1087     * <b>Definition:</b>
1088     * Identifies the mutually agreed level of importance associated with reaching/sustaining the goal
1089     * </p> 
1090         */
1091        public BoundCodeableConceptDt<GoalPriorityEnum> getPriority() {  
1092                if (myPriority == null) {
1093                        myPriority = new BoundCodeableConceptDt<GoalPriorityEnum>(GoalPriorityEnum.VALUESET_BINDER);
1094                }
1095                return myPriority;
1096        }
1097
1098        /**
1099         * Sets the value(s) for <b>priority</b> ()
1100         *
1101     * <p>
1102     * <b>Definition:</b>
1103     * Identifies the mutually agreed level of importance associated with reaching/sustaining the goal
1104     * </p> 
1105         */
1106        public Goal setPriority(BoundCodeableConceptDt<GoalPriorityEnum> theValue) {
1107                myPriority = theValue;
1108                return this;
1109        }
1110        
1111        
1112
1113        /**
1114         * Sets the value(s) for <b>priority</b> ()
1115         *
1116     * <p>
1117     * <b>Definition:</b>
1118     * Identifies the mutually agreed level of importance associated with reaching/sustaining the goal
1119     * </p> 
1120         */
1121        public Goal setPriority(GoalPriorityEnum theValue) {
1122                setPriority(new BoundCodeableConceptDt<GoalPriorityEnum>(GoalPriorityEnum.VALUESET_BINDER, theValue));
1123                
1124/*
1125                getPriority().setValueAsEnum(theValue);
1126*/
1127                return this;
1128        }
1129
1130  
1131        /**
1132         * Gets the value(s) for <b>addresses</b> ().
1133         * creating it if it does
1134         * not exist. Will not return <code>null</code>.
1135         *
1136     * <p>
1137     * <b>Definition:</b>
1138     * The identified conditions and other health record elements that are intended to be addressed by the goal
1139     * </p> 
1140         */
1141        public java.util.List<ResourceReferenceDt> getAddresses() {  
1142                if (myAddresses == null) {
1143                        myAddresses = new java.util.ArrayList<ResourceReferenceDt>();
1144                }
1145                return myAddresses;
1146        }
1147
1148        /**
1149         * Sets the value(s) for <b>addresses</b> ()
1150         *
1151     * <p>
1152     * <b>Definition:</b>
1153     * The identified conditions and other health record elements that are intended to be addressed by the goal
1154     * </p> 
1155         */
1156        public Goal setAddresses(java.util.List<ResourceReferenceDt> theValue) {
1157                myAddresses = theValue;
1158                return this;
1159        }
1160        
1161        
1162
1163        /**
1164         * Adds and returns a new value for <b>addresses</b> ()
1165         *
1166     * <p>
1167     * <b>Definition:</b>
1168     * The identified conditions and other health record elements that are intended to be addressed by the goal
1169     * </p> 
1170         */
1171        public ResourceReferenceDt addAddresses() {
1172                ResourceReferenceDt newType = new ResourceReferenceDt();
1173                getAddresses().add(newType);
1174                return newType; 
1175        }
1176  
1177        /**
1178         * Gets the value(s) for <b>note</b> ().
1179         * creating it if it does
1180         * not exist. Will not return <code>null</code>.
1181         *
1182     * <p>
1183     * <b>Definition:</b>
1184     * Any comments related to the goal
1185     * </p> 
1186         */
1187        public java.util.List<AnnotationDt> getNote() {  
1188                if (myNote == null) {
1189                        myNote = new java.util.ArrayList<AnnotationDt>();
1190                }
1191                return myNote;
1192        }
1193
1194        /**
1195         * Sets the value(s) for <b>note</b> ()
1196         *
1197     * <p>
1198     * <b>Definition:</b>
1199     * Any comments related to the goal
1200     * </p> 
1201         */
1202        public Goal setNote(java.util.List<AnnotationDt> theValue) {
1203                myNote = theValue;
1204                return this;
1205        }
1206        
1207        
1208
1209        /**
1210         * Adds and returns a new value for <b>note</b> ()
1211         *
1212     * <p>
1213     * <b>Definition:</b>
1214     * Any comments related to the goal
1215     * </p> 
1216         */
1217        public AnnotationDt addNote() {
1218                AnnotationDt newType = new AnnotationDt();
1219                getNote().add(newType);
1220                return newType; 
1221        }
1222
1223        /**
1224         * Adds a given new value for <b>note</b> ()
1225         *
1226         * <p>
1227         * <b>Definition:</b>
1228         * Any comments related to the goal
1229         * </p>
1230         * @param theValue The note to add (must not be <code>null</code>)
1231         */
1232        public Goal addNote(AnnotationDt theValue) {
1233                if (theValue == null) {
1234                        throw new NullPointerException("theValue must not be null");
1235                }
1236                getNote().add(theValue);
1237                return this;
1238        }
1239
1240        /**
1241         * Gets the first repetition for <b>note</b> (),
1242         * creating it if it does not already exist.
1243         *
1244     * <p>
1245     * <b>Definition:</b>
1246     * Any comments related to the goal
1247     * </p> 
1248         */
1249        public AnnotationDt getNoteFirstRep() {
1250                if (getNote().isEmpty()) {
1251                        return addNote();
1252                }
1253                return getNote().get(0); 
1254        }
1255  
1256        /**
1257         * Gets the value(s) for <b>outcome</b> ().
1258         * creating it if it does
1259         * not exist. Will not return <code>null</code>.
1260         *
1261     * <p>
1262     * <b>Definition:</b>
1263     * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1264     * </p> 
1265         */
1266        public java.util.List<Outcome> getOutcome() {  
1267                if (myOutcome == null) {
1268                        myOutcome = new java.util.ArrayList<Outcome>();
1269                }
1270                return myOutcome;
1271        }
1272
1273        /**
1274         * Sets the value(s) for <b>outcome</b> ()
1275         *
1276     * <p>
1277     * <b>Definition:</b>
1278     * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1279     * </p> 
1280         */
1281        public Goal setOutcome(java.util.List<Outcome> theValue) {
1282                myOutcome = theValue;
1283                return this;
1284        }
1285        
1286        
1287
1288        /**
1289         * Adds and returns a new value for <b>outcome</b> ()
1290         *
1291     * <p>
1292     * <b>Definition:</b>
1293     * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1294     * </p> 
1295         */
1296        public Outcome addOutcome() {
1297                Outcome newType = new Outcome();
1298                getOutcome().add(newType);
1299                return newType; 
1300        }
1301
1302        /**
1303         * Adds a given new value for <b>outcome</b> ()
1304         *
1305         * <p>
1306         * <b>Definition:</b>
1307         * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1308         * </p>
1309         * @param theValue The outcome to add (must not be <code>null</code>)
1310         */
1311        public Goal addOutcome(Outcome theValue) {
1312                if (theValue == null) {
1313                        throw new NullPointerException("theValue must not be null");
1314                }
1315                getOutcome().add(theValue);
1316                return this;
1317        }
1318
1319        /**
1320         * Gets the first repetition for <b>outcome</b> (),
1321         * creating it if it does not already exist.
1322         *
1323     * <p>
1324     * <b>Definition:</b>
1325     * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1326     * </p> 
1327         */
1328        public Outcome getOutcomeFirstRep() {
1329                if (getOutcome().isEmpty()) {
1330                        return addOutcome();
1331                }
1332                return getOutcome().get(0); 
1333        }
1334  
1335        /**
1336         * Block class for child element: <b>Goal.outcome</b> ()
1337         *
1338     * <p>
1339     * <b>Definition:</b>
1340     * Identifies the change (or lack of change) at the point where the goal was deepmed to be cancelled or achieved.
1341     * </p> 
1342         */
1343        @Block()        
1344        public static class Outcome 
1345            extends  BaseIdentifiableElement        implements IResourceBlock {
1346        
1347        @Child(name="result", order=0, min=0, max=1, summary=false, modifier=false, type={
1348                CodeableConceptDt.class,                Observation.class       })
1349        @Description(
1350                shortDefinition="",
1351                formalDefinition="Details of what's changed (or not changed)"
1352        )
1353        private IDatatype myResult;
1354        
1355
1356        @Override
1357        public boolean isEmpty() {
1358                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myResult);
1359        }
1360        
1361        @Override
1362        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1363                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myResult);
1364        }
1365
1366        /**
1367         * Gets the value(s) for <b>result[x]</b> ().
1368         * creating it if it does
1369         * not exist. Will not return <code>null</code>.
1370         *
1371     * <p>
1372     * <b>Definition:</b>
1373     * Details of what's changed (or not changed)
1374     * </p> 
1375         */
1376        public IDatatype getResult() {  
1377                return myResult;
1378        }
1379
1380        /**
1381         * Sets the value(s) for <b>result[x]</b> ()
1382         *
1383     * <p>
1384     * <b>Definition:</b>
1385     * Details of what's changed (or not changed)
1386     * </p> 
1387         */
1388        public Outcome setResult(IDatatype theValue) {
1389                myResult = theValue;
1390                return this;
1391        }
1392        
1393        
1394
1395  
1396
1397
1398        }
1399
1400
1401
1402
1403    @Override
1404    public String getResourceName() {
1405        return "Goal";
1406    }
1407    
1408    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1409        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1410    }
1411
1412
1413}