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>FamilyMemberHistory</b> Resource
282 * (clinical.general)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Significant health events and conditions for a person related to the patient relevant in the context of care for the patient.
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/FamilyMemberHistory">http://hl7.org/fhir/profiles/FamilyMemberHistory</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="FamilyMemberHistory", profile="http://hl7.org/fhir/profiles/FamilyMemberHistory", id="familymemberhistory")
301public class FamilyMemberHistory extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>date</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>date</b><br>
309         * Path: <b>FamilyMemberHistory.date</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="date", path="FamilyMemberHistory.date", description="", type="date"  )
313        public static final String SP_DATE = "date";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>date</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>date</b><br>
320         * Path: <b>FamilyMemberHistory.date</b><br>
321         * </p>
322         */
323        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
324
325        /**
326         * Search parameter constant for <b>patient</b>
327         * <p>
328         * Description: <b>The identity of a subject to list family member history items for</b><br>
329         * Type: <b>reference</b><br>
330         * Path: <b>FamilyMemberHistory.patient</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="patient", path="FamilyMemberHistory.patient", description="The identity of a subject to list family member history items for", type="reference" , providesMembershipIn={
334 @Compartment(name="Patient")   }
335, target={
336 ca.uhn.fhir.model.dstu2.resource.Patient.class         }
337 )
338        public static final String SP_PATIENT = "patient";
339
340        /**
341         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
342         * <p>
343         * Description: <b>The identity of a subject to list family member history items for</b><br>
344         * Type: <b>reference</b><br>
345         * Path: <b>FamilyMemberHistory.patient</b><br>
346         * </p>
347         */
348        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
349
350        /**
351         * Search parameter constant for <b>code</b>
352         * <p>
353         * Description: <b>A search by a condition code</b><br>
354         * Type: <b>token</b><br>
355         * Path: <b>FamilyMemberHistory.condition.code</b><br>
356         * </p>
357         */
358        @SearchParamDefinition(name="code", path="FamilyMemberHistory.condition.code", description="A search by a condition code", type="token"  )
359        public static final String SP_CODE = "code";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>code</b>
363         * <p>
364         * Description: <b>A search by a condition code</b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>FamilyMemberHistory.condition.code</b><br>
367         * </p>
368         */
369        public static final TokenClientParam CODE = new TokenClientParam(SP_CODE);
370
371        /**
372         * Search parameter constant for <b>identifier</b>
373         * <p>
374         * Description: <b>A search by a record identifier</b><br>
375         * Type: <b>token</b><br>
376         * Path: <b>FamilyMemberHistory.identifier</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="identifier", path="FamilyMemberHistory.identifier", description="A search by a record identifier", type="token"  )
380        public static final String SP_IDENTIFIER = "identifier";
381
382        /**
383         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
384         * <p>
385         * Description: <b>A search by a record identifier</b><br>
386         * Type: <b>token</b><br>
387         * Path: <b>FamilyMemberHistory.identifier</b><br>
388         * </p>
389         */
390        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
391
392        /**
393         * Search parameter constant for <b>relationship</b>
394         * <p>
395         * Description: <b>A search by a relationship type</b><br>
396         * Type: <b>token</b><br>
397         * Path: <b>FamilyMemberHistory.relationship</b><br>
398         * </p>
399         */
400        @SearchParamDefinition(name="relationship", path="FamilyMemberHistory.relationship", description="A search by a relationship type", type="token"  )
401        public static final String SP_RELATIONSHIP = "relationship";
402
403        /**
404         * <b>Fluent Client</b> search parameter constant for <b>relationship</b>
405         * <p>
406         * Description: <b>A search by a relationship type</b><br>
407         * Type: <b>token</b><br>
408         * Path: <b>FamilyMemberHistory.relationship</b><br>
409         * </p>
410         */
411        public static final TokenClientParam RELATIONSHIP = new TokenClientParam(SP_RELATIONSHIP);
412
413        /**
414         * Search parameter constant for <b>gender</b>
415         * <p>
416         * Description: <b>A search by a gender code of a family member</b><br>
417         * Type: <b>token</b><br>
418         * Path: <b>FamilyMemberHistory.gender</b><br>
419         * </p>
420         */
421        @SearchParamDefinition(name="gender", path="FamilyMemberHistory.gender", description="A search by a gender code of a family member", type="token"  )
422        public static final String SP_GENDER = "gender";
423
424        /**
425         * <b>Fluent Client</b> search parameter constant for <b>gender</b>
426         * <p>
427         * Description: <b>A search by a gender code of a family member</b><br>
428         * Type: <b>token</b><br>
429         * Path: <b>FamilyMemberHistory.gender</b><br>
430         * </p>
431         */
432        public static final TokenClientParam GENDER = new TokenClientParam(SP_GENDER);
433
434
435        /**
436         * Constant for fluent queries to be used to add include statements. Specifies
437         * the path value of "<b>FamilyMemberHistory:patient</b>".
438         */
439        public static final Include INCLUDE_PATIENT = new Include("FamilyMemberHistory:patient");
440
441
442        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
443        @Description(
444                shortDefinition="id",
445                formalDefinition="This records identifiers associated with this family member history record 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)"
446        )
447        private java.util.List<IdentifierDt> myIdentifier;
448        
449        @Child(name="patient", order=1, min=1, max=1, summary=true, modifier=false, type={
450                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
451        @Description(
452                shortDefinition="who.focus",
453                formalDefinition="The person who this history concerns"
454        )
455        private ResourceReferenceDt myPatient;
456        
457        @Child(name="date", type=DateTimeDt.class, order=2, min=0, max=1, summary=true, modifier=false) 
458        @Description(
459                shortDefinition="when.recorded",
460                formalDefinition="The date (and possibly time) when the family member history was taken"
461        )
462        private DateTimeDt myDate;
463        
464        @Child(name="status", type=CodeDt.class, order=3, min=1, max=1, summary=true, modifier=true)    
465        @Description(
466                shortDefinition="status",
467                formalDefinition="A code specifying a state of a Family Member History record."
468        )
469        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/history-status")
470        private BoundCodeDt<FamilyHistoryStatusEnum> myStatus;
471        
472        @Child(name="name", type=StringDt.class, order=4, min=0, max=1, summary=true, modifier=false)   
473        @Description(
474                shortDefinition="",
475                formalDefinition="This will either be a name or a description; e.g. \"Aunt Susan\", \"my cousin with the red hair\""
476        )
477        private StringDt myName;
478        
479        @Child(name="relationship", type=CodeableConceptDt.class, order=5, min=1, max=1, summary=true, modifier=false)  
480        @Description(
481                shortDefinition="",
482                formalDefinition="The type of relationship this person has to the patient (father, mother, brother etc.)"
483        )
484        private CodeableConceptDt myRelationship;
485        
486        @Child(name="gender", type=CodeDt.class, order=6, min=0, max=1, summary=true, modifier=false)   
487        @Description(
488                shortDefinition="",
489                formalDefinition="Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes."
490        )
491        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/administrative-gender")
492        private BoundCodeDt<AdministrativeGenderEnum> myGender;
493        
494        @Child(name="born", order=7, min=0, max=1, summary=false, modifier=false, type={
495                PeriodDt.class,                 DateDt.class,           StringDt.class  })
496        @Description(
497                shortDefinition="",
498                formalDefinition="The actual or approximate date of birth of the relative"
499        )
500        private IDatatype myBorn;
501        
502        @Child(name="age", order=8, min=0, max=1, summary=false, modifier=false, type={
503                AgeDt.class,            RangeDt.class,          StringDt.class  })
504        @Description(
505                shortDefinition="",
506                formalDefinition="The actual or approximate age of the relative at the time the family member history is recorded"
507        )
508        private IDatatype myAge;
509        
510        @Child(name="deceased", order=9, min=0, max=1, summary=false, modifier=false, type={
511                BooleanDt.class,                AgeDt.class,            RangeDt.class,          DateDt.class,           StringDt.class  })
512        @Description(
513                shortDefinition="",
514                formalDefinition="Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record"
515        )
516        private IDatatype myDeceased;
517        
518        @Child(name="note", type=AnnotationDt.class, order=10, min=0, max=1, summary=false, modifier=false)     
519        @Description(
520                shortDefinition="",
521                formalDefinition="This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible."
522        )
523        private AnnotationDt myNote;
524        
525        @Child(name="condition", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
526        @Description(
527                shortDefinition="",
528                formalDefinition="The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition."
529        )
530        private java.util.List<Condition> myCondition;
531        
532
533        @Override
534        public boolean isEmpty() {
535                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myPatient,  myDate,  myStatus,  myName,  myRelationship,  myGender,  myBorn,  myAge,  myDeceased,  myNote,  myCondition);
536        }
537        
538        @Override
539        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
540                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myPatient, myDate, myStatus, myName, myRelationship, myGender, myBorn, myAge, myDeceased, myNote, myCondition);
541        }
542
543        /**
544         * Gets the value(s) for <b>identifier</b> (id).
545         * creating it if it does
546         * not exist. Will not return <code>null</code>.
547         *
548     * <p>
549     * <b>Definition:</b>
550     * This records identifiers associated with this family member history record 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)
551     * </p> 
552         */
553        public java.util.List<IdentifierDt> getIdentifier() {  
554                if (myIdentifier == null) {
555                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
556                }
557                return myIdentifier;
558        }
559
560        /**
561         * Sets the value(s) for <b>identifier</b> (id)
562         *
563     * <p>
564     * <b>Definition:</b>
565     * This records identifiers associated with this family member history record 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)
566     * </p> 
567         */
568        public FamilyMemberHistory setIdentifier(java.util.List<IdentifierDt> theValue) {
569                myIdentifier = theValue;
570                return this;
571        }
572        
573        
574
575        /**
576         * Adds and returns a new value for <b>identifier</b> (id)
577         *
578     * <p>
579     * <b>Definition:</b>
580     * This records identifiers associated with this family member history record 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)
581     * </p> 
582         */
583        public IdentifierDt addIdentifier() {
584                IdentifierDt newType = new IdentifierDt();
585                getIdentifier().add(newType);
586                return newType; 
587        }
588
589        /**
590         * Adds a given new value for <b>identifier</b> (id)
591         *
592         * <p>
593         * <b>Definition:</b>
594         * This records identifiers associated with this family member history record 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)
595         * </p>
596         * @param theValue The identifier to add (must not be <code>null</code>)
597         */
598        public FamilyMemberHistory addIdentifier(IdentifierDt theValue) {
599                if (theValue == null) {
600                        throw new NullPointerException("theValue must not be null");
601                }
602                getIdentifier().add(theValue);
603                return this;
604        }
605
606        /**
607         * Gets the first repetition for <b>identifier</b> (id),
608         * creating it if it does not already exist.
609         *
610     * <p>
611     * <b>Definition:</b>
612     * This records identifiers associated with this family member history record 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)
613     * </p> 
614         */
615        public IdentifierDt getIdentifierFirstRep() {
616                if (getIdentifier().isEmpty()) {
617                        return addIdentifier();
618                }
619                return getIdentifier().get(0); 
620        }
621  
622        /**
623         * Gets the value(s) for <b>patient</b> (who.focus).
624         * creating it if it does
625         * not exist. Will not return <code>null</code>.
626         *
627     * <p>
628     * <b>Definition:</b>
629     * The person who this history concerns
630     * </p> 
631         */
632        public ResourceReferenceDt getPatient() {  
633                if (myPatient == null) {
634                        myPatient = new ResourceReferenceDt();
635                }
636                return myPatient;
637        }
638
639        /**
640         * Sets the value(s) for <b>patient</b> (who.focus)
641         *
642     * <p>
643     * <b>Definition:</b>
644     * The person who this history concerns
645     * </p> 
646         */
647        public FamilyMemberHistory setPatient(ResourceReferenceDt theValue) {
648                myPatient = theValue;
649                return this;
650        }
651        
652        
653
654  
655        /**
656         * Gets the value(s) for <b>date</b> (when.recorded).
657         * creating it if it does
658         * not exist. Will not return <code>null</code>.
659         *
660     * <p>
661     * <b>Definition:</b>
662     * The date (and possibly time) when the family member history was taken
663     * </p> 
664         */
665        public DateTimeDt getDateElement() {  
666                if (myDate == null) {
667                        myDate = new DateTimeDt();
668                }
669                return myDate;
670        }
671
672        
673        /**
674         * Gets the value(s) for <b>date</b> (when.recorded).
675         * creating it if it does
676         * not exist. This method may return <code>null</code>.
677         *
678     * <p>
679     * <b>Definition:</b>
680     * The date (and possibly time) when the family member history was taken
681     * </p> 
682         */
683        public Date getDate() {  
684                return getDateElement().getValue();
685        }
686
687        /**
688         * Sets the value(s) for <b>date</b> (when.recorded)
689         *
690     * <p>
691     * <b>Definition:</b>
692     * The date (and possibly time) when the family member history was taken
693     * </p> 
694         */
695        public FamilyMemberHistory setDate(DateTimeDt theValue) {
696                myDate = theValue;
697                return this;
698        }
699        
700        
701
702        /**
703         * Sets the value for <b>date</b> (when.recorded)
704         *
705     * <p>
706     * <b>Definition:</b>
707     * The date (and possibly time) when the family member history was taken
708     * </p> 
709         */
710        public FamilyMemberHistory setDateWithSecondsPrecision( Date theDate) {
711                myDate = new DateTimeDt(theDate); 
712                return this; 
713        }
714
715        /**
716         * Sets the value for <b>date</b> (when.recorded)
717         *
718     * <p>
719     * <b>Definition:</b>
720     * The date (and possibly time) when the family member history was taken
721     * </p> 
722         */
723        public FamilyMemberHistory setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
724                myDate = new DateTimeDt(theDate, thePrecision); 
725                return this; 
726        }
727
728 
729        /**
730         * Gets the value(s) for <b>status</b> (status).
731         * creating it if it does
732         * not exist. Will not return <code>null</code>.
733         *
734     * <p>
735     * <b>Definition:</b>
736     * A code specifying a state of a Family Member History record.
737     * </p> 
738         */
739        public BoundCodeDt<FamilyHistoryStatusEnum> getStatusElement() {  
740                if (myStatus == null) {
741                        myStatus = new BoundCodeDt<FamilyHistoryStatusEnum>(FamilyHistoryStatusEnum.VALUESET_BINDER);
742                }
743                return myStatus;
744        }
745
746        
747        /**
748         * Gets the value(s) for <b>status</b> (status).
749         * creating it if it does
750         * not exist. This method may return <code>null</code>.
751         *
752     * <p>
753     * <b>Definition:</b>
754     * A code specifying a state of a Family Member History record.
755     * </p> 
756         */
757        public String getStatus() {  
758                return getStatusElement().getValue();
759        }
760
761        /**
762         * Sets the value(s) for <b>status</b> (status)
763         *
764     * <p>
765     * <b>Definition:</b>
766     * A code specifying a state of a Family Member History record.
767     * </p> 
768         */
769        public FamilyMemberHistory setStatus(BoundCodeDt<FamilyHistoryStatusEnum> theValue) {
770                myStatus = theValue;
771                return this;
772        }
773        
774        
775
776        /**
777         * Sets the value(s) for <b>status</b> (status)
778         *
779     * <p>
780     * <b>Definition:</b>
781     * A code specifying a state of a Family Member History record.
782     * </p> 
783         */
784        public FamilyMemberHistory setStatus(FamilyHistoryStatusEnum theValue) {
785                setStatus(new BoundCodeDt<FamilyHistoryStatusEnum>(FamilyHistoryStatusEnum.VALUESET_BINDER, theValue));
786                
787/*
788                getStatusElement().setValueAsEnum(theValue);
789*/
790                return this;
791        }
792
793  
794        /**
795         * Gets the value(s) for <b>name</b> ().
796         * creating it if it does
797         * not exist. Will not return <code>null</code>.
798         *
799     * <p>
800     * <b>Definition:</b>
801     * This will either be a name or a description; e.g. \&quot;Aunt Susan\&quot;, \&quot;my cousin with the red hair\&quot;
802     * </p> 
803         */
804        public StringDt getNameElement() {  
805                if (myName == null) {
806                        myName = new StringDt();
807                }
808                return myName;
809        }
810
811        
812        /**
813         * Gets the value(s) for <b>name</b> ().
814         * creating it if it does
815         * not exist. This method may return <code>null</code>.
816         *
817     * <p>
818     * <b>Definition:</b>
819     * This will either be a name or a description; e.g. \&quot;Aunt Susan\&quot;, \&quot;my cousin with the red hair\&quot;
820     * </p> 
821         */
822        public String getName() {  
823                return getNameElement().getValue();
824        }
825
826        /**
827         * Sets the value(s) for <b>name</b> ()
828         *
829     * <p>
830     * <b>Definition:</b>
831     * This will either be a name or a description; e.g. \&quot;Aunt Susan\&quot;, \&quot;my cousin with the red hair\&quot;
832     * </p> 
833         */
834        public FamilyMemberHistory setName(StringDt theValue) {
835                myName = theValue;
836                return this;
837        }
838        
839        
840
841        /**
842         * Sets the value for <b>name</b> ()
843         *
844     * <p>
845     * <b>Definition:</b>
846     * This will either be a name or a description; e.g. \&quot;Aunt Susan\&quot;, \&quot;my cousin with the red hair\&quot;
847     * </p> 
848         */
849        public FamilyMemberHistory setName( String theString) {
850                myName = new StringDt(theString); 
851                return this; 
852        }
853
854 
855        /**
856         * Gets the value(s) for <b>relationship</b> ().
857         * creating it if it does
858         * not exist. Will not return <code>null</code>.
859         *
860     * <p>
861     * <b>Definition:</b>
862     * The type of relationship this person has to the patient (father, mother, brother etc.)
863     * </p> 
864         */
865        public CodeableConceptDt getRelationship() {  
866                if (myRelationship == null) {
867                        myRelationship = new CodeableConceptDt();
868                }
869                return myRelationship;
870        }
871
872        /**
873         * Sets the value(s) for <b>relationship</b> ()
874         *
875     * <p>
876     * <b>Definition:</b>
877     * The type of relationship this person has to the patient (father, mother, brother etc.)
878     * </p> 
879         */
880        public FamilyMemberHistory setRelationship(CodeableConceptDt theValue) {
881                myRelationship = theValue;
882                return this;
883        }
884        
885        
886
887  
888        /**
889         * Gets the value(s) for <b>gender</b> ().
890         * creating it if it does
891         * not exist. Will not return <code>null</code>.
892         *
893     * <p>
894     * <b>Definition:</b>
895     * Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.
896     * </p> 
897         */
898        public BoundCodeDt<AdministrativeGenderEnum> getGenderElement() {  
899                if (myGender == null) {
900                        myGender = new BoundCodeDt<AdministrativeGenderEnum>(AdministrativeGenderEnum.VALUESET_BINDER);
901                }
902                return myGender;
903        }
904
905        
906        /**
907         * Gets the value(s) for <b>gender</b> ().
908         * creating it if it does
909         * not exist. This method may return <code>null</code>.
910         *
911     * <p>
912     * <b>Definition:</b>
913     * Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.
914     * </p> 
915         */
916        public String getGender() {  
917                return getGenderElement().getValue();
918        }
919
920        /**
921         * Sets the value(s) for <b>gender</b> ()
922         *
923     * <p>
924     * <b>Definition:</b>
925     * Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.
926     * </p> 
927         */
928        public FamilyMemberHistory setGender(BoundCodeDt<AdministrativeGenderEnum> theValue) {
929                myGender = theValue;
930                return this;
931        }
932        
933        
934
935        /**
936         * Sets the value(s) for <b>gender</b> ()
937         *
938     * <p>
939     * <b>Definition:</b>
940     * Administrative Gender - the gender that the relative is considered to have for administration and record keeping purposes.
941     * </p> 
942         */
943        public FamilyMemberHistory setGender(AdministrativeGenderEnum theValue) {
944                setGender(new BoundCodeDt<AdministrativeGenderEnum>(AdministrativeGenderEnum.VALUESET_BINDER, theValue));
945                
946/*
947                getGenderElement().setValueAsEnum(theValue);
948*/
949                return this;
950        }
951
952  
953        /**
954         * Gets the value(s) for <b>born[x]</b> ().
955         * creating it if it does
956         * not exist. Will not return <code>null</code>.
957         *
958     * <p>
959     * <b>Definition:</b>
960     * The actual or approximate date of birth of the relative
961     * </p> 
962         */
963        public IDatatype getBorn() {  
964                return myBorn;
965        }
966
967        /**
968         * Sets the value(s) for <b>born[x]</b> ()
969         *
970     * <p>
971     * <b>Definition:</b>
972     * The actual or approximate date of birth of the relative
973     * </p> 
974         */
975        public FamilyMemberHistory setBorn(IDatatype theValue) {
976                myBorn = theValue;
977                return this;
978        }
979        
980        
981
982  
983        /**
984         * Gets the value(s) for <b>age[x]</b> ().
985         * creating it if it does
986         * not exist. Will not return <code>null</code>.
987         *
988     * <p>
989     * <b>Definition:</b>
990     * The actual or approximate age of the relative at the time the family member history is recorded
991     * </p> 
992         */
993        public IDatatype getAge() {  
994                return myAge;
995        }
996
997        /**
998         * Sets the value(s) for <b>age[x]</b> ()
999         *
1000     * <p>
1001     * <b>Definition:</b>
1002     * The actual or approximate age of the relative at the time the family member history is recorded
1003     * </p> 
1004         */
1005        public FamilyMemberHistory setAge(IDatatype theValue) {
1006                myAge = theValue;
1007                return this;
1008        }
1009        
1010        
1011
1012  
1013        /**
1014         * Gets the value(s) for <b>deceased[x]</b> ().
1015         * creating it if it does
1016         * not exist. Will not return <code>null</code>.
1017         *
1018     * <p>
1019     * <b>Definition:</b>
1020     * Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record
1021     * </p> 
1022         */
1023        public IDatatype getDeceased() {  
1024                return myDeceased;
1025        }
1026
1027        /**
1028         * Sets the value(s) for <b>deceased[x]</b> ()
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record
1033     * </p> 
1034         */
1035        public FamilyMemberHistory setDeceased(IDatatype theValue) {
1036                myDeceased = theValue;
1037                return this;
1038        }
1039        
1040        
1041
1042  
1043        /**
1044         * Gets the value(s) for <b>note</b> ().
1045         * creating it if it does
1046         * not exist. Will not return <code>null</code>.
1047         *
1048     * <p>
1049     * <b>Definition:</b>
1050     * This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.
1051     * </p> 
1052         */
1053        public AnnotationDt getNote() {  
1054                if (myNote == null) {
1055                        myNote = new AnnotationDt();
1056                }
1057                return myNote;
1058        }
1059
1060        /**
1061         * Sets the value(s) for <b>note</b> ()
1062         *
1063     * <p>
1064     * <b>Definition:</b>
1065     * This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible.
1066     * </p> 
1067         */
1068        public FamilyMemberHistory setNote(AnnotationDt theValue) {
1069                myNote = theValue;
1070                return this;
1071        }
1072        
1073        
1074
1075  
1076        /**
1077         * Gets the value(s) for <b>condition</b> ().
1078         * creating it if it does
1079         * not exist. Will not return <code>null</code>.
1080         *
1081     * <p>
1082     * <b>Definition:</b>
1083     * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1084     * </p> 
1085         */
1086        public java.util.List<Condition> getCondition() {  
1087                if (myCondition == null) {
1088                        myCondition = new java.util.ArrayList<Condition>();
1089                }
1090                return myCondition;
1091        }
1092
1093        /**
1094         * Sets the value(s) for <b>condition</b> ()
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1099     * </p> 
1100         */
1101        public FamilyMemberHistory setCondition(java.util.List<Condition> theValue) {
1102                myCondition = theValue;
1103                return this;
1104        }
1105        
1106        
1107
1108        /**
1109         * Adds and returns a new value for <b>condition</b> ()
1110         *
1111     * <p>
1112     * <b>Definition:</b>
1113     * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1114     * </p> 
1115         */
1116        public Condition addCondition() {
1117                Condition newType = new Condition();
1118                getCondition().add(newType);
1119                return newType; 
1120        }
1121
1122        /**
1123         * Adds a given new value for <b>condition</b> ()
1124         *
1125         * <p>
1126         * <b>Definition:</b>
1127         * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1128         * </p>
1129         * @param theValue The condition to add (must not be <code>null</code>)
1130         */
1131        public FamilyMemberHistory addCondition(Condition theValue) {
1132                if (theValue == null) {
1133                        throw new NullPointerException("theValue must not be null");
1134                }
1135                getCondition().add(theValue);
1136                return this;
1137        }
1138
1139        /**
1140         * Gets the first repetition for <b>condition</b> (),
1141         * creating it if it does not already exist.
1142         *
1143     * <p>
1144     * <b>Definition:</b>
1145     * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1146     * </p> 
1147         */
1148        public Condition getConditionFirstRep() {
1149                if (getCondition().isEmpty()) {
1150                        return addCondition();
1151                }
1152                return getCondition().get(0); 
1153        }
1154  
1155        /**
1156         * Block class for child element: <b>FamilyMemberHistory.condition</b> ()
1157         *
1158     * <p>
1159     * <b>Definition:</b>
1160     * The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition.
1161     * </p> 
1162         */
1163        @Block()        
1164        public static class Condition 
1165            extends  BaseIdentifiableElement        implements IResourceBlock {
1166        
1167        @Child(name="code", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
1168        @Description(
1169                shortDefinition="",
1170                formalDefinition="The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system"
1171        )
1172        private CodeableConceptDt myCode;
1173        
1174        @Child(name="outcome", type=CodeableConceptDt.class, order=1, min=0, max=1, summary=false, modifier=false)      
1175        @Description(
1176                shortDefinition="",
1177                formalDefinition="Indicates what happened as a result of this condition.  If the condition resulted in death, deceased date is captured on the relation."
1178        )
1179        private CodeableConceptDt myOutcome;
1180        
1181        @Child(name="onset", order=2, min=0, max=1, summary=false, modifier=false, type={
1182                AgeDt.class,            RangeDt.class,          PeriodDt.class,                 StringDt.class  })
1183        @Description(
1184                shortDefinition="",
1185                formalDefinition="Either the age of onset, range of approximate age or descriptive string can be recorded.  For conditions with multiple occurrences, this describes the first known occurrence."
1186        )
1187        private IDatatype myOnset;
1188        
1189        @Child(name="note", type=AnnotationDt.class, order=3, min=0, max=1, summary=false, modifier=false)      
1190        @Description(
1191                shortDefinition="",
1192                formalDefinition="An area where general notes can be placed about this specific condition."
1193        )
1194        private AnnotationDt myNote;
1195        
1196
1197        @Override
1198        public boolean isEmpty() {
1199                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCode,  myOutcome,  myOnset,  myNote);
1200        }
1201        
1202        @Override
1203        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1204                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCode, myOutcome, myOnset, myNote);
1205        }
1206
1207        /**
1208         * Gets the value(s) for <b>code</b> ().
1209         * creating it if it does
1210         * not exist. Will not return <code>null</code>.
1211         *
1212     * <p>
1213     * <b>Definition:</b>
1214     * The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system
1215     * </p> 
1216         */
1217        public CodeableConceptDt getCode() {  
1218                if (myCode == null) {
1219                        myCode = new CodeableConceptDt();
1220                }
1221                return myCode;
1222        }
1223
1224        /**
1225         * Sets the value(s) for <b>code</b> ()
1226         *
1227     * <p>
1228     * <b>Definition:</b>
1229     * The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system
1230     * </p> 
1231         */
1232        public Condition setCode(CodeableConceptDt theValue) {
1233                myCode = theValue;
1234                return this;
1235        }
1236        
1237        
1238
1239  
1240        /**
1241         * Gets the value(s) for <b>outcome</b> ().
1242         * creating it if it does
1243         * not exist. Will not return <code>null</code>.
1244         *
1245     * <p>
1246     * <b>Definition:</b>
1247     * Indicates what happened as a result of this condition.  If the condition resulted in death, deceased date is captured on the relation.
1248     * </p> 
1249         */
1250        public CodeableConceptDt getOutcome() {  
1251                if (myOutcome == null) {
1252                        myOutcome = new CodeableConceptDt();
1253                }
1254                return myOutcome;
1255        }
1256
1257        /**
1258         * Sets the value(s) for <b>outcome</b> ()
1259         *
1260     * <p>
1261     * <b>Definition:</b>
1262     * Indicates what happened as a result of this condition.  If the condition resulted in death, deceased date is captured on the relation.
1263     * </p> 
1264         */
1265        public Condition setOutcome(CodeableConceptDt theValue) {
1266                myOutcome = theValue;
1267                return this;
1268        }
1269        
1270        
1271
1272  
1273        /**
1274         * Gets the value(s) for <b>onset[x]</b> ().
1275         * creating it if it does
1276         * not exist. Will not return <code>null</code>.
1277         *
1278     * <p>
1279     * <b>Definition:</b>
1280     * Either the age of onset, range of approximate age or descriptive string can be recorded.  For conditions with multiple occurrences, this describes the first known occurrence.
1281     * </p> 
1282         */
1283        public IDatatype getOnset() {  
1284                return myOnset;
1285        }
1286
1287        /**
1288         * Sets the value(s) for <b>onset[x]</b> ()
1289         *
1290     * <p>
1291     * <b>Definition:</b>
1292     * Either the age of onset, range of approximate age or descriptive string can be recorded.  For conditions with multiple occurrences, this describes the first known occurrence.
1293     * </p> 
1294         */
1295        public Condition setOnset(IDatatype theValue) {
1296                myOnset = theValue;
1297                return this;
1298        }
1299        
1300        
1301
1302  
1303        /**
1304         * Gets the value(s) for <b>note</b> ().
1305         * creating it if it does
1306         * not exist. Will not return <code>null</code>.
1307         *
1308     * <p>
1309     * <b>Definition:</b>
1310     * An area where general notes can be placed about this specific condition.
1311     * </p> 
1312         */
1313        public AnnotationDt getNote() {  
1314                if (myNote == null) {
1315                        myNote = new AnnotationDt();
1316                }
1317                return myNote;
1318        }
1319
1320        /**
1321         * Sets the value(s) for <b>note</b> ()
1322         *
1323     * <p>
1324     * <b>Definition:</b>
1325     * An area where general notes can be placed about this specific condition.
1326     * </p> 
1327         */
1328        public Condition setNote(AnnotationDt theValue) {
1329                myNote = theValue;
1330                return this;
1331        }
1332        
1333        
1334
1335  
1336
1337
1338        }
1339
1340
1341
1342
1343    @Override
1344    public String getResourceName() {
1345        return "FamilyMemberHistory";
1346    }
1347    
1348    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1349        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1350    }
1351
1352
1353}