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>RelatedPerson</b> Resource
282 * (administrative.individual)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process.
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * Need to track persons related to the patient or the healthcare process.
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/RelatedPerson">http://hl7.org/fhir/profiles/RelatedPerson</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="RelatedPerson", profile="http://hl7.org/fhir/profiles/RelatedPerson", id="relatedperson")
301public class RelatedPerson extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource 
303    {
304
305        /**
306         * Search parameter constant for <b>identifier</b>
307         * <p>
308         * Description: <b>A patient Identifier</b><br>
309         * Type: <b>token</b><br>
310         * Path: <b>RelatedPerson.identifier</b><br>
311         * </p>
312         */
313        @SearchParamDefinition(name="identifier", path="RelatedPerson.identifier", description="A patient Identifier", type="token" 
314 )
315        public static final String SP_IDENTIFIER = "identifier";
316
317        /**
318         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
319         * <p>
320         * Description: <b>A patient Identifier</b><br>
321         * Type: <b>token</b><br>
322         * Path: <b>RelatedPerson.identifier</b><br>
323         * </p>
324         */
325        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
326
327        /**
328         * Search parameter constant for <b>name</b>
329         * <p>
330         * Description: <b>A portion of name in any name part</b><br>
331         * Type: <b>string</b><br>
332         * Path: <b>RelatedPerson.name</b><br>
333         * </p>
334         */
335        @SearchParamDefinition(name="name", path="RelatedPerson.name", description="A portion of name in any name part", type="string" 
336 )
337        public static final String SP_NAME = "name";
338
339        /**
340         * <b>Fluent Client</b> search parameter constant for <b>name</b>
341         * <p>
342         * Description: <b>A portion of name in any name part</b><br>
343         * Type: <b>string</b><br>
344         * Path: <b>RelatedPerson.name</b><br>
345         * </p>
346         */
347        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
348
349        /**
350         * Search parameter constant for <b>phonetic</b>
351         * <p>
352         * Description: <b>A portion of name using some kind of phonetic matching algorithm</b><br>
353         * Type: <b>string</b><br>
354         * Path: <b>RelatedPerson.name</b><br>
355         * </p>
356         */
357        @SearchParamDefinition(name="phonetic", path="RelatedPerson.name", description="A portion of name using some kind of phonetic matching algorithm", type="string" 
358 )
359        public static final String SP_PHONETIC = "phonetic";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>phonetic</b>
363         * <p>
364         * Description: <b>A portion of name using some kind of phonetic matching algorithm</b><br>
365         * Type: <b>string</b><br>
366         * Path: <b>RelatedPerson.name</b><br>
367         * </p>
368         */
369        public static final StringClientParam PHONETIC = new StringClientParam(SP_PHONETIC);
370
371        /**
372         * Search parameter constant for <b>telecom</b>
373         * <p>
374         * Description: <b>The value in any kind of contact</b><br>
375         * Type: <b>token</b><br>
376         * Path: <b>RelatedPerson.telecom</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="telecom", path="RelatedPerson.telecom", description="The value in any kind of contact", type="token" 
380 )
381        public static final String SP_TELECOM = "telecom";
382
383        /**
384         * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
385         * <p>
386         * Description: <b>The value in any kind of contact</b><br>
387         * Type: <b>token</b><br>
388         * Path: <b>RelatedPerson.telecom</b><br>
389         * </p>
390         */
391        public static final TokenClientParam TELECOM = new TokenClientParam(SP_TELECOM);
392
393        /**
394         * Search parameter constant for <b>phone</b>
395         * <p>
396         * Description: <b>A value in a phone contact</b><br>
397         * Type: <b>token</b><br>
398         * Path: <b>RelatedPerson.telecom(system=phone)</b><br>
399         * </p>
400         */
401        @SearchParamDefinition(name="phone", path="RelatedPerson.telecom(system=phone)", description="A value in a phone contact", type="token" 
402 )
403        public static final String SP_PHONE = "phone";
404
405        /**
406         * <b>Fluent Client</b> search parameter constant for <b>phone</b>
407         * <p>
408         * Description: <b>A value in a phone contact</b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>RelatedPerson.telecom(system=phone)</b><br>
411         * </p>
412         */
413        public static final TokenClientParam PHONE = new TokenClientParam(SP_PHONE);
414
415        /**
416         * Search parameter constant for <b>email</b>
417         * <p>
418         * Description: <b>A value in an email contact</b><br>
419         * Type: <b>token</b><br>
420         * Path: <b>RelatedPerson.telecom(system=email)</b><br>
421         * </p>
422         */
423        @SearchParamDefinition(name="email", path="RelatedPerson.telecom(system=email)", description="A value in an email contact", type="token" 
424 )
425        public static final String SP_EMAIL = "email";
426
427        /**
428         * <b>Fluent Client</b> search parameter constant for <b>email</b>
429         * <p>
430         * Description: <b>A value in an email contact</b><br>
431         * Type: <b>token</b><br>
432         * Path: <b>RelatedPerson.telecom(system=email)</b><br>
433         * </p>
434         */
435        public static final TokenClientParam EMAIL = new TokenClientParam(SP_EMAIL);
436
437        /**
438         * Search parameter constant for <b>address</b>
439         * <p>
440         * Description: <b>An address in any kind of address/part</b><br>
441         * Type: <b>string</b><br>
442         * Path: <b>RelatedPerson.address</b><br>
443         * </p>
444         */
445        @SearchParamDefinition(name="address", path="RelatedPerson.address", description="An address in any kind of address/part", type="string" 
446 )
447        public static final String SP_ADDRESS = "address";
448
449        /**
450         * <b>Fluent Client</b> search parameter constant for <b>address</b>
451         * <p>
452         * Description: <b>An address in any kind of address/part</b><br>
453         * Type: <b>string</b><br>
454         * Path: <b>RelatedPerson.address</b><br>
455         * </p>
456         */
457        public static final StringClientParam ADDRESS = new StringClientParam(SP_ADDRESS);
458
459        /**
460         * Search parameter constant for <b>address-city</b>
461         * <p>
462         * Description: <b>A city specified in an address</b><br>
463         * Type: <b>string</b><br>
464         * Path: <b>RelatedPerson.address.city</b><br>
465         * </p>
466         */
467        @SearchParamDefinition(name="address-city", path="RelatedPerson.address.city", description="A city specified in an address", type="string" 
468 )
469        public static final String SP_ADDRESS_CITY = "address-city";
470
471        /**
472         * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
473         * <p>
474         * Description: <b>A city specified in an address</b><br>
475         * Type: <b>string</b><br>
476         * Path: <b>RelatedPerson.address.city</b><br>
477         * </p>
478         */
479        public static final StringClientParam ADDRESS_CITY = new StringClientParam(SP_ADDRESS_CITY);
480
481        /**
482         * Search parameter constant for <b>address-state</b>
483         * <p>
484         * Description: <b>A state specified in an address</b><br>
485         * Type: <b>string</b><br>
486         * Path: <b>RelatedPerson.address.state</b><br>
487         * </p>
488         */
489        @SearchParamDefinition(name="address-state", path="RelatedPerson.address.state", description="A state specified in an address", type="string" 
490 )
491        public static final String SP_ADDRESS_STATE = "address-state";
492
493        /**
494         * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
495         * <p>
496         * Description: <b>A state specified in an address</b><br>
497         * Type: <b>string</b><br>
498         * Path: <b>RelatedPerson.address.state</b><br>
499         * </p>
500         */
501        public static final StringClientParam ADDRESS_STATE = new StringClientParam(SP_ADDRESS_STATE);
502
503        /**
504         * Search parameter constant for <b>address-postalcode</b>
505         * <p>
506         * Description: <b>A postal code specified in an address</b><br>
507         * Type: <b>string</b><br>
508         * Path: <b>RelatedPerson.address.postalCode</b><br>
509         * </p>
510         */
511        @SearchParamDefinition(name="address-postalcode", path="RelatedPerson.address.postalCode", description="A postal code specified in an address", type="string" 
512 )
513        public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
514
515        /**
516         * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
517         * <p>
518         * Description: <b>A postal code specified in an address</b><br>
519         * Type: <b>string</b><br>
520         * Path: <b>RelatedPerson.address.postalCode</b><br>
521         * </p>
522         */
523        public static final StringClientParam ADDRESS_POSTALCODE = new StringClientParam(SP_ADDRESS_POSTALCODE);
524
525        /**
526         * Search parameter constant for <b>address-country</b>
527         * <p>
528         * Description: <b>A country specified in an address</b><br>
529         * Type: <b>string</b><br>
530         * Path: <b>RelatedPerson.address.country</b><br>
531         * </p>
532         */
533        @SearchParamDefinition(name="address-country", path="RelatedPerson.address.country", description="A country specified in an address", type="string" 
534 )
535        public static final String SP_ADDRESS_COUNTRY = "address-country";
536
537        /**
538         * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
539         * <p>
540         * Description: <b>A country specified in an address</b><br>
541         * Type: <b>string</b><br>
542         * Path: <b>RelatedPerson.address.country</b><br>
543         * </p>
544         */
545        public static final StringClientParam ADDRESS_COUNTRY = new StringClientParam(SP_ADDRESS_COUNTRY);
546
547        /**
548         * Search parameter constant for <b>address-use</b>
549         * <p>
550         * Description: <b>A use code specified in an address</b><br>
551         * Type: <b>token</b><br>
552         * Path: <b>RelatedPerson.address.use</b><br>
553         * </p>
554         */
555        @SearchParamDefinition(name="address-use", path="RelatedPerson.address.use", description="A use code specified in an address", type="token" 
556 )
557        public static final String SP_ADDRESS_USE = "address-use";
558
559        /**
560         * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
561         * <p>
562         * Description: <b>A use code specified in an address</b><br>
563         * Type: <b>token</b><br>
564         * Path: <b>RelatedPerson.address.use</b><br>
565         * </p>
566         */
567        public static final TokenClientParam ADDRESS_USE = new TokenClientParam(SP_ADDRESS_USE);
568
569        /**
570         * Search parameter constant for <b>birthdate</b>
571         * <p>
572         * Description: <b>The Related Person's date of birth</b><br>
573         * Type: <b>date</b><br>
574         * Path: <b>RelatedPerson.birthDate</b><br>
575         * </p>
576         */
577        @SearchParamDefinition(name="birthdate", path="RelatedPerson.birthDate", description="The Related Person's date of birth", type="date" 
578 )
579        public static final String SP_BIRTHDATE = "birthdate";
580
581        /**
582         * <b>Fluent Client</b> search parameter constant for <b>birthdate</b>
583         * <p>
584         * Description: <b>The Related Person's date of birth</b><br>
585         * Type: <b>date</b><br>
586         * Path: <b>RelatedPerson.birthDate</b><br>
587         * </p>
588         */
589        public static final DateClientParam BIRTHDATE = new DateClientParam(SP_BIRTHDATE);
590
591        /**
592         * Search parameter constant for <b>gender</b>
593         * <p>
594         * Description: <b>Gender of the person</b><br>
595         * Type: <b>token</b><br>
596         * Path: <b>RelatedPerson.gender</b><br>
597         * </p>
598         */
599        @SearchParamDefinition(name="gender", path="RelatedPerson.gender", description="Gender of the person", type="token" 
600 )
601        public static final String SP_GENDER = "gender";
602
603        /**
604         * <b>Fluent Client</b> search parameter constant for <b>gender</b>
605         * <p>
606         * Description: <b>Gender of the person</b><br>
607         * Type: <b>token</b><br>
608         * Path: <b>RelatedPerson.gender</b><br>
609         * </p>
610         */
611        public static final TokenClientParam GENDER = new TokenClientParam(SP_GENDER);
612
613        /**
614         * Search parameter constant for <b>patient</b>
615         * <p>
616         * Description: <b>The patient this person is related to</b><br>
617         * Type: <b>reference</b><br>
618         * Path: <b>RelatedPerson.patient</b><br>
619         * </p>
620         */
621        @SearchParamDefinition(name="patient", path="RelatedPerson.patient", description="The patient this person is related to", type="reference" 
622, providesMembershipIn={
623 @Compartment(name="Patient")   }
624 )
625        public static final String SP_PATIENT = "patient";
626
627        /**
628         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
629         * <p>
630         * Description: <b>The patient this person is related to</b><br>
631         * Type: <b>reference</b><br>
632         * Path: <b>RelatedPerson.patient</b><br>
633         * </p>
634         */
635        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
636
637
638        /**
639         * Constant for fluent queries to be used to add include statements. Specifies
640         * the path value of "<b>RelatedPerson:patient</b>".
641         */
642        public static final Include INCLUDE_PATIENT = new Include("RelatedPerson:patient");
643
644
645        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
646        @Description(
647                shortDefinition="id",
648                formalDefinition="Identifier for a person within a particular scope."
649        )
650        private java.util.List<IdentifierDt> myIdentifier;
651        
652        @Child(name="patient", order=1, min=1, max=1, summary=true, modifier=false, type={
653                ca.uhn.fhir.model.dstu2.resource.Patient.class
654        })
655        @Description(
656                shortDefinition="",
657                formalDefinition="The patient this person is related to"
658        )
659        private ResourceReferenceDt myPatient;
660        
661        @Child(name="relationship", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=true, modifier=false)  
662        @Description(
663                shortDefinition="class",
664                formalDefinition="The nature of the relationship between a patient and the related person"
665        )
666        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/valueset-relatedperson-relationshiptype")
667        private CodeableConceptDt myRelationship;
668        
669        @Child(name="name", type=HumanNameDt.class, order=3, min=0, max=1, summary=true, modifier=false)        
670        @Description(
671                shortDefinition="",
672                formalDefinition="A name associated with the person"
673        )
674        private HumanNameDt myName;
675        
676        @Child(name="telecom", type=ContactPointDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)        
677        @Description(
678                shortDefinition="",
679                formalDefinition="A contact detail for the person, e.g. a telephone number or an email address."
680        )
681        private java.util.List<ContactPointDt> myTelecom;
682        
683        @Child(name="gender", type=CodeDt.class, order=5, min=0, max=1, summary=true, modifier=false)   
684        @Description(
685                shortDefinition="",
686                formalDefinition="Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes."
687        )
688        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/administrative-gender")
689        private BoundCodeDt<AdministrativeGenderEnum> myGender;
690        
691        @Child(name="birthDate", type=DateDt.class, order=6, min=0, max=1, summary=true, modifier=false)        
692        @Description(
693                shortDefinition="",
694                formalDefinition=""
695        )
696        private DateDt myBirthDate;
697        
698        @Child(name="address", type=AddressDt.class, order=7, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)     
699        @Description(
700                shortDefinition="",
701                formalDefinition="Address where the related person can be contacted or visited"
702        )
703        private java.util.List<AddressDt> myAddress;
704        
705        @Child(name="photo", type=AttachmentDt.class, order=8, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
706        @Description(
707                shortDefinition="",
708                formalDefinition="Image of the person"
709        )
710        private java.util.List<AttachmentDt> myPhoto;
711        
712        @Child(name="period", type=PeriodDt.class, order=9, min=0, max=1, summary=false, modifier=false)        
713        @Description(
714                shortDefinition="when.done",
715                formalDefinition="The period of time that this relationship is considered to be valid. If there are no dates defined, then the interval is unknown."
716        )
717        private PeriodDt myPeriod;
718        
719
720        @Override
721        public boolean isEmpty() {
722                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myPatient,  myRelationship,  myName,  myTelecom,  myGender,  myBirthDate,  myAddress,  myPhoto,  myPeriod);
723        }
724        
725        @Override
726        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
727                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myPatient, myRelationship, myName, myTelecom, myGender, myBirthDate, myAddress, myPhoto, myPeriod);
728        }
729
730        /**
731         * Gets the value(s) for <b>identifier</b> (id).
732         * creating it if it does
733         * not exist. Will not return <code>null</code>.
734         *
735     * <p>
736     * <b>Definition:</b>
737     * Identifier for a person within a particular scope.
738     * </p> 
739         */
740        public java.util.List<IdentifierDt> getIdentifier() {  
741                if (myIdentifier == null) {
742                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
743                }
744                return myIdentifier;
745        }
746
747        /**
748         * Sets the value(s) for <b>identifier</b> (id)
749         *
750     * <p>
751     * <b>Definition:</b>
752     * Identifier for a person within a particular scope.
753     * </p> 
754         */
755        public RelatedPerson setIdentifier(java.util.List<IdentifierDt> theValue) {
756                myIdentifier = theValue;
757                return this;
758        }
759        
760        
761
762        /**
763         * Adds and returns a new value for <b>identifier</b> (id)
764         *
765     * <p>
766     * <b>Definition:</b>
767     * Identifier for a person within a particular scope.
768     * </p> 
769         */
770        public IdentifierDt addIdentifier() {
771                IdentifierDt newType = new IdentifierDt();
772                getIdentifier().add(newType);
773                return newType; 
774        }
775
776        /**
777         * Adds a given new value for <b>identifier</b> (id)
778         *
779         * <p>
780         * <b>Definition:</b>
781         * Identifier for a person within a particular scope.
782         * </p>
783         * @param theValue The identifier to add (must not be <code>null</code>)
784         */
785        public RelatedPerson addIdentifier(IdentifierDt theValue) {
786                if (theValue == null) {
787                        throw new NullPointerException("theValue must not be null");
788                }
789                getIdentifier().add(theValue);
790                return this;
791        }
792
793        /**
794         * Gets the first repetition for <b>identifier</b> (id),
795         * creating it if it does not already exist.
796         *
797     * <p>
798     * <b>Definition:</b>
799     * Identifier for a person within a particular scope.
800     * </p> 
801         */
802        public IdentifierDt getIdentifierFirstRep() {
803                if (getIdentifier().isEmpty()) {
804                        return addIdentifier();
805                }
806                return getIdentifier().get(0); 
807        }
808  
809        /**
810         * Gets the value(s) for <b>patient</b> ().
811         * creating it if it does
812         * not exist. Will not return <code>null</code>.
813         *
814     * <p>
815     * <b>Definition:</b>
816     * The patient this person is related to
817     * </p> 
818         */
819        public ResourceReferenceDt getPatient() {  
820                if (myPatient == null) {
821                        myPatient = new ResourceReferenceDt();
822                }
823                return myPatient;
824        }
825
826        /**
827         * Sets the value(s) for <b>patient</b> ()
828         *
829     * <p>
830     * <b>Definition:</b>
831     * The patient this person is related to
832     * </p> 
833         */
834        public RelatedPerson setPatient(ResourceReferenceDt theValue) {
835                myPatient = theValue;
836                return this;
837        }
838        
839        
840
841  
842        /**
843         * Gets the value(s) for <b>relationship</b> (class).
844         * creating it if it does
845         * not exist. Will not return <code>null</code>.
846         *
847     * <p>
848     * <b>Definition:</b>
849     * The nature of the relationship between a patient and the related person
850     * </p> 
851         */
852        public CodeableConceptDt getRelationship() {  
853                if (myRelationship == null) {
854                        myRelationship = new CodeableConceptDt();
855                }
856                return myRelationship;
857        }
858
859        /**
860         * Sets the value(s) for <b>relationship</b> (class)
861         *
862     * <p>
863     * <b>Definition:</b>
864     * The nature of the relationship between a patient and the related person
865     * </p> 
866         */
867        public RelatedPerson setRelationship(CodeableConceptDt theValue) {
868                myRelationship = theValue;
869                return this;
870        }
871        
872        
873
874  
875        /**
876         * Gets the value(s) for <b>name</b> ().
877         * creating it if it does
878         * not exist. Will not return <code>null</code>.
879         *
880     * <p>
881     * <b>Definition:</b>
882     * A name associated with the person
883     * </p> 
884         */
885        public HumanNameDt getName() {  
886                if (myName == null) {
887                        myName = new HumanNameDt();
888                }
889                return myName;
890        }
891
892        /**
893         * Sets the value(s) for <b>name</b> ()
894         *
895     * <p>
896     * <b>Definition:</b>
897     * A name associated with the person
898     * </p> 
899         */
900        public RelatedPerson setName(HumanNameDt theValue) {
901                myName = theValue;
902                return this;
903        }
904        
905        
906
907  
908        /**
909         * Gets the value(s) for <b>telecom</b> ().
910         * creating it if it does
911         * not exist. Will not return <code>null</code>.
912         *
913     * <p>
914     * <b>Definition:</b>
915     * A contact detail for the person, e.g. a telephone number or an email address.
916     * </p> 
917         */
918        public java.util.List<ContactPointDt> getTelecom() {  
919                if (myTelecom == null) {
920                        myTelecom = new java.util.ArrayList<ContactPointDt>();
921                }
922                return myTelecom;
923        }
924
925        /**
926         * Sets the value(s) for <b>telecom</b> ()
927         *
928     * <p>
929     * <b>Definition:</b>
930     * A contact detail for the person, e.g. a telephone number or an email address.
931     * </p> 
932         */
933        public RelatedPerson setTelecom(java.util.List<ContactPointDt> theValue) {
934                myTelecom = theValue;
935                return this;
936        }
937        
938        
939
940        /**
941         * Adds and returns a new value for <b>telecom</b> ()
942         *
943     * <p>
944     * <b>Definition:</b>
945     * A contact detail for the person, e.g. a telephone number or an email address.
946     * </p> 
947         */
948        public ContactPointDt addTelecom() {
949                ContactPointDt newType = new ContactPointDt();
950                getTelecom().add(newType);
951                return newType; 
952        }
953
954        /**
955         * Adds a given new value for <b>telecom</b> ()
956         *
957         * <p>
958         * <b>Definition:</b>
959         * A contact detail for the person, e.g. a telephone number or an email address.
960         * </p>
961         * @param theValue The telecom to add (must not be <code>null</code>)
962         */
963        public RelatedPerson addTelecom(ContactPointDt theValue) {
964                if (theValue == null) {
965                        throw new NullPointerException("theValue must not be null");
966                }
967                getTelecom().add(theValue);
968                return this;
969        }
970
971        /**
972         * Gets the first repetition for <b>telecom</b> (),
973         * creating it if it does not already exist.
974         *
975     * <p>
976     * <b>Definition:</b>
977     * A contact detail for the person, e.g. a telephone number or an email address.
978     * </p> 
979         */
980        public ContactPointDt getTelecomFirstRep() {
981                if (getTelecom().isEmpty()) {
982                        return addTelecom();
983                }
984                return getTelecom().get(0); 
985        }
986  
987        /**
988         * Gets the value(s) for <b>gender</b> ().
989         * creating it if it does
990         * not exist. Will not return <code>null</code>.
991         *
992     * <p>
993     * <b>Definition:</b>
994     * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
995     * </p> 
996         */
997        public BoundCodeDt<AdministrativeGenderEnum> getGenderElement() {  
998                if (myGender == null) {
999                        myGender = new BoundCodeDt<AdministrativeGenderEnum>(AdministrativeGenderEnum.VALUESET_BINDER);
1000                }
1001                return myGender;
1002        }
1003
1004        
1005        /**
1006         * Gets the value(s) for <b>gender</b> ().
1007         * creating it if it does
1008         * not exist. This method may return <code>null</code>.
1009         *
1010     * <p>
1011     * <b>Definition:</b>
1012     * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
1013     * </p> 
1014         */
1015        public String getGender() {  
1016                return getGenderElement().getValue();
1017        }
1018
1019        /**
1020         * Sets the value(s) for <b>gender</b> ()
1021         *
1022     * <p>
1023     * <b>Definition:</b>
1024     * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
1025     * </p> 
1026         */
1027        public RelatedPerson setGender(BoundCodeDt<AdministrativeGenderEnum> theValue) {
1028                myGender = theValue;
1029                return this;
1030        }
1031        
1032        
1033
1034        /**
1035         * Sets the value(s) for <b>gender</b> ()
1036         *
1037     * <p>
1038     * <b>Definition:</b>
1039     * Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes.
1040     * </p> 
1041         */
1042        public RelatedPerson setGender(AdministrativeGenderEnum theValue) {
1043                setGender(new BoundCodeDt<AdministrativeGenderEnum>(AdministrativeGenderEnum.VALUESET_BINDER, theValue));
1044                
1045/*
1046                getGenderElement().setValueAsEnum(theValue);
1047*/
1048                return this;
1049        }
1050
1051  
1052        /**
1053         * Gets the value(s) for <b>birthDate</b> ().
1054         * creating it if it does
1055         * not exist. Will not return <code>null</code>.
1056         *
1057     * <p>
1058     * <b>Definition:</b>
1059     * 
1060     * </p> 
1061         */
1062        public DateDt getBirthDateElement() {  
1063                if (myBirthDate == null) {
1064                        myBirthDate = new DateDt();
1065                }
1066                return myBirthDate;
1067        }
1068
1069        
1070        /**
1071         * Gets the value(s) for <b>birthDate</b> ().
1072         * creating it if it does
1073         * not exist. This method may return <code>null</code>.
1074         *
1075     * <p>
1076     * <b>Definition:</b>
1077     * 
1078     * </p> 
1079         */
1080        public Date getBirthDate() {  
1081                return getBirthDateElement().getValue();
1082        }
1083
1084        /**
1085         * Sets the value(s) for <b>birthDate</b> ()
1086         *
1087     * <p>
1088     * <b>Definition:</b>
1089     * 
1090     * </p> 
1091         */
1092        public RelatedPerson setBirthDate(DateDt theValue) {
1093                myBirthDate = theValue;
1094                return this;
1095        }
1096        
1097        
1098
1099        /**
1100         * Sets the value for <b>birthDate</b> ()
1101         *
1102     * <p>
1103     * <b>Definition:</b>
1104     * 
1105     * </p> 
1106         */
1107        public RelatedPerson setBirthDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1108                myBirthDate = new DateDt(theDate, thePrecision); 
1109                return this; 
1110        }
1111
1112        /**
1113         * Sets the value for <b>birthDate</b> ()
1114         *
1115     * <p>
1116     * <b>Definition:</b>
1117     * 
1118     * </p> 
1119         */
1120        public RelatedPerson setBirthDateWithDayPrecision( Date theDate) {
1121                myBirthDate = new DateDt(theDate); 
1122                return this; 
1123        }
1124
1125 
1126        /**
1127         * Gets the value(s) for <b>address</b> ().
1128         * creating it if it does
1129         * not exist. Will not return <code>null</code>.
1130         *
1131     * <p>
1132     * <b>Definition:</b>
1133     * Address where the related person can be contacted or visited
1134     * </p> 
1135         */
1136        public java.util.List<AddressDt> getAddress() {  
1137                if (myAddress == null) {
1138                        myAddress = new java.util.ArrayList<AddressDt>();
1139                }
1140                return myAddress;
1141        }
1142
1143        /**
1144         * Sets the value(s) for <b>address</b> ()
1145         *
1146     * <p>
1147     * <b>Definition:</b>
1148     * Address where the related person can be contacted or visited
1149     * </p> 
1150         */
1151        public RelatedPerson setAddress(java.util.List<AddressDt> theValue) {
1152                myAddress = theValue;
1153                return this;
1154        }
1155        
1156        
1157
1158        /**
1159         * Adds and returns a new value for <b>address</b> ()
1160         *
1161     * <p>
1162     * <b>Definition:</b>
1163     * Address where the related person can be contacted or visited
1164     * </p> 
1165         */
1166        public AddressDt addAddress() {
1167                AddressDt newType = new AddressDt();
1168                getAddress().add(newType);
1169                return newType; 
1170        }
1171
1172        /**
1173         * Adds a given new value for <b>address</b> ()
1174         *
1175         * <p>
1176         * <b>Definition:</b>
1177         * Address where the related person can be contacted or visited
1178         * </p>
1179         * @param theValue The address to add (must not be <code>null</code>)
1180         */
1181        public RelatedPerson addAddress(AddressDt theValue) {
1182                if (theValue == null) {
1183                        throw new NullPointerException("theValue must not be null");
1184                }
1185                getAddress().add(theValue);
1186                return this;
1187        }
1188
1189        /**
1190         * Gets the first repetition for <b>address</b> (),
1191         * creating it if it does not already exist.
1192         *
1193     * <p>
1194     * <b>Definition:</b>
1195     * Address where the related person can be contacted or visited
1196     * </p> 
1197         */
1198        public AddressDt getAddressFirstRep() {
1199                if (getAddress().isEmpty()) {
1200                        return addAddress();
1201                }
1202                return getAddress().get(0); 
1203        }
1204  
1205        /**
1206         * Gets the value(s) for <b>photo</b> ().
1207         * creating it if it does
1208         * not exist. Will not return <code>null</code>.
1209         *
1210     * <p>
1211     * <b>Definition:</b>
1212     * Image of the person
1213     * </p> 
1214         */
1215        public java.util.List<AttachmentDt> getPhoto() {  
1216                if (myPhoto == null) {
1217                        myPhoto = new java.util.ArrayList<AttachmentDt>();
1218                }
1219                return myPhoto;
1220        }
1221
1222        /**
1223         * Sets the value(s) for <b>photo</b> ()
1224         *
1225     * <p>
1226     * <b>Definition:</b>
1227     * Image of the person
1228     * </p> 
1229         */
1230        public RelatedPerson setPhoto(java.util.List<AttachmentDt> theValue) {
1231                myPhoto = theValue;
1232                return this;
1233        }
1234        
1235        
1236
1237        /**
1238         * Adds and returns a new value for <b>photo</b> ()
1239         *
1240     * <p>
1241     * <b>Definition:</b>
1242     * Image of the person
1243     * </p> 
1244         */
1245        public AttachmentDt addPhoto() {
1246                AttachmentDt newType = new AttachmentDt();
1247                getPhoto().add(newType);
1248                return newType; 
1249        }
1250
1251        /**
1252         * Adds a given new value for <b>photo</b> ()
1253         *
1254         * <p>
1255         * <b>Definition:</b>
1256         * Image of the person
1257         * </p>
1258         * @param theValue The photo to add (must not be <code>null</code>)
1259         */
1260        public RelatedPerson addPhoto(AttachmentDt theValue) {
1261                if (theValue == null) {
1262                        throw new NullPointerException("theValue must not be null");
1263                }
1264                getPhoto().add(theValue);
1265                return this;
1266        }
1267
1268        /**
1269         * Gets the first repetition for <b>photo</b> (),
1270         * creating it if it does not already exist.
1271         *
1272     * <p>
1273     * <b>Definition:</b>
1274     * Image of the person
1275     * </p> 
1276         */
1277        public AttachmentDt getPhotoFirstRep() {
1278                if (getPhoto().isEmpty()) {
1279                        return addPhoto();
1280                }
1281                return getPhoto().get(0); 
1282        }
1283  
1284        /**
1285         * Gets the value(s) for <b>period</b> (when.done).
1286         * creating it if it does
1287         * not exist. Will not return <code>null</code>.
1288         *
1289     * <p>
1290     * <b>Definition:</b>
1291     * The period of time that this relationship is considered to be valid. If there are no dates defined, then the interval is unknown.
1292     * </p> 
1293         */
1294        public PeriodDt getPeriod() {  
1295                if (myPeriod == null) {
1296                        myPeriod = new PeriodDt();
1297                }
1298                return myPeriod;
1299        }
1300
1301        /**
1302         * Sets the value(s) for <b>period</b> (when.done)
1303         *
1304     * <p>
1305     * <b>Definition:</b>
1306     * The period of time that this relationship is considered to be valid. If there are no dates defined, then the interval is unknown.
1307     * </p> 
1308         */
1309        public RelatedPerson setPeriod(PeriodDt theValue) {
1310                myPeriod = theValue;
1311                return this;
1312        }
1313        
1314        
1315
1316  
1317
1318
1319    @Override
1320    public String getResourceName() {
1321        return "RelatedPerson";
1322    }
1323    
1324    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1325        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1326    }
1327
1328
1329}