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>Location</b> Resource
282 * (administrative.entity)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * Details and position information for a physical place where services are provided  and resources and participants may be stored, found, contained or accommodated.
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/Location">http://hl7.org/fhir/profiles/Location</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="Location", profile="http://hl7.org/fhir/profiles/Location", id="location")
301public class Location 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></b><br>
309         * Type: <b>token</b><br>
310         * Path: <b>Location.identifier</b><br>
311         * </p>
312         */
313        @SearchParamDefinition(name="identifier", path="Location.identifier", description="", 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></b><br>
321         * Type: <b>token</b><br>
322         * Path: <b>Location.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 the) name of the location</b><br>
331         * Type: <b>string</b><br>
332         * Path: <b>Location.name</b><br>
333         * </p>
334         */
335        @SearchParamDefinition(name="name", path="Location.name", description="A (portion of the) name of the location", 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 the) name of the location</b><br>
343         * Type: <b>string</b><br>
344         * Path: <b>Location.name</b><br>
345         * </p>
346         */
347        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
348
349        /**
350         * Search parameter constant for <b>type</b>
351         * <p>
352         * Description: <b>A code for the type of location</b><br>
353         * Type: <b>token</b><br>
354         * Path: <b>Location.type</b><br>
355         * </p>
356         */
357        @SearchParamDefinition(name="type", path="Location.type", description="A code for the type of location", type="token" 
358 )
359        public static final String SP_TYPE = "type";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>type</b>
363         * <p>
364         * Description: <b>A code for the type of location</b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>Location.type</b><br>
367         * </p>
368         */
369        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
370
371        /**
372         * Search parameter constant for <b>address</b>
373         * <p>
374         * Description: <b>A (part of the) address of the location</b><br>
375         * Type: <b>string</b><br>
376         * Path: <b>Location.address</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="address", path="Location.address", description="A (part of the) address of the location", type="string" 
380 )
381        public static final String SP_ADDRESS = "address";
382
383        /**
384         * <b>Fluent Client</b> search parameter constant for <b>address</b>
385         * <p>
386         * Description: <b>A (part of the) address of the location</b><br>
387         * Type: <b>string</b><br>
388         * Path: <b>Location.address</b><br>
389         * </p>
390         */
391        public static final StringClientParam ADDRESS = new StringClientParam(SP_ADDRESS);
392
393        /**
394         * Search parameter constant for <b>address-city</b>
395         * <p>
396         * Description: <b>A city specified in an address</b><br>
397         * Type: <b>string</b><br>
398         * Path: <b>Location.address.city</b><br>
399         * </p>
400         */
401        @SearchParamDefinition(name="address-city", path="Location.address.city", description="A city specified in an address", type="string" 
402 )
403        public static final String SP_ADDRESS_CITY = "address-city";
404
405        /**
406         * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
407         * <p>
408         * Description: <b>A city specified in an address</b><br>
409         * Type: <b>string</b><br>
410         * Path: <b>Location.address.city</b><br>
411         * </p>
412         */
413        public static final StringClientParam ADDRESS_CITY = new StringClientParam(SP_ADDRESS_CITY);
414
415        /**
416         * Search parameter constant for <b>address-state</b>
417         * <p>
418         * Description: <b>A state specified in an address</b><br>
419         * Type: <b>string</b><br>
420         * Path: <b>Location.address.state</b><br>
421         * </p>
422         */
423        @SearchParamDefinition(name="address-state", path="Location.address.state", description="A state specified in an address", type="string" 
424 )
425        public static final String SP_ADDRESS_STATE = "address-state";
426
427        /**
428         * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
429         * <p>
430         * Description: <b>A state specified in an address</b><br>
431         * Type: <b>string</b><br>
432         * Path: <b>Location.address.state</b><br>
433         * </p>
434         */
435        public static final StringClientParam ADDRESS_STATE = new StringClientParam(SP_ADDRESS_STATE);
436
437        /**
438         * Search parameter constant for <b>address-postalcode</b>
439         * <p>
440         * Description: <b>A postal code specified in an address</b><br>
441         * Type: <b>string</b><br>
442         * Path: <b>Location.address.postalCode</b><br>
443         * </p>
444         */
445        @SearchParamDefinition(name="address-postalcode", path="Location.address.postalCode", description="A postal code specified in an address", type="string" 
446 )
447        public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
448
449        /**
450         * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
451         * <p>
452         * Description: <b>A postal code specified in an address</b><br>
453         * Type: <b>string</b><br>
454         * Path: <b>Location.address.postalCode</b><br>
455         * </p>
456         */
457        public static final StringClientParam ADDRESS_POSTALCODE = new StringClientParam(SP_ADDRESS_POSTALCODE);
458
459        /**
460         * Search parameter constant for <b>address-country</b>
461         * <p>
462         * Description: <b>A country specified in an address</b><br>
463         * Type: <b>string</b><br>
464         * Path: <b>Location.address.country</b><br>
465         * </p>
466         */
467        @SearchParamDefinition(name="address-country", path="Location.address.country", description="A country specified in an address", type="string" 
468 )
469        public static final String SP_ADDRESS_COUNTRY = "address-country";
470
471        /**
472         * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
473         * <p>
474         * Description: <b>A country specified in an address</b><br>
475         * Type: <b>string</b><br>
476         * Path: <b>Location.address.country</b><br>
477         * </p>
478         */
479        public static final StringClientParam ADDRESS_COUNTRY = new StringClientParam(SP_ADDRESS_COUNTRY);
480
481        /**
482         * Search parameter constant for <b>address-use</b>
483         * <p>
484         * Description: <b>A use code specified in an address</b><br>
485         * Type: <b>token</b><br>
486         * Path: <b>Location.address.use</b><br>
487         * </p>
488         */
489        @SearchParamDefinition(name="address-use", path="Location.address.use", description="A use code specified in an address", type="token" 
490 )
491        public static final String SP_ADDRESS_USE = "address-use";
492
493        /**
494         * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
495         * <p>
496         * Description: <b>A use code specified in an address</b><br>
497         * Type: <b>token</b><br>
498         * Path: <b>Location.address.use</b><br>
499         * </p>
500         */
501        public static final TokenClientParam ADDRESS_USE = new TokenClientParam(SP_ADDRESS_USE);
502
503        /**
504         * Search parameter constant for <b>status</b>
505         * <p>
506         * Description: <b>Searches for locations with a specific kind of status</b><br>
507         * Type: <b>token</b><br>
508         * Path: <b>Location.status</b><br>
509         * </p>
510         */
511        @SearchParamDefinition(name="status", path="Location.status", description="Searches for locations with a specific kind of status", type="token" 
512 )
513        public static final String SP_STATUS = "status";
514
515        /**
516         * <b>Fluent Client</b> search parameter constant for <b>status</b>
517         * <p>
518         * Description: <b>Searches for locations with a specific kind of status</b><br>
519         * Type: <b>token</b><br>
520         * Path: <b>Location.status</b><br>
521         * </p>
522         */
523        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
524
525        /**
526         * Search parameter constant for <b>partof</b>
527         * <p>
528         * Description: <b>The location of which this location is a part</b><br>
529         * Type: <b>reference</b><br>
530         * Path: <b>Location.partOf</b><br>
531         * </p>
532         */
533        @SearchParamDefinition(name="partof", path="Location.partOf", description="The location of which this location is a part", type="reference" 
534 )
535        public static final String SP_PARTOF = "partof";
536
537        /**
538         * <b>Fluent Client</b> search parameter constant for <b>partof</b>
539         * <p>
540         * Description: <b>The location of which this location is a part</b><br>
541         * Type: <b>reference</b><br>
542         * Path: <b>Location.partOf</b><br>
543         * </p>
544         */
545        public static final ReferenceClientParam PARTOF = new ReferenceClientParam(SP_PARTOF);
546
547        /**
548         * Search parameter constant for <b>near</b>
549         * <p>
550         * Description: <b>The coordinates expressed as [lat],[long] (using the WGS84 datum, see notes) to find locations near to (servers may search using a square rather than a circle for efficiency)</b><br>
551         * Type: <b>token</b><br>
552         * Path: <b>Location.position</b><br>
553         * </p>
554         */
555        @SearchParamDefinition(name="near", path="Location.position", description="The coordinates expressed as [lat],[long] (using the WGS84 datum, see notes) to find locations near to (servers may search using a square rather than a circle for efficiency)", type="token" 
556 )
557        public static final String SP_NEAR = "near";
558
559        /**
560         * <b>Fluent Client</b> search parameter constant for <b>near</b>
561         * <p>
562         * Description: <b>The coordinates expressed as [lat],[long] (using the WGS84 datum, see notes) to find locations near to (servers may search using a square rather than a circle for efficiency)</b><br>
563         * Type: <b>token</b><br>
564         * Path: <b>Location.position</b><br>
565         * </p>
566         */
567        public static final TokenClientParam NEAR = new TokenClientParam(SP_NEAR);
568
569        /**
570         * Search parameter constant for <b>near-distance</b>
571         * <p>
572         * Description: <b>A distance quantity to limit the near search to locations within a specific distance</b><br>
573         * Type: <b>token</b><br>
574         * Path: <b>Location.position</b><br>
575         * </p>
576         */
577        @SearchParamDefinition(name="near-distance", path="Location.position", description="A distance quantity to limit the near search to locations within a specific distance", type="token" 
578 )
579        public static final String SP_NEAR_DISTANCE = "near-distance";
580
581        /**
582         * <b>Fluent Client</b> search parameter constant for <b>near-distance</b>
583         * <p>
584         * Description: <b>A distance quantity to limit the near search to locations within a specific distance</b><br>
585         * Type: <b>token</b><br>
586         * Path: <b>Location.position</b><br>
587         * </p>
588         */
589        public static final TokenClientParam NEAR_DISTANCE = new TokenClientParam(SP_NEAR_DISTANCE);
590
591        /**
592         * Search parameter constant for <b>organization</b>
593         * <p>
594         * Description: <b>Searches for locations that are managed by the provided organization</b><br>
595         * Type: <b>reference</b><br>
596         * Path: <b>Location.managingOrganization</b><br>
597         * </p>
598         */
599        @SearchParamDefinition(name="organization", path="Location.managingOrganization", description="Searches for locations that are managed by the provided organization", type="reference" 
600 )
601        public static final String SP_ORGANIZATION = "organization";
602
603        /**
604         * <b>Fluent Client</b> search parameter constant for <b>organization</b>
605         * <p>
606         * Description: <b>Searches for locations that are managed by the provided organization</b><br>
607         * Type: <b>reference</b><br>
608         * Path: <b>Location.managingOrganization</b><br>
609         * </p>
610         */
611        public static final ReferenceClientParam ORGANIZATION = new ReferenceClientParam(SP_ORGANIZATION);
612
613
614        /**
615         * Constant for fluent queries to be used to add include statements. Specifies
616         * the path value of "<b>Location:organization</b>".
617         */
618        public static final Include INCLUDE_ORGANIZATION = new Include("Location:organization");
619
620        /**
621         * Constant for fluent queries to be used to add include statements. Specifies
622         * the path value of "<b>Location:partof</b>".
623         */
624        public static final Include INCLUDE_PARTOF = new Include("Location:partof");
625
626
627        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
628        @Description(
629                shortDefinition="id",
630                formalDefinition="Unique code or number identifying the location to its users"
631        )
632        private java.util.List<IdentifierDt> myIdentifier;
633        
634        @Child(name="status", type=CodeDt.class, order=1, min=0, max=1, summary=true, modifier=true)    
635        @Description(
636                shortDefinition="status",
637                formalDefinition=""
638        )
639        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/location-status")
640        private BoundCodeDt<LocationStatusEnum> myStatus;
641        
642        @Child(name="name", type=StringDt.class, order=2, min=0, max=1, summary=true, modifier=false)   
643        @Description(
644                shortDefinition="",
645                formalDefinition="Name of the location as used by humans. Does not need to be unique."
646        )
647        private StringDt myName;
648        
649        @Child(name="description", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false)    
650        @Description(
651                shortDefinition="",
652                formalDefinition="Description of the Location, which helps in finding or referencing the place"
653        )
654        private StringDt myDescription;
655        
656        @Child(name="mode", type=CodeDt.class, order=4, min=0, max=1, summary=true, modifier=true)      
657        @Description(
658                shortDefinition="class",
659                formalDefinition="Indicates whether a resource instance represents a specific location or a class of locations"
660        )
661        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/location-mode")
662        private BoundCodeDt<LocationModeEnum> myMode;
663        
664        @Child(name="type", type=CodeableConceptDt.class, order=5, min=0, max=1, summary=true, modifier=false)  
665        @Description(
666                shortDefinition="class",
667                formalDefinition="Indicates the type of function performed at the location"
668        )
669        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/v3-ServiceDeliveryLocationRoleType")
670        private BoundCodeableConceptDt<LocationTypeEnum> myType;
671        
672        @Child(name="telecom", type=ContactPointDt.class, order=6, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
673        @Description(
674                shortDefinition="",
675                formalDefinition="The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites"
676        )
677        private java.util.List<ContactPointDt> myTelecom;
678        
679        @Child(name="address", type=AddressDt.class, order=7, min=0, max=1, summary=false, modifier=false)      
680        @Description(
681                shortDefinition="",
682                formalDefinition=""
683        )
684        private AddressDt myAddress;
685        
686        @Child(name="physicalType", type=CodeableConceptDt.class, order=8, min=0, max=1, summary=true, modifier=false)  
687        @Description(
688                shortDefinition="class",
689                formalDefinition="Physical form of the location, e.g. building, room, vehicle, road"
690        )
691        private CodeableConceptDt myPhysicalType;
692        
693        @Child(name="position", order=9, min=0, max=1, summary=false, modifier=false)   
694        @Description(
695                shortDefinition="",
696                formalDefinition="The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)"
697        )
698        private Position myPosition;
699        
700        @Child(name="managingOrganization", order=10, min=0, max=1, summary=true, modifier=false, type={
701                ca.uhn.fhir.model.dstu2.resource.Organization.class
702        })
703        @Description(
704                shortDefinition="",
705                formalDefinition="The organization responsible for the provisioning and upkeep of the location"
706        )
707        private ResourceReferenceDt myManagingOrganization;
708        
709        @Child(name="partOf", order=11, min=0, max=1, summary=false, modifier=false, type={
710                ca.uhn.fhir.model.dstu2.resource.Location.class
711        })
712        @Description(
713                shortDefinition="",
714                formalDefinition="Another Location which this Location is physically part of"
715        )
716        private ResourceReferenceDt myPartOf;
717        
718
719        @Override
720        public boolean isEmpty() {
721                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myStatus,  myName,  myDescription,  myMode,  myType,  myTelecom,  myAddress,  myPhysicalType,  myPosition,  myManagingOrganization,  myPartOf);
722        }
723        
724        @Override
725        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
726                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myStatus, myName, myDescription, myMode, myType, myTelecom, myAddress, myPhysicalType, myPosition, myManagingOrganization, myPartOf);
727        }
728
729        /**
730         * Gets the value(s) for <b>identifier</b> (id).
731         * creating it if it does
732         * not exist. Will not return <code>null</code>.
733         *
734     * <p>
735     * <b>Definition:</b>
736     * Unique code or number identifying the location to its users
737     * </p> 
738         */
739        public java.util.List<IdentifierDt> getIdentifier() {  
740                if (myIdentifier == null) {
741                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
742                }
743                return myIdentifier;
744        }
745
746        /**
747         * Sets the value(s) for <b>identifier</b> (id)
748         *
749     * <p>
750     * <b>Definition:</b>
751     * Unique code or number identifying the location to its users
752     * </p> 
753         */
754        public Location setIdentifier(java.util.List<IdentifierDt> theValue) {
755                myIdentifier = theValue;
756                return this;
757        }
758        
759        
760
761        /**
762         * Adds and returns a new value for <b>identifier</b> (id)
763         *
764     * <p>
765     * <b>Definition:</b>
766     * Unique code or number identifying the location to its users
767     * </p> 
768         */
769        public IdentifierDt addIdentifier() {
770                IdentifierDt newType = new IdentifierDt();
771                getIdentifier().add(newType);
772                return newType; 
773        }
774
775        /**
776         * Adds a given new value for <b>identifier</b> (id)
777         *
778         * <p>
779         * <b>Definition:</b>
780         * Unique code or number identifying the location to its users
781         * </p>
782         * @param theValue The identifier to add (must not be <code>null</code>)
783         */
784        public Location addIdentifier(IdentifierDt theValue) {
785                if (theValue == null) {
786                        throw new NullPointerException("theValue must not be null");
787                }
788                getIdentifier().add(theValue);
789                return this;
790        }
791
792        /**
793         * Gets the first repetition for <b>identifier</b> (id),
794         * creating it if it does not already exist.
795         *
796     * <p>
797     * <b>Definition:</b>
798     * Unique code or number identifying the location to its users
799     * </p> 
800         */
801        public IdentifierDt getIdentifierFirstRep() {
802                if (getIdentifier().isEmpty()) {
803                        return addIdentifier();
804                }
805                return getIdentifier().get(0); 
806        }
807  
808        /**
809         * Gets the value(s) for <b>status</b> (status).
810         * creating it if it does
811         * not exist. Will not return <code>null</code>.
812         *
813     * <p>
814     * <b>Definition:</b>
815     * 
816     * </p> 
817         */
818        public BoundCodeDt<LocationStatusEnum> getStatusElement() {  
819                if (myStatus == null) {
820                        myStatus = new BoundCodeDt<LocationStatusEnum>(LocationStatusEnum.VALUESET_BINDER);
821                }
822                return myStatus;
823        }
824
825        
826        /**
827         * Gets the value(s) for <b>status</b> (status).
828         * creating it if it does
829         * not exist. This method may return <code>null</code>.
830         *
831     * <p>
832     * <b>Definition:</b>
833     * 
834     * </p> 
835         */
836        public String getStatus() {  
837                return getStatusElement().getValue();
838        }
839
840        /**
841         * Sets the value(s) for <b>status</b> (status)
842         *
843     * <p>
844     * <b>Definition:</b>
845     * 
846     * </p> 
847         */
848        public Location setStatus(BoundCodeDt<LocationStatusEnum> theValue) {
849                myStatus = theValue;
850                return this;
851        }
852        
853        
854
855        /**
856         * Sets the value(s) for <b>status</b> (status)
857         *
858     * <p>
859     * <b>Definition:</b>
860     * 
861     * </p> 
862         */
863        public Location setStatus(LocationStatusEnum theValue) {
864                setStatus(new BoundCodeDt<LocationStatusEnum>(LocationStatusEnum.VALUESET_BINDER, theValue));
865                
866/*
867                getStatusElement().setValueAsEnum(theValue);
868*/
869                return this;
870        }
871
872  
873        /**
874         * Gets the value(s) for <b>name</b> ().
875         * creating it if it does
876         * not exist. Will not return <code>null</code>.
877         *
878     * <p>
879     * <b>Definition:</b>
880     * Name of the location as used by humans. Does not need to be unique.
881     * </p> 
882         */
883        public StringDt getNameElement() {  
884                if (myName == null) {
885                        myName = new StringDt();
886                }
887                return myName;
888        }
889
890        
891        /**
892         * Gets the value(s) for <b>name</b> ().
893         * creating it if it does
894         * not exist. This method may return <code>null</code>.
895         *
896     * <p>
897     * <b>Definition:</b>
898     * Name of the location as used by humans. Does not need to be unique.
899     * </p> 
900         */
901        public String getName() {  
902                return getNameElement().getValue();
903        }
904
905        /**
906         * Sets the value(s) for <b>name</b> ()
907         *
908     * <p>
909     * <b>Definition:</b>
910     * Name of the location as used by humans. Does not need to be unique.
911     * </p> 
912         */
913        public Location setName(StringDt theValue) {
914                myName = theValue;
915                return this;
916        }
917        
918        
919
920        /**
921         * Sets the value for <b>name</b> ()
922         *
923     * <p>
924     * <b>Definition:</b>
925     * Name of the location as used by humans. Does not need to be unique.
926     * </p> 
927         */
928        public Location setName( String theString) {
929                myName = new StringDt(theString); 
930                return this; 
931        }
932
933 
934        /**
935         * Gets the value(s) for <b>description</b> ().
936         * creating it if it does
937         * not exist. Will not return <code>null</code>.
938         *
939     * <p>
940     * <b>Definition:</b>
941     * Description of the Location, which helps in finding or referencing the place
942     * </p> 
943         */
944        public StringDt getDescriptionElement() {  
945                if (myDescription == null) {
946                        myDescription = new StringDt();
947                }
948                return myDescription;
949        }
950
951        
952        /**
953         * Gets the value(s) for <b>description</b> ().
954         * creating it if it does
955         * not exist. This method may return <code>null</code>.
956         *
957     * <p>
958     * <b>Definition:</b>
959     * Description of the Location, which helps in finding or referencing the place
960     * </p> 
961         */
962        public String getDescription() {  
963                return getDescriptionElement().getValue();
964        }
965
966        /**
967         * Sets the value(s) for <b>description</b> ()
968         *
969     * <p>
970     * <b>Definition:</b>
971     * Description of the Location, which helps in finding or referencing the place
972     * </p> 
973         */
974        public Location setDescription(StringDt theValue) {
975                myDescription = theValue;
976                return this;
977        }
978        
979        
980
981        /**
982         * Sets the value for <b>description</b> ()
983         *
984     * <p>
985     * <b>Definition:</b>
986     * Description of the Location, which helps in finding or referencing the place
987     * </p> 
988         */
989        public Location setDescription( String theString) {
990                myDescription = new StringDt(theString); 
991                return this; 
992        }
993
994 
995        /**
996         * Gets the value(s) for <b>mode</b> (class).
997         * creating it if it does
998         * not exist. Will not return <code>null</code>.
999         *
1000     * <p>
1001     * <b>Definition:</b>
1002     * Indicates whether a resource instance represents a specific location or a class of locations
1003     * </p> 
1004         */
1005        public BoundCodeDt<LocationModeEnum> getModeElement() {  
1006                if (myMode == null) {
1007                        myMode = new BoundCodeDt<LocationModeEnum>(LocationModeEnum.VALUESET_BINDER);
1008                }
1009                return myMode;
1010        }
1011
1012        
1013        /**
1014         * Gets the value(s) for <b>mode</b> (class).
1015         * creating it if it does
1016         * not exist. This method may return <code>null</code>.
1017         *
1018     * <p>
1019     * <b>Definition:</b>
1020     * Indicates whether a resource instance represents a specific location or a class of locations
1021     * </p> 
1022         */
1023        public String getMode() {  
1024                return getModeElement().getValue();
1025        }
1026
1027        /**
1028         * Sets the value(s) for <b>mode</b> (class)
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * Indicates whether a resource instance represents a specific location or a class of locations
1033     * </p> 
1034         */
1035        public Location setMode(BoundCodeDt<LocationModeEnum> theValue) {
1036                myMode = theValue;
1037                return this;
1038        }
1039        
1040        
1041
1042        /**
1043         * Sets the value(s) for <b>mode</b> (class)
1044         *
1045     * <p>
1046     * <b>Definition:</b>
1047     * Indicates whether a resource instance represents a specific location or a class of locations
1048     * </p> 
1049         */
1050        public Location setMode(LocationModeEnum theValue) {
1051                setMode(new BoundCodeDt<LocationModeEnum>(LocationModeEnum.VALUESET_BINDER, theValue));
1052                
1053/*
1054                getModeElement().setValueAsEnum(theValue);
1055*/
1056                return this;
1057        }
1058
1059  
1060        /**
1061         * Gets the value(s) for <b>type</b> (class).
1062         * creating it if it does
1063         * not exist. Will not return <code>null</code>.
1064         *
1065     * <p>
1066     * <b>Definition:</b>
1067     * Indicates the type of function performed at the location
1068     * </p> 
1069         */
1070        public BoundCodeableConceptDt<LocationTypeEnum> getType() {  
1071                if (myType == null) {
1072                        myType = new BoundCodeableConceptDt<LocationTypeEnum>(LocationTypeEnum.VALUESET_BINDER);
1073                }
1074                return myType;
1075        }
1076
1077        /**
1078         * Sets the value(s) for <b>type</b> (class)
1079         *
1080     * <p>
1081     * <b>Definition:</b>
1082     * Indicates the type of function performed at the location
1083     * </p> 
1084         */
1085        public Location setType(BoundCodeableConceptDt<LocationTypeEnum> theValue) {
1086                myType = theValue;
1087                return this;
1088        }
1089        
1090        
1091
1092        /**
1093         * Sets the value(s) for <b>type</b> (class)
1094         *
1095     * <p>
1096     * <b>Definition:</b>
1097     * Indicates the type of function performed at the location
1098     * </p> 
1099         */
1100        public Location setType(LocationTypeEnum theValue) {
1101                setType(new BoundCodeableConceptDt<LocationTypeEnum>(LocationTypeEnum.VALUESET_BINDER, theValue));
1102                
1103/*
1104                getType().setValueAsEnum(theValue);
1105*/
1106                return this;
1107        }
1108
1109  
1110        /**
1111         * Gets the value(s) for <b>telecom</b> ().
1112         * creating it if it does
1113         * not exist. Will not return <code>null</code>.
1114         *
1115     * <p>
1116     * <b>Definition:</b>
1117     * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
1118     * </p> 
1119         */
1120        public java.util.List<ContactPointDt> getTelecom() {  
1121                if (myTelecom == null) {
1122                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1123                }
1124                return myTelecom;
1125        }
1126
1127        /**
1128         * Sets the value(s) for <b>telecom</b> ()
1129         *
1130     * <p>
1131     * <b>Definition:</b>
1132     * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
1133     * </p> 
1134         */
1135        public Location setTelecom(java.util.List<ContactPointDt> theValue) {
1136                myTelecom = theValue;
1137                return this;
1138        }
1139        
1140        
1141
1142        /**
1143         * Adds and returns a new value for <b>telecom</b> ()
1144         *
1145     * <p>
1146     * <b>Definition:</b>
1147     * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
1148     * </p> 
1149         */
1150        public ContactPointDt addTelecom() {
1151                ContactPointDt newType = new ContactPointDt();
1152                getTelecom().add(newType);
1153                return newType; 
1154        }
1155
1156        /**
1157         * Adds a given new value for <b>telecom</b> ()
1158         *
1159         * <p>
1160         * <b>Definition:</b>
1161         * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
1162         * </p>
1163         * @param theValue The telecom to add (must not be <code>null</code>)
1164         */
1165        public Location addTelecom(ContactPointDt theValue) {
1166                if (theValue == null) {
1167                        throw new NullPointerException("theValue must not be null");
1168                }
1169                getTelecom().add(theValue);
1170                return this;
1171        }
1172
1173        /**
1174         * Gets the first repetition for <b>telecom</b> (),
1175         * creating it if it does not already exist.
1176         *
1177     * <p>
1178     * <b>Definition:</b>
1179     * The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites
1180     * </p> 
1181         */
1182        public ContactPointDt getTelecomFirstRep() {
1183                if (getTelecom().isEmpty()) {
1184                        return addTelecom();
1185                }
1186                return getTelecom().get(0); 
1187        }
1188  
1189        /**
1190         * Gets the value(s) for <b>address</b> ().
1191         * creating it if it does
1192         * not exist. Will not return <code>null</code>.
1193         *
1194     * <p>
1195     * <b>Definition:</b>
1196     * 
1197     * </p> 
1198         */
1199        public AddressDt getAddress() {  
1200                if (myAddress == null) {
1201                        myAddress = new AddressDt();
1202                }
1203                return myAddress;
1204        }
1205
1206        /**
1207         * Sets the value(s) for <b>address</b> ()
1208         *
1209     * <p>
1210     * <b>Definition:</b>
1211     * 
1212     * </p> 
1213         */
1214        public Location setAddress(AddressDt theValue) {
1215                myAddress = theValue;
1216                return this;
1217        }
1218        
1219        
1220
1221  
1222        /**
1223         * Gets the value(s) for <b>physicalType</b> (class).
1224         * creating it if it does
1225         * not exist. Will not return <code>null</code>.
1226         *
1227     * <p>
1228     * <b>Definition:</b>
1229     * Physical form of the location, e.g. building, room, vehicle, road
1230     * </p> 
1231         */
1232        public CodeableConceptDt getPhysicalType() {  
1233                if (myPhysicalType == null) {
1234                        myPhysicalType = new CodeableConceptDt();
1235                }
1236                return myPhysicalType;
1237        }
1238
1239        /**
1240         * Sets the value(s) for <b>physicalType</b> (class)
1241         *
1242     * <p>
1243     * <b>Definition:</b>
1244     * Physical form of the location, e.g. building, room, vehicle, road
1245     * </p> 
1246         */
1247        public Location setPhysicalType(CodeableConceptDt theValue) {
1248                myPhysicalType = theValue;
1249                return this;
1250        }
1251        
1252        
1253
1254  
1255        /**
1256         * Gets the value(s) for <b>position</b> ().
1257         * creating it if it does
1258         * not exist. Will not return <code>null</code>.
1259         *
1260     * <p>
1261     * <b>Definition:</b>
1262     * The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)
1263     * </p> 
1264         */
1265        public Position getPosition() {  
1266                if (myPosition == null) {
1267                        myPosition = new Position();
1268                }
1269                return myPosition;
1270        }
1271
1272        /**
1273         * Sets the value(s) for <b>position</b> ()
1274         *
1275     * <p>
1276     * <b>Definition:</b>
1277     * The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)
1278     * </p> 
1279         */
1280        public Location setPosition(Position theValue) {
1281                myPosition = theValue;
1282                return this;
1283        }
1284        
1285        
1286
1287  
1288        /**
1289         * Gets the value(s) for <b>managingOrganization</b> ().
1290         * creating it if it does
1291         * not exist. Will not return <code>null</code>.
1292         *
1293     * <p>
1294     * <b>Definition:</b>
1295     * The organization responsible for the provisioning and upkeep of the location
1296     * </p> 
1297         */
1298        public ResourceReferenceDt getManagingOrganization() {  
1299                if (myManagingOrganization == null) {
1300                        myManagingOrganization = new ResourceReferenceDt();
1301                }
1302                return myManagingOrganization;
1303        }
1304
1305        /**
1306         * Sets the value(s) for <b>managingOrganization</b> ()
1307         *
1308     * <p>
1309     * <b>Definition:</b>
1310     * The organization responsible for the provisioning and upkeep of the location
1311     * </p> 
1312         */
1313        public Location setManagingOrganization(ResourceReferenceDt theValue) {
1314                myManagingOrganization = theValue;
1315                return this;
1316        }
1317        
1318        
1319
1320  
1321        /**
1322         * Gets the value(s) for <b>partOf</b> ().
1323         * creating it if it does
1324         * not exist. Will not return <code>null</code>.
1325         *
1326     * <p>
1327     * <b>Definition:</b>
1328     * Another Location which this Location is physically part of
1329     * </p> 
1330         */
1331        public ResourceReferenceDt getPartOf() {  
1332                if (myPartOf == null) {
1333                        myPartOf = new ResourceReferenceDt();
1334                }
1335                return myPartOf;
1336        }
1337
1338        /**
1339         * Sets the value(s) for <b>partOf</b> ()
1340         *
1341     * <p>
1342     * <b>Definition:</b>
1343     * Another Location which this Location is physically part of
1344     * </p> 
1345         */
1346        public Location setPartOf(ResourceReferenceDt theValue) {
1347                myPartOf = theValue;
1348                return this;
1349        }
1350        
1351        
1352
1353  
1354        /**
1355         * Block class for child element: <b>Location.position</b> ()
1356         *
1357     * <p>
1358     * <b>Definition:</b>
1359     * The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)
1360     * </p> 
1361         */
1362        @Block()        
1363        public static class Position 
1364            extends  BaseIdentifiableElement  
1365            implements IResourceBlock {
1366        
1367        @Child(name="longitude", type=DecimalDt.class, order=0, min=1, max=1, summary=false, modifier=false)    
1368        @Description(
1369                shortDefinition="",
1370                formalDefinition="Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)"
1371        )
1372        private DecimalDt myLongitude;
1373        
1374        @Child(name="latitude", type=DecimalDt.class, order=1, min=1, max=1, summary=false, modifier=false)     
1375        @Description(
1376                shortDefinition="",
1377                formalDefinition="Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)"
1378        )
1379        private DecimalDt myLatitude;
1380        
1381        @Child(name="altitude", type=DecimalDt.class, order=2, min=0, max=1, summary=false, modifier=false)     
1382        @Description(
1383                shortDefinition="",
1384                formalDefinition="Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)"
1385        )
1386        private DecimalDt myAltitude;
1387        
1388
1389        @Override
1390        public boolean isEmpty() {
1391                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myLongitude,  myLatitude,  myAltitude);
1392        }
1393        
1394        @Override
1395        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1396                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myLongitude, myLatitude, myAltitude);
1397        }
1398
1399        /**
1400         * Gets the value(s) for <b>longitude</b> ().
1401         * creating it if it does
1402         * not exist. Will not return <code>null</code>.
1403         *
1404     * <p>
1405     * <b>Definition:</b>
1406     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1407     * </p> 
1408         */
1409        public DecimalDt getLongitudeElement() {  
1410                if (myLongitude == null) {
1411                        myLongitude = new DecimalDt();
1412                }
1413                return myLongitude;
1414        }
1415
1416        
1417        /**
1418         * Gets the value(s) for <b>longitude</b> ().
1419         * creating it if it does
1420         * not exist. This method may return <code>null</code>.
1421         *
1422     * <p>
1423     * <b>Definition:</b>
1424     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1425     * </p> 
1426         */
1427        public BigDecimal getLongitude() {  
1428                return getLongitudeElement().getValue();
1429        }
1430
1431        /**
1432         * Sets the value(s) for <b>longitude</b> ()
1433         *
1434     * <p>
1435     * <b>Definition:</b>
1436     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1437     * </p> 
1438         */
1439        public Position setLongitude(DecimalDt theValue) {
1440                myLongitude = theValue;
1441                return this;
1442        }
1443        
1444        
1445
1446        /**
1447         * Sets the value for <b>longitude</b> ()
1448         *
1449     * <p>
1450     * <b>Definition:</b>
1451     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1452     * </p> 
1453         */
1454        public Position setLongitude( long theValue) {
1455                myLongitude = new DecimalDt(theValue); 
1456                return this; 
1457        }
1458
1459        /**
1460         * Sets the value for <b>longitude</b> ()
1461         *
1462     * <p>
1463     * <b>Definition:</b>
1464     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1465     * </p> 
1466         */
1467        public Position setLongitude( double theValue) {
1468                myLongitude = new DecimalDt(theValue); 
1469                return this; 
1470        }
1471
1472        /**
1473         * Sets the value for <b>longitude</b> ()
1474         *
1475     * <p>
1476     * <b>Definition:</b>
1477     * Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
1478     * </p> 
1479         */
1480        public Position setLongitude( java.math.BigDecimal theValue) {
1481                myLongitude = new DecimalDt(theValue); 
1482                return this; 
1483        }
1484
1485 
1486        /**
1487         * Gets the value(s) for <b>latitude</b> ().
1488         * creating it if it does
1489         * not exist. Will not return <code>null</code>.
1490         *
1491     * <p>
1492     * <b>Definition:</b>
1493     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1494     * </p> 
1495         */
1496        public DecimalDt getLatitudeElement() {  
1497                if (myLatitude == null) {
1498                        myLatitude = new DecimalDt();
1499                }
1500                return myLatitude;
1501        }
1502
1503        
1504        /**
1505         * Gets the value(s) for <b>latitude</b> ().
1506         * creating it if it does
1507         * not exist. This method may return <code>null</code>.
1508         *
1509     * <p>
1510     * <b>Definition:</b>
1511     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1512     * </p> 
1513         */
1514        public BigDecimal getLatitude() {  
1515                return getLatitudeElement().getValue();
1516        }
1517
1518        /**
1519         * Sets the value(s) for <b>latitude</b> ()
1520         *
1521     * <p>
1522     * <b>Definition:</b>
1523     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1524     * </p> 
1525         */
1526        public Position setLatitude(DecimalDt theValue) {
1527                myLatitude = theValue;
1528                return this;
1529        }
1530        
1531        
1532
1533        /**
1534         * Sets the value for <b>latitude</b> ()
1535         *
1536     * <p>
1537     * <b>Definition:</b>
1538     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1539     * </p> 
1540         */
1541        public Position setLatitude( long theValue) {
1542                myLatitude = new DecimalDt(theValue); 
1543                return this; 
1544        }
1545
1546        /**
1547         * Sets the value for <b>latitude</b> ()
1548         *
1549     * <p>
1550     * <b>Definition:</b>
1551     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1552     * </p> 
1553         */
1554        public Position setLatitude( double theValue) {
1555                myLatitude = new DecimalDt(theValue); 
1556                return this; 
1557        }
1558
1559        /**
1560         * Sets the value for <b>latitude</b> ()
1561         *
1562     * <p>
1563     * <b>Definition:</b>
1564     * Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
1565     * </p> 
1566         */
1567        public Position setLatitude( java.math.BigDecimal theValue) {
1568                myLatitude = new DecimalDt(theValue); 
1569                return this; 
1570        }
1571
1572 
1573        /**
1574         * Gets the value(s) for <b>altitude</b> ().
1575         * creating it if it does
1576         * not exist. Will not return <code>null</code>.
1577         *
1578     * <p>
1579     * <b>Definition:</b>
1580     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1581     * </p> 
1582         */
1583        public DecimalDt getAltitudeElement() {  
1584                if (myAltitude == null) {
1585                        myAltitude = new DecimalDt();
1586                }
1587                return myAltitude;
1588        }
1589
1590        
1591        /**
1592         * Gets the value(s) for <b>altitude</b> ().
1593         * creating it if it does
1594         * not exist. This method may return <code>null</code>.
1595         *
1596     * <p>
1597     * <b>Definition:</b>
1598     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1599     * </p> 
1600         */
1601        public BigDecimal getAltitude() {  
1602                return getAltitudeElement().getValue();
1603        }
1604
1605        /**
1606         * Sets the value(s) for <b>altitude</b> ()
1607         *
1608     * <p>
1609     * <b>Definition:</b>
1610     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1611     * </p> 
1612         */
1613        public Position setAltitude(DecimalDt theValue) {
1614                myAltitude = theValue;
1615                return this;
1616        }
1617        
1618        
1619
1620        /**
1621         * Sets the value for <b>altitude</b> ()
1622         *
1623     * <p>
1624     * <b>Definition:</b>
1625     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1626     * </p> 
1627         */
1628        public Position setAltitude( long theValue) {
1629                myAltitude = new DecimalDt(theValue); 
1630                return this; 
1631        }
1632
1633        /**
1634         * Sets the value for <b>altitude</b> ()
1635         *
1636     * <p>
1637     * <b>Definition:</b>
1638     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1639     * </p> 
1640         */
1641        public Position setAltitude( double theValue) {
1642                myAltitude = new DecimalDt(theValue); 
1643                return this; 
1644        }
1645
1646        /**
1647         * Sets the value for <b>altitude</b> ()
1648         *
1649     * <p>
1650     * <b>Definition:</b>
1651     * Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
1652     * </p> 
1653         */
1654        public Position setAltitude( java.math.BigDecimal theValue) {
1655                myAltitude = new DecimalDt(theValue); 
1656                return this; 
1657        }
1658
1659 
1660
1661
1662        }
1663
1664
1665
1666
1667    @Override
1668    public String getResourceName() {
1669        return "Location";
1670    }
1671    
1672    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1673        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1674    }
1675
1676
1677}