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>HealthcareService</b> Resource
282 * (administrative.group)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * The details of a healthcare service available at a location.
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/HealthcareService">http://hl7.org/fhir/profiles/HealthcareService</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="HealthcareService", profile="http://hl7.org/fhir/profiles/HealthcareService", id="healthcareservice")
301public class HealthcareService extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>identifier</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>token</b><br>
309         * Path: <b>HealthcareService.identifier</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="identifier", path="HealthcareService.identifier", description="", type="token"  )
313        public static final String SP_IDENTIFIER = "identifier";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>token</b><br>
320         * Path: <b>HealthcareService.identifier</b><br>
321         * </p>
322         */
323        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
324
325        /**
326         * Search parameter constant for <b>servicecategory</b>
327         * <p>
328         * Description: <b>Service Category of the Healthcare Service</b><br>
329         * Type: <b>token</b><br>
330         * Path: <b>HealthcareService.serviceCategory</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="servicecategory", path="HealthcareService.serviceCategory", description="Service Category of the Healthcare Service", type="token"  )
334        public static final String SP_SERVICECATEGORY = "servicecategory";
335
336        /**
337         * <b>Fluent Client</b> search parameter constant for <b>servicecategory</b>
338         * <p>
339         * Description: <b>Service Category of the Healthcare Service</b><br>
340         * Type: <b>token</b><br>
341         * Path: <b>HealthcareService.serviceCategory</b><br>
342         * </p>
343         */
344        public static final TokenClientParam SERVICECATEGORY = new TokenClientParam(SP_SERVICECATEGORY);
345
346        /**
347         * Search parameter constant for <b>servicetype</b>
348         * <p>
349         * Description: <b>The type of service provided by this healthcare service</b><br>
350         * Type: <b>token</b><br>
351         * Path: <b>HealthcareService.serviceType.type</b><br>
352         * </p>
353         */
354        @SearchParamDefinition(name="servicetype", path="HealthcareService.serviceType.type", description="The type of service provided by this healthcare service", type="token"  )
355        public static final String SP_SERVICETYPE = "servicetype";
356
357        /**
358         * <b>Fluent Client</b> search parameter constant for <b>servicetype</b>
359         * <p>
360         * Description: <b>The type of service provided by this healthcare service</b><br>
361         * Type: <b>token</b><br>
362         * Path: <b>HealthcareService.serviceType.type</b><br>
363         * </p>
364         */
365        public static final TokenClientParam SERVICETYPE = new TokenClientParam(SP_SERVICETYPE);
366
367        /**
368         * Search parameter constant for <b>name</b>
369         * <p>
370         * Description: <b>A portion of the Healthcare service name</b><br>
371         * Type: <b>string</b><br>
372         * Path: <b>HealthcareService.serviceName</b><br>
373         * </p>
374         */
375        @SearchParamDefinition(name="name", path="HealthcareService.serviceName", description="A portion of the Healthcare service name", type="string"  )
376        public static final String SP_NAME = "name";
377
378        /**
379         * <b>Fluent Client</b> search parameter constant for <b>name</b>
380         * <p>
381         * Description: <b>A portion of the Healthcare service name</b><br>
382         * Type: <b>string</b><br>
383         * Path: <b>HealthcareService.serviceName</b><br>
384         * </p>
385         */
386        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
387
388        /**
389         * Search parameter constant for <b>location</b>
390         * <p>
391         * Description: <b>The location of the Healthcare Service</b><br>
392         * Type: <b>reference</b><br>
393         * Path: <b>HealthcareService.location</b><br>
394         * </p>
395         */
396        @SearchParamDefinition(name="location", path="HealthcareService.location", description="The location of the Healthcare Service", type="reference"  )
397        public static final String SP_LOCATION = "location";
398
399        /**
400         * <b>Fluent Client</b> search parameter constant for <b>location</b>
401         * <p>
402         * Description: <b>The location of the Healthcare Service</b><br>
403         * Type: <b>reference</b><br>
404         * Path: <b>HealthcareService.location</b><br>
405         * </p>
406         */
407        public static final ReferenceClientParam LOCATION = new ReferenceClientParam(SP_LOCATION);
408
409        /**
410         * Search parameter constant for <b>organization</b>
411         * <p>
412         * Description: <b>The organization that provides this Healthcare Service</b><br>
413         * Type: <b>reference</b><br>
414         * Path: <b>HealthcareService.providedBy</b><br>
415         * </p>
416         */
417        @SearchParamDefinition(name="organization", path="HealthcareService.providedBy", description="The organization that provides this Healthcare Service", type="reference"  )
418        public static final String SP_ORGANIZATION = "organization";
419
420        /**
421         * <b>Fluent Client</b> search parameter constant for <b>organization</b>
422         * <p>
423         * Description: <b>The organization that provides this Healthcare Service</b><br>
424         * Type: <b>reference</b><br>
425         * Path: <b>HealthcareService.providedBy</b><br>
426         * </p>
427         */
428        public static final ReferenceClientParam ORGANIZATION = new ReferenceClientParam(SP_ORGANIZATION);
429
430        /**
431         * Search parameter constant for <b>programname</b>
432         * <p>
433         * Description: <b>One of the Program Names serviced by this HealthcareService</b><br>
434         * Type: <b>string</b><br>
435         * Path: <b>HealthcareService.programName</b><br>
436         * </p>
437         */
438        @SearchParamDefinition(name="programname", path="HealthcareService.programName", description="One of the Program Names serviced by this HealthcareService", type="string"  )
439        public static final String SP_PROGRAMNAME = "programname";
440
441        /**
442         * <b>Fluent Client</b> search parameter constant for <b>programname</b>
443         * <p>
444         * Description: <b>One of the Program Names serviced by this HealthcareService</b><br>
445         * Type: <b>string</b><br>
446         * Path: <b>HealthcareService.programName</b><br>
447         * </p>
448         */
449        public static final StringClientParam PROGRAMNAME = new StringClientParam(SP_PROGRAMNAME);
450
451        /**
452         * Search parameter constant for <b>characteristic</b>
453         * <p>
454         * Description: <b>One of the HealthcareService's characteristics</b><br>
455         * Type: <b>token</b><br>
456         * Path: <b>HealthcareService.characteristic</b><br>
457         * </p>
458         */
459        @SearchParamDefinition(name="characteristic", path="HealthcareService.characteristic", description="One of the HealthcareService's characteristics", type="token"  )
460        public static final String SP_CHARACTERISTIC = "characteristic";
461
462        /**
463         * <b>Fluent Client</b> search parameter constant for <b>characteristic</b>
464         * <p>
465         * Description: <b>One of the HealthcareService's characteristics</b><br>
466         * Type: <b>token</b><br>
467         * Path: <b>HealthcareService.characteristic</b><br>
468         * </p>
469         */
470        public static final TokenClientParam CHARACTERISTIC = new TokenClientParam(SP_CHARACTERISTIC);
471
472
473        /**
474         * Constant for fluent queries to be used to add include statements. Specifies
475         * the path value of "<b>HealthcareService:location</b>".
476         */
477        public static final Include INCLUDE_LOCATION = new Include("HealthcareService:location");
478
479        /**
480         * Constant for fluent queries to be used to add include statements. Specifies
481         * the path value of "<b>HealthcareService:organization</b>".
482         */
483        public static final Include INCLUDE_ORGANIZATION = new Include("HealthcareService:organization");
484
485
486        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
487        @Description(
488                shortDefinition="id",
489                formalDefinition="External identifiers for this item"
490        )
491        private java.util.List<IdentifierDt> myIdentifier;
492        
493        @Child(name="providedBy", order=1, min=0, max=1, summary=true, modifier=false, type={
494                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
495        @Description(
496                shortDefinition="",
497                formalDefinition="The organization that provides this healthcare service"
498        )
499        private ResourceReferenceDt myProvidedBy;
500        
501        @Child(name="serviceCategory", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=true, modifier=false)       
502        @Description(
503                shortDefinition="class",
504                formalDefinition="Identifies the broad category of service being performed or delivered"
505        )
506        private CodeableConceptDt myServiceCategory;
507        
508        @Child(name="serviceType", order=3, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
509        @Description(
510                shortDefinition="",
511                formalDefinition="A specific type of service that may be delivered or performed"
512        )
513        private java.util.List<ServiceType> myServiceType;
514        
515        @Child(name="location", order=4, min=1, max=1, summary=true, modifier=false, type={
516                ca.uhn.fhir.model.dstu2.resource.Location.class })
517        @Description(
518                shortDefinition="where",
519                formalDefinition="The location where this healthcare service may be provided"
520        )
521        private ResourceReferenceDt myLocation;
522        
523        @Child(name="serviceName", type=StringDt.class, order=5, min=0, max=1, summary=true, modifier=false)    
524        @Description(
525                shortDefinition="",
526                formalDefinition="Further description of the service as it would be presented to a consumer while searching"
527        )
528        private StringDt myServiceName;
529        
530        @Child(name="comment", type=StringDt.class, order=6, min=0, max=1, summary=true, modifier=false)        
531        @Description(
532                shortDefinition="",
533                formalDefinition="Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName"
534        )
535        private StringDt myComment;
536        
537        @Child(name="extraDetails", type=StringDt.class, order=7, min=0, max=1, summary=false, modifier=false)  
538        @Description(
539                shortDefinition="",
540                formalDefinition="Extra details about the service that can't be placed in the other fields"
541        )
542        private StringDt myExtraDetails;
543        
544        @Child(name="photo", type=AttachmentDt.class, order=8, min=0, max=1, summary=true, modifier=false)      
545        @Description(
546                shortDefinition="",
547                formalDefinition="If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list"
548        )
549        private AttachmentDt myPhoto;
550        
551        @Child(name="telecom", type=ContactPointDt.class, order=9, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
552        @Description(
553                shortDefinition="",
554                formalDefinition="List of contacts related to this specific healthcare service"
555        )
556        private java.util.List<ContactPointDt> myTelecom;
557        
558        @Child(name="coverageArea", order=10, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
559                ca.uhn.fhir.model.dstu2.resource.Location.class })
560        @Description(
561                shortDefinition="",
562                formalDefinition="The location(s) that this service is available to (not where the service is provided)"
563        )
564        private java.util.List<ResourceReferenceDt> myCoverageArea;
565        
566        @Child(name="serviceProvisionCode", type=CodeableConceptDt.class, order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
567        @Description(
568                shortDefinition="",
569                formalDefinition="The code(s) that detail the conditions under which the healthcare service is available/offered"
570        )
571        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/service-provision-conditions")
572        private java.util.List<BoundCodeableConceptDt<ServiceProvisionConditionsEnum>> myServiceProvisionCode;
573        
574        @Child(name="eligibility", type=CodeableConceptDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
575        @Description(
576                shortDefinition="",
577                formalDefinition="Does this service have specific eligibility requirements that need to be met in order to use the service?"
578        )
579        private CodeableConceptDt myEligibility;
580        
581        @Child(name="eligibilityNote", type=StringDt.class, order=13, min=0, max=1, summary=false, modifier=false)      
582        @Description(
583                shortDefinition="",
584                formalDefinition="Describes the eligibility conditions for the service"
585        )
586        private StringDt myEligibilityNote;
587        
588        @Child(name="programName", type=StringDt.class, order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
589        @Description(
590                shortDefinition="",
591                formalDefinition="Program Names that can be used to categorize the service"
592        )
593        private java.util.List<StringDt> myProgramName;
594        
595        @Child(name="characteristic", type=CodeableConceptDt.class, order=15, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
596        @Description(
597                shortDefinition="",
598                formalDefinition="Collection of characteristics (attributes)"
599        )
600        private java.util.List<CodeableConceptDt> myCharacteristic;
601        
602        @Child(name="referralMethod", type=CodeableConceptDt.class, order=16, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
603        @Description(
604                shortDefinition="",
605                formalDefinition="Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required"
606        )
607        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/service-referral-method")
608        private java.util.List<BoundCodeableConceptDt<ReferralMethodEnum>> myReferralMethod;
609        
610        @Child(name="publicKey", type=StringDt.class, order=17, min=0, max=1, summary=false, modifier=false)    
611        @Description(
612                shortDefinition="",
613                formalDefinition="The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available"
614        )
615        private StringDt myPublicKey;
616        
617        @Child(name="appointmentRequired", type=BooleanDt.class, order=18, min=0, max=1, summary=false, modifier=false) 
618        @Description(
619                shortDefinition="",
620                formalDefinition="Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service."
621        )
622        private BooleanDt myAppointmentRequired;
623        
624        @Child(name="availableTime", order=19, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
625        @Description(
626                shortDefinition="",
627                formalDefinition="A collection of times that the Service Site is available"
628        )
629        private java.util.List<AvailableTime> myAvailableTime;
630        
631        @Child(name="notAvailable", order=20, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
632        @Description(
633                shortDefinition="",
634                formalDefinition="The HealthcareService is not available during this period of time due to the provided reason"
635        )
636        private java.util.List<NotAvailable> myNotAvailable;
637        
638        @Child(name="availabilityExceptions", type=StringDt.class, order=21, min=0, max=1, summary=false, modifier=false)       
639        @Description(
640                shortDefinition="",
641                formalDefinition="A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times"
642        )
643        private StringDt myAvailabilityExceptions;
644        
645
646        @Override
647        public boolean isEmpty() {
648                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myProvidedBy,  myServiceCategory,  myServiceType,  myLocation,  myServiceName,  myComment,  myExtraDetails,  myPhoto,  myTelecom,  myCoverageArea,  myServiceProvisionCode,  myEligibility,  myEligibilityNote,  myProgramName,  myCharacteristic,  myReferralMethod,  myPublicKey,  myAppointmentRequired,  myAvailableTime,  myNotAvailable,  myAvailabilityExceptions);
649        }
650        
651        @Override
652        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
653                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myProvidedBy, myServiceCategory, myServiceType, myLocation, myServiceName, myComment, myExtraDetails, myPhoto, myTelecom, myCoverageArea, myServiceProvisionCode, myEligibility, myEligibilityNote, myProgramName, myCharacteristic, myReferralMethod, myPublicKey, myAppointmentRequired, myAvailableTime, myNotAvailable, myAvailabilityExceptions);
654        }
655
656        /**
657         * Gets the value(s) for <b>identifier</b> (id).
658         * creating it if it does
659         * not exist. Will not return <code>null</code>.
660         *
661     * <p>
662     * <b>Definition:</b>
663     * External identifiers for this item
664     * </p> 
665         */
666        public java.util.List<IdentifierDt> getIdentifier() {  
667                if (myIdentifier == null) {
668                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
669                }
670                return myIdentifier;
671        }
672
673        /**
674         * Sets the value(s) for <b>identifier</b> (id)
675         *
676     * <p>
677     * <b>Definition:</b>
678     * External identifiers for this item
679     * </p> 
680         */
681        public HealthcareService setIdentifier(java.util.List<IdentifierDt> theValue) {
682                myIdentifier = theValue;
683                return this;
684        }
685        
686        
687
688        /**
689         * Adds and returns a new value for <b>identifier</b> (id)
690         *
691     * <p>
692     * <b>Definition:</b>
693     * External identifiers for this item
694     * </p> 
695         */
696        public IdentifierDt addIdentifier() {
697                IdentifierDt newType = new IdentifierDt();
698                getIdentifier().add(newType);
699                return newType; 
700        }
701
702        /**
703         * Adds a given new value for <b>identifier</b> (id)
704         *
705         * <p>
706         * <b>Definition:</b>
707         * External identifiers for this item
708         * </p>
709         * @param theValue The identifier to add (must not be <code>null</code>)
710         */
711        public HealthcareService addIdentifier(IdentifierDt theValue) {
712                if (theValue == null) {
713                        throw new NullPointerException("theValue must not be null");
714                }
715                getIdentifier().add(theValue);
716                return this;
717        }
718
719        /**
720         * Gets the first repetition for <b>identifier</b> (id),
721         * creating it if it does not already exist.
722         *
723     * <p>
724     * <b>Definition:</b>
725     * External identifiers for this item
726     * </p> 
727         */
728        public IdentifierDt getIdentifierFirstRep() {
729                if (getIdentifier().isEmpty()) {
730                        return addIdentifier();
731                }
732                return getIdentifier().get(0); 
733        }
734  
735        /**
736         * Gets the value(s) for <b>providedBy</b> ().
737         * creating it if it does
738         * not exist. Will not return <code>null</code>.
739         *
740     * <p>
741     * <b>Definition:</b>
742     * The organization that provides this healthcare service
743     * </p> 
744         */
745        public ResourceReferenceDt getProvidedBy() {  
746                if (myProvidedBy == null) {
747                        myProvidedBy = new ResourceReferenceDt();
748                }
749                return myProvidedBy;
750        }
751
752        /**
753         * Sets the value(s) for <b>providedBy</b> ()
754         *
755     * <p>
756     * <b>Definition:</b>
757     * The organization that provides this healthcare service
758     * </p> 
759         */
760        public HealthcareService setProvidedBy(ResourceReferenceDt theValue) {
761                myProvidedBy = theValue;
762                return this;
763        }
764        
765        
766
767  
768        /**
769         * Gets the value(s) for <b>serviceCategory</b> (class).
770         * creating it if it does
771         * not exist. Will not return <code>null</code>.
772         *
773     * <p>
774     * <b>Definition:</b>
775     * Identifies the broad category of service being performed or delivered
776     * </p> 
777         */
778        public CodeableConceptDt getServiceCategory() {  
779                if (myServiceCategory == null) {
780                        myServiceCategory = new CodeableConceptDt();
781                }
782                return myServiceCategory;
783        }
784
785        /**
786         * Sets the value(s) for <b>serviceCategory</b> (class)
787         *
788     * <p>
789     * <b>Definition:</b>
790     * Identifies the broad category of service being performed or delivered
791     * </p> 
792         */
793        public HealthcareService setServiceCategory(CodeableConceptDt theValue) {
794                myServiceCategory = theValue;
795                return this;
796        }
797        
798        
799
800  
801        /**
802         * Gets the value(s) for <b>serviceType</b> ().
803         * creating it if it does
804         * not exist. Will not return <code>null</code>.
805         *
806     * <p>
807     * <b>Definition:</b>
808     * A specific type of service that may be delivered or performed
809     * </p> 
810         */
811        public java.util.List<ServiceType> getServiceType() {  
812                if (myServiceType == null) {
813                        myServiceType = new java.util.ArrayList<ServiceType>();
814                }
815                return myServiceType;
816        }
817
818        /**
819         * Sets the value(s) for <b>serviceType</b> ()
820         *
821     * <p>
822     * <b>Definition:</b>
823     * A specific type of service that may be delivered or performed
824     * </p> 
825         */
826        public HealthcareService setServiceType(java.util.List<ServiceType> theValue) {
827                myServiceType = theValue;
828                return this;
829        }
830        
831        
832
833        /**
834         * Adds and returns a new value for <b>serviceType</b> ()
835         *
836     * <p>
837     * <b>Definition:</b>
838     * A specific type of service that may be delivered or performed
839     * </p> 
840         */
841        public ServiceType addServiceType() {
842                ServiceType newType = new ServiceType();
843                getServiceType().add(newType);
844                return newType; 
845        }
846
847        /**
848         * Adds a given new value for <b>serviceType</b> ()
849         *
850         * <p>
851         * <b>Definition:</b>
852         * A specific type of service that may be delivered or performed
853         * </p>
854         * @param theValue The serviceType to add (must not be <code>null</code>)
855         */
856        public HealthcareService addServiceType(ServiceType theValue) {
857                if (theValue == null) {
858                        throw new NullPointerException("theValue must not be null");
859                }
860                getServiceType().add(theValue);
861                return this;
862        }
863
864        /**
865         * Gets the first repetition for <b>serviceType</b> (),
866         * creating it if it does not already exist.
867         *
868     * <p>
869     * <b>Definition:</b>
870     * A specific type of service that may be delivered or performed
871     * </p> 
872         */
873        public ServiceType getServiceTypeFirstRep() {
874                if (getServiceType().isEmpty()) {
875                        return addServiceType();
876                }
877                return getServiceType().get(0); 
878        }
879  
880        /**
881         * Gets the value(s) for <b>location</b> (where).
882         * creating it if it does
883         * not exist. Will not return <code>null</code>.
884         *
885     * <p>
886     * <b>Definition:</b>
887     * The location where this healthcare service may be provided
888     * </p> 
889         */
890        public ResourceReferenceDt getLocation() {  
891                if (myLocation == null) {
892                        myLocation = new ResourceReferenceDt();
893                }
894                return myLocation;
895        }
896
897        /**
898         * Sets the value(s) for <b>location</b> (where)
899         *
900     * <p>
901     * <b>Definition:</b>
902     * The location where this healthcare service may be provided
903     * </p> 
904         */
905        public HealthcareService setLocation(ResourceReferenceDt theValue) {
906                myLocation = theValue;
907                return this;
908        }
909        
910        
911
912  
913        /**
914         * Gets the value(s) for <b>serviceName</b> ().
915         * creating it if it does
916         * not exist. Will not return <code>null</code>.
917         *
918     * <p>
919     * <b>Definition:</b>
920     * Further description of the service as it would be presented to a consumer while searching
921     * </p> 
922         */
923        public StringDt getServiceNameElement() {  
924                if (myServiceName == null) {
925                        myServiceName = new StringDt();
926                }
927                return myServiceName;
928        }
929
930        
931        /**
932         * Gets the value(s) for <b>serviceName</b> ().
933         * creating it if it does
934         * not exist. This method may return <code>null</code>.
935         *
936     * <p>
937     * <b>Definition:</b>
938     * Further description of the service as it would be presented to a consumer while searching
939     * </p> 
940         */
941        public String getServiceName() {  
942                return getServiceNameElement().getValue();
943        }
944
945        /**
946         * Sets the value(s) for <b>serviceName</b> ()
947         *
948     * <p>
949     * <b>Definition:</b>
950     * Further description of the service as it would be presented to a consumer while searching
951     * </p> 
952         */
953        public HealthcareService setServiceName(StringDt theValue) {
954                myServiceName = theValue;
955                return this;
956        }
957        
958        
959
960        /**
961         * Sets the value for <b>serviceName</b> ()
962         *
963     * <p>
964     * <b>Definition:</b>
965     * Further description of the service as it would be presented to a consumer while searching
966     * </p> 
967         */
968        public HealthcareService setServiceName( String theString) {
969                myServiceName = new StringDt(theString); 
970                return this; 
971        }
972
973 
974        /**
975         * Gets the value(s) for <b>comment</b> ().
976         * creating it if it does
977         * not exist. Will not return <code>null</code>.
978         *
979     * <p>
980     * <b>Definition:</b>
981     * Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName
982     * </p> 
983         */
984        public StringDt getCommentElement() {  
985                if (myComment == null) {
986                        myComment = new StringDt();
987                }
988                return myComment;
989        }
990
991        
992        /**
993         * Gets the value(s) for <b>comment</b> ().
994         * creating it if it does
995         * not exist. This method may return <code>null</code>.
996         *
997     * <p>
998     * <b>Definition:</b>
999     * Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName
1000     * </p> 
1001         */
1002        public String getComment() {  
1003                return getCommentElement().getValue();
1004        }
1005
1006        /**
1007         * Sets the value(s) for <b>comment</b> ()
1008         *
1009     * <p>
1010     * <b>Definition:</b>
1011     * Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName
1012     * </p> 
1013         */
1014        public HealthcareService setComment(StringDt theValue) {
1015                myComment = theValue;
1016                return this;
1017        }
1018        
1019        
1020
1021        /**
1022         * Sets the value for <b>comment</b> ()
1023         *
1024     * <p>
1025     * <b>Definition:</b>
1026     * Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName
1027     * </p> 
1028         */
1029        public HealthcareService setComment( String theString) {
1030                myComment = new StringDt(theString); 
1031                return this; 
1032        }
1033
1034 
1035        /**
1036         * Gets the value(s) for <b>extraDetails</b> ().
1037         * creating it if it does
1038         * not exist. Will not return <code>null</code>.
1039         *
1040     * <p>
1041     * <b>Definition:</b>
1042     * Extra details about the service that can't be placed in the other fields
1043     * </p> 
1044         */
1045        public StringDt getExtraDetailsElement() {  
1046                if (myExtraDetails == null) {
1047                        myExtraDetails = new StringDt();
1048                }
1049                return myExtraDetails;
1050        }
1051
1052        
1053        /**
1054         * Gets the value(s) for <b>extraDetails</b> ().
1055         * creating it if it does
1056         * not exist. This method may return <code>null</code>.
1057         *
1058     * <p>
1059     * <b>Definition:</b>
1060     * Extra details about the service that can't be placed in the other fields
1061     * </p> 
1062         */
1063        public String getExtraDetails() {  
1064                return getExtraDetailsElement().getValue();
1065        }
1066
1067        /**
1068         * Sets the value(s) for <b>extraDetails</b> ()
1069         *
1070     * <p>
1071     * <b>Definition:</b>
1072     * Extra details about the service that can't be placed in the other fields
1073     * </p> 
1074         */
1075        public HealthcareService setExtraDetails(StringDt theValue) {
1076                myExtraDetails = theValue;
1077                return this;
1078        }
1079        
1080        
1081
1082        /**
1083         * Sets the value for <b>extraDetails</b> ()
1084         *
1085     * <p>
1086     * <b>Definition:</b>
1087     * Extra details about the service that can't be placed in the other fields
1088     * </p> 
1089         */
1090        public HealthcareService setExtraDetails( String theString) {
1091                myExtraDetails = new StringDt(theString); 
1092                return this; 
1093        }
1094
1095 
1096        /**
1097         * Gets the value(s) for <b>photo</b> ().
1098         * creating it if it does
1099         * not exist. Will not return <code>null</code>.
1100         *
1101     * <p>
1102     * <b>Definition:</b>
1103     * If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list
1104     * </p> 
1105         */
1106        public AttachmentDt getPhoto() {  
1107                if (myPhoto == null) {
1108                        myPhoto = new AttachmentDt();
1109                }
1110                return myPhoto;
1111        }
1112
1113        /**
1114         * Sets the value(s) for <b>photo</b> ()
1115         *
1116     * <p>
1117     * <b>Definition:</b>
1118     * If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list
1119     * </p> 
1120         */
1121        public HealthcareService setPhoto(AttachmentDt theValue) {
1122                myPhoto = theValue;
1123                return this;
1124        }
1125        
1126        
1127
1128  
1129        /**
1130         * Gets the value(s) for <b>telecom</b> ().
1131         * creating it if it does
1132         * not exist. Will not return <code>null</code>.
1133         *
1134     * <p>
1135     * <b>Definition:</b>
1136     * List of contacts related to this specific healthcare service
1137     * </p> 
1138         */
1139        public java.util.List<ContactPointDt> getTelecom() {  
1140                if (myTelecom == null) {
1141                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1142                }
1143                return myTelecom;
1144        }
1145
1146        /**
1147         * Sets the value(s) for <b>telecom</b> ()
1148         *
1149     * <p>
1150     * <b>Definition:</b>
1151     * List of contacts related to this specific healthcare service
1152     * </p> 
1153         */
1154        public HealthcareService setTelecom(java.util.List<ContactPointDt> theValue) {
1155                myTelecom = theValue;
1156                return this;
1157        }
1158        
1159        
1160
1161        /**
1162         * Adds and returns a new value for <b>telecom</b> ()
1163         *
1164     * <p>
1165     * <b>Definition:</b>
1166     * List of contacts related to this specific healthcare service
1167     * </p> 
1168         */
1169        public ContactPointDt addTelecom() {
1170                ContactPointDt newType = new ContactPointDt();
1171                getTelecom().add(newType);
1172                return newType; 
1173        }
1174
1175        /**
1176         * Adds a given new value for <b>telecom</b> ()
1177         *
1178         * <p>
1179         * <b>Definition:</b>
1180         * List of contacts related to this specific healthcare service
1181         * </p>
1182         * @param theValue The telecom to add (must not be <code>null</code>)
1183         */
1184        public HealthcareService addTelecom(ContactPointDt theValue) {
1185                if (theValue == null) {
1186                        throw new NullPointerException("theValue must not be null");
1187                }
1188                getTelecom().add(theValue);
1189                return this;
1190        }
1191
1192        /**
1193         * Gets the first repetition for <b>telecom</b> (),
1194         * creating it if it does not already exist.
1195         *
1196     * <p>
1197     * <b>Definition:</b>
1198     * List of contacts related to this specific healthcare service
1199     * </p> 
1200         */
1201        public ContactPointDt getTelecomFirstRep() {
1202                if (getTelecom().isEmpty()) {
1203                        return addTelecom();
1204                }
1205                return getTelecom().get(0); 
1206        }
1207  
1208        /**
1209         * Gets the value(s) for <b>coverageArea</b> ().
1210         * creating it if it does
1211         * not exist. Will not return <code>null</code>.
1212         *
1213     * <p>
1214     * <b>Definition:</b>
1215     * The location(s) that this service is available to (not where the service is provided)
1216     * </p> 
1217         */
1218        public java.util.List<ResourceReferenceDt> getCoverageArea() {  
1219                if (myCoverageArea == null) {
1220                        myCoverageArea = new java.util.ArrayList<ResourceReferenceDt>();
1221                }
1222                return myCoverageArea;
1223        }
1224
1225        /**
1226         * Sets the value(s) for <b>coverageArea</b> ()
1227         *
1228     * <p>
1229     * <b>Definition:</b>
1230     * The location(s) that this service is available to (not where the service is provided)
1231     * </p> 
1232         */
1233        public HealthcareService setCoverageArea(java.util.List<ResourceReferenceDt> theValue) {
1234                myCoverageArea = theValue;
1235                return this;
1236        }
1237        
1238        
1239
1240        /**
1241         * Adds and returns a new value for <b>coverageArea</b> ()
1242         *
1243     * <p>
1244     * <b>Definition:</b>
1245     * The location(s) that this service is available to (not where the service is provided)
1246     * </p> 
1247         */
1248        public ResourceReferenceDt addCoverageArea() {
1249                ResourceReferenceDt newType = new ResourceReferenceDt();
1250                getCoverageArea().add(newType);
1251                return newType; 
1252        }
1253  
1254        /**
1255         * Gets the value(s) for <b>serviceProvisionCode</b> ().
1256         * creating it if it does
1257         * not exist. Will not return <code>null</code>.
1258         *
1259     * <p>
1260     * <b>Definition:</b>
1261     * The code(s) that detail the conditions under which the healthcare service is available/offered
1262     * </p> 
1263         */
1264        public java.util.List<BoundCodeableConceptDt<ServiceProvisionConditionsEnum>> getServiceProvisionCode() {  
1265                if (myServiceProvisionCode == null) {
1266                        myServiceProvisionCode = new java.util.ArrayList<BoundCodeableConceptDt<ServiceProvisionConditionsEnum>>();
1267                }
1268                return myServiceProvisionCode;
1269        }
1270
1271        /**
1272         * Sets the value(s) for <b>serviceProvisionCode</b> ()
1273         *
1274     * <p>
1275     * <b>Definition:</b>
1276     * The code(s) that detail the conditions under which the healthcare service is available/offered
1277     * </p> 
1278         */
1279        public HealthcareService setServiceProvisionCode(java.util.List<BoundCodeableConceptDt<ServiceProvisionConditionsEnum>> theValue) {
1280                myServiceProvisionCode = theValue;
1281                return this;
1282        }
1283        
1284        
1285
1286        /**
1287         * Add a value for <b>serviceProvisionCode</b> () using an enumerated type. This
1288         * is intended as a convenience method for situations where the FHIR defined ValueSets are mandatory
1289         * or contain the desirable codes. If you wish to use codes other than those which are built-in, 
1290         * you may also use the {@link #addServiceProvisionCode()} method.
1291         *
1292     * <p>
1293     * <b>Definition:</b>
1294     * The code(s) that detail the conditions under which the healthcare service is available/offered
1295     * </p> 
1296         */
1297        public BoundCodeableConceptDt<ServiceProvisionConditionsEnum> addServiceProvisionCode(ServiceProvisionConditionsEnum theValue) {
1298                BoundCodeableConceptDt<ServiceProvisionConditionsEnum> retVal = new BoundCodeableConceptDt<ServiceProvisionConditionsEnum>(ServiceProvisionConditionsEnum.VALUESET_BINDER, theValue);
1299                getServiceProvisionCode().add(retVal);
1300                return retVal;
1301        }
1302
1303        /**
1304         * Gets the first repetition for <b>serviceProvisionCode</b> (),
1305         * creating it if it does not already exist.
1306         *
1307     * <p>
1308     * <b>Definition:</b>
1309     * The code(s) that detail the conditions under which the healthcare service is available/offered
1310     * </p> 
1311         */
1312        public BoundCodeableConceptDt<ServiceProvisionConditionsEnum> getServiceProvisionCodeFirstRep() {
1313                if (getServiceProvisionCode().size() == 0) {
1314                        addServiceProvisionCode();
1315                }
1316                return getServiceProvisionCode().get(0);
1317        }
1318
1319        /**
1320         * Add a value for <b>serviceProvisionCode</b> ()
1321         *
1322     * <p>
1323     * <b>Definition:</b>
1324     * The code(s) that detail the conditions under which the healthcare service is available/offered
1325     * </p> 
1326         */
1327        public BoundCodeableConceptDt<ServiceProvisionConditionsEnum> addServiceProvisionCode() {
1328                BoundCodeableConceptDt<ServiceProvisionConditionsEnum> retVal = new BoundCodeableConceptDt<ServiceProvisionConditionsEnum>(ServiceProvisionConditionsEnum.VALUESET_BINDER);
1329                getServiceProvisionCode().add(retVal);
1330                return retVal;
1331        }
1332
1333        /**
1334         * Sets the value(s), and clears any existing value(s) for <b>serviceProvisionCode</b> ()
1335         *
1336     * <p>
1337     * <b>Definition:</b>
1338     * The code(s) that detail the conditions under which the healthcare service is available/offered
1339     * </p> 
1340         */
1341        public HealthcareService setServiceProvisionCode(ServiceProvisionConditionsEnum theValue) {
1342                getServiceProvisionCode().clear();
1343                addServiceProvisionCode(theValue);
1344                return this;
1345        }
1346
1347  
1348        /**
1349         * Gets the value(s) for <b>eligibility</b> ().
1350         * creating it if it does
1351         * not exist. Will not return <code>null</code>.
1352         *
1353     * <p>
1354     * <b>Definition:</b>
1355     * Does this service have specific eligibility requirements that need to be met in order to use the service?
1356     * </p> 
1357         */
1358        public CodeableConceptDt getEligibility() {  
1359                if (myEligibility == null) {
1360                        myEligibility = new CodeableConceptDt();
1361                }
1362                return myEligibility;
1363        }
1364
1365        /**
1366         * Sets the value(s) for <b>eligibility</b> ()
1367         *
1368     * <p>
1369     * <b>Definition:</b>
1370     * Does this service have specific eligibility requirements that need to be met in order to use the service?
1371     * </p> 
1372         */
1373        public HealthcareService setEligibility(CodeableConceptDt theValue) {
1374                myEligibility = theValue;
1375                return this;
1376        }
1377        
1378        
1379
1380  
1381        /**
1382         * Gets the value(s) for <b>eligibilityNote</b> ().
1383         * creating it if it does
1384         * not exist. Will not return <code>null</code>.
1385         *
1386     * <p>
1387     * <b>Definition:</b>
1388     * Describes the eligibility conditions for the service
1389     * </p> 
1390         */
1391        public StringDt getEligibilityNoteElement() {  
1392                if (myEligibilityNote == null) {
1393                        myEligibilityNote = new StringDt();
1394                }
1395                return myEligibilityNote;
1396        }
1397
1398        
1399        /**
1400         * Gets the value(s) for <b>eligibilityNote</b> ().
1401         * creating it if it does
1402         * not exist. This method may return <code>null</code>.
1403         *
1404     * <p>
1405     * <b>Definition:</b>
1406     * Describes the eligibility conditions for the service
1407     * </p> 
1408         */
1409        public String getEligibilityNote() {  
1410                return getEligibilityNoteElement().getValue();
1411        }
1412
1413        /**
1414         * Sets the value(s) for <b>eligibilityNote</b> ()
1415         *
1416     * <p>
1417     * <b>Definition:</b>
1418     * Describes the eligibility conditions for the service
1419     * </p> 
1420         */
1421        public HealthcareService setEligibilityNote(StringDt theValue) {
1422                myEligibilityNote = theValue;
1423                return this;
1424        }
1425        
1426        
1427
1428        /**
1429         * Sets the value for <b>eligibilityNote</b> ()
1430         *
1431     * <p>
1432     * <b>Definition:</b>
1433     * Describes the eligibility conditions for the service
1434     * </p> 
1435         */
1436        public HealthcareService setEligibilityNote( String theString) {
1437                myEligibilityNote = new StringDt(theString); 
1438                return this; 
1439        }
1440
1441 
1442        /**
1443         * Gets the value(s) for <b>programName</b> ().
1444         * creating it if it does
1445         * not exist. Will not return <code>null</code>.
1446         *
1447     * <p>
1448     * <b>Definition:</b>
1449     * Program Names that can be used to categorize the service
1450     * </p> 
1451         */
1452        public java.util.List<StringDt> getProgramName() {  
1453                if (myProgramName == null) {
1454                        myProgramName = new java.util.ArrayList<StringDt>();
1455                }
1456                return myProgramName;
1457        }
1458
1459        /**
1460         * Sets the value(s) for <b>programName</b> ()
1461         *
1462     * <p>
1463     * <b>Definition:</b>
1464     * Program Names that can be used to categorize the service
1465     * </p> 
1466         */
1467        public HealthcareService setProgramName(java.util.List<StringDt> theValue) {
1468                myProgramName = theValue;
1469                return this;
1470        }
1471        
1472        
1473
1474        /**
1475         * Adds and returns a new value for <b>programName</b> ()
1476         *
1477     * <p>
1478     * <b>Definition:</b>
1479     * Program Names that can be used to categorize the service
1480     * </p> 
1481         */
1482        public StringDt addProgramName() {
1483                StringDt newType = new StringDt();
1484                getProgramName().add(newType);
1485                return newType; 
1486        }
1487
1488        /**
1489         * Adds a given new value for <b>programName</b> ()
1490         *
1491         * <p>
1492         * <b>Definition:</b>
1493         * Program Names that can be used to categorize the service
1494         * </p>
1495         * @param theValue The programName to add (must not be <code>null</code>)
1496         */
1497        public HealthcareService addProgramName(StringDt theValue) {
1498                if (theValue == null) {
1499                        throw new NullPointerException("theValue must not be null");
1500                }
1501                getProgramName().add(theValue);
1502                return this;
1503        }
1504
1505        /**
1506         * Gets the first repetition for <b>programName</b> (),
1507         * creating it if it does not already exist.
1508         *
1509     * <p>
1510     * <b>Definition:</b>
1511     * Program Names that can be used to categorize the service
1512     * </p> 
1513         */
1514        public StringDt getProgramNameFirstRep() {
1515                if (getProgramName().isEmpty()) {
1516                        return addProgramName();
1517                }
1518                return getProgramName().get(0); 
1519        }
1520        /**
1521         * Adds a new value for <b>programName</b> ()
1522         *
1523     * <p>
1524     * <b>Definition:</b>
1525     * Program Names that can be used to categorize the service
1526     * </p> 
1527     *
1528     * @return Returns a reference to this object, to allow for simple chaining.
1529         */
1530        public HealthcareService addProgramName( String theString) {
1531                if (myProgramName == null) {
1532                        myProgramName = new java.util.ArrayList<StringDt>();
1533                }
1534                myProgramName.add(new StringDt(theString));
1535                return this; 
1536        }
1537
1538 
1539        /**
1540         * Gets the value(s) for <b>characteristic</b> ().
1541         * creating it if it does
1542         * not exist. Will not return <code>null</code>.
1543         *
1544     * <p>
1545     * <b>Definition:</b>
1546     * Collection of characteristics (attributes)
1547     * </p> 
1548         */
1549        public java.util.List<CodeableConceptDt> getCharacteristic() {  
1550                if (myCharacteristic == null) {
1551                        myCharacteristic = new java.util.ArrayList<CodeableConceptDt>();
1552                }
1553                return myCharacteristic;
1554        }
1555
1556        /**
1557         * Sets the value(s) for <b>characteristic</b> ()
1558         *
1559     * <p>
1560     * <b>Definition:</b>
1561     * Collection of characteristics (attributes)
1562     * </p> 
1563         */
1564        public HealthcareService setCharacteristic(java.util.List<CodeableConceptDt> theValue) {
1565                myCharacteristic = theValue;
1566                return this;
1567        }
1568        
1569        
1570
1571        /**
1572         * Adds and returns a new value for <b>characteristic</b> ()
1573         *
1574     * <p>
1575     * <b>Definition:</b>
1576     * Collection of characteristics (attributes)
1577     * </p> 
1578         */
1579        public CodeableConceptDt addCharacteristic() {
1580                CodeableConceptDt newType = new CodeableConceptDt();
1581                getCharacteristic().add(newType);
1582                return newType; 
1583        }
1584
1585        /**
1586         * Adds a given new value for <b>characteristic</b> ()
1587         *
1588         * <p>
1589         * <b>Definition:</b>
1590         * Collection of characteristics (attributes)
1591         * </p>
1592         * @param theValue The characteristic to add (must not be <code>null</code>)
1593         */
1594        public HealthcareService addCharacteristic(CodeableConceptDt theValue) {
1595                if (theValue == null) {
1596                        throw new NullPointerException("theValue must not be null");
1597                }
1598                getCharacteristic().add(theValue);
1599                return this;
1600        }
1601
1602        /**
1603         * Gets the first repetition for <b>characteristic</b> (),
1604         * creating it if it does not already exist.
1605         *
1606     * <p>
1607     * <b>Definition:</b>
1608     * Collection of characteristics (attributes)
1609     * </p> 
1610         */
1611        public CodeableConceptDt getCharacteristicFirstRep() {
1612                if (getCharacteristic().isEmpty()) {
1613                        return addCharacteristic();
1614                }
1615                return getCharacteristic().get(0); 
1616        }
1617  
1618        /**
1619         * Gets the value(s) for <b>referralMethod</b> ().
1620         * creating it if it does
1621         * not exist. Will not return <code>null</code>.
1622         *
1623     * <p>
1624     * <b>Definition:</b>
1625     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1626     * </p> 
1627         */
1628        public java.util.List<BoundCodeableConceptDt<ReferralMethodEnum>> getReferralMethod() {  
1629                if (myReferralMethod == null) {
1630                        myReferralMethod = new java.util.ArrayList<BoundCodeableConceptDt<ReferralMethodEnum>>();
1631                }
1632                return myReferralMethod;
1633        }
1634
1635        /**
1636         * Sets the value(s) for <b>referralMethod</b> ()
1637         *
1638     * <p>
1639     * <b>Definition:</b>
1640     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1641     * </p> 
1642         */
1643        public HealthcareService setReferralMethod(java.util.List<BoundCodeableConceptDt<ReferralMethodEnum>> theValue) {
1644                myReferralMethod = theValue;
1645                return this;
1646        }
1647        
1648        
1649
1650        /**
1651         * Add a value for <b>referralMethod</b> () using an enumerated type. This
1652         * is intended as a convenience method for situations where the FHIR defined ValueSets are mandatory
1653         * or contain the desirable codes. If you wish to use codes other than those which are built-in, 
1654         * you may also use the {@link #addReferralMethod()} method.
1655         *
1656     * <p>
1657     * <b>Definition:</b>
1658     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1659     * </p> 
1660         */
1661        public BoundCodeableConceptDt<ReferralMethodEnum> addReferralMethod(ReferralMethodEnum theValue) {
1662                BoundCodeableConceptDt<ReferralMethodEnum> retVal = new BoundCodeableConceptDt<ReferralMethodEnum>(ReferralMethodEnum.VALUESET_BINDER, theValue);
1663                getReferralMethod().add(retVal);
1664                return retVal;
1665        }
1666
1667        /**
1668         * Gets the first repetition for <b>referralMethod</b> (),
1669         * creating it if it does not already exist.
1670         *
1671     * <p>
1672     * <b>Definition:</b>
1673     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1674     * </p> 
1675         */
1676        public BoundCodeableConceptDt<ReferralMethodEnum> getReferralMethodFirstRep() {
1677                if (getReferralMethod().size() == 0) {
1678                        addReferralMethod();
1679                }
1680                return getReferralMethod().get(0);
1681        }
1682
1683        /**
1684         * Add a value for <b>referralMethod</b> ()
1685         *
1686     * <p>
1687     * <b>Definition:</b>
1688     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1689     * </p> 
1690         */
1691        public BoundCodeableConceptDt<ReferralMethodEnum> addReferralMethod() {
1692                BoundCodeableConceptDt<ReferralMethodEnum> retVal = new BoundCodeableConceptDt<ReferralMethodEnum>(ReferralMethodEnum.VALUESET_BINDER);
1693                getReferralMethod().add(retVal);
1694                return retVal;
1695        }
1696
1697        /**
1698         * Sets the value(s), and clears any existing value(s) for <b>referralMethod</b> ()
1699         *
1700     * <p>
1701     * <b>Definition:</b>
1702     * Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required
1703     * </p> 
1704         */
1705        public HealthcareService setReferralMethod(ReferralMethodEnum theValue) {
1706                getReferralMethod().clear();
1707                addReferralMethod(theValue);
1708                return this;
1709        }
1710
1711  
1712        /**
1713         * Gets the value(s) for <b>publicKey</b> ().
1714         * creating it if it does
1715         * not exist. Will not return <code>null</code>.
1716         *
1717     * <p>
1718     * <b>Definition:</b>
1719     * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available
1720     * </p> 
1721         */
1722        public StringDt getPublicKeyElement() {  
1723                if (myPublicKey == null) {
1724                        myPublicKey = new StringDt();
1725                }
1726                return myPublicKey;
1727        }
1728
1729        
1730        /**
1731         * Gets the value(s) for <b>publicKey</b> ().
1732         * creating it if it does
1733         * not exist. This method may return <code>null</code>.
1734         *
1735     * <p>
1736     * <b>Definition:</b>
1737     * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available
1738     * </p> 
1739         */
1740        public String getPublicKey() {  
1741                return getPublicKeyElement().getValue();
1742        }
1743
1744        /**
1745         * Sets the value(s) for <b>publicKey</b> ()
1746         *
1747     * <p>
1748     * <b>Definition:</b>
1749     * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available
1750     * </p> 
1751         */
1752        public HealthcareService setPublicKey(StringDt theValue) {
1753                myPublicKey = theValue;
1754                return this;
1755        }
1756        
1757        
1758
1759        /**
1760         * Sets the value for <b>publicKey</b> ()
1761         *
1762     * <p>
1763     * <b>Definition:</b>
1764     * The public part of the 'keys' allocated to an Organization by an accredited body to support secure exchange of data over the internet. To be provided by the Organization, where available
1765     * </p> 
1766         */
1767        public HealthcareService setPublicKey( String theString) {
1768                myPublicKey = new StringDt(theString); 
1769                return this; 
1770        }
1771
1772 
1773        /**
1774         * Gets the value(s) for <b>appointmentRequired</b> ().
1775         * creating it if it does
1776         * not exist. Will not return <code>null</code>.
1777         *
1778     * <p>
1779     * <b>Definition:</b>
1780     * Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.
1781     * </p> 
1782         */
1783        public BooleanDt getAppointmentRequiredElement() {  
1784                if (myAppointmentRequired == null) {
1785                        myAppointmentRequired = new BooleanDt();
1786                }
1787                return myAppointmentRequired;
1788        }
1789
1790        
1791        /**
1792         * Gets the value(s) for <b>appointmentRequired</b> ().
1793         * creating it if it does
1794         * not exist. This method may return <code>null</code>.
1795         *
1796     * <p>
1797     * <b>Definition:</b>
1798     * Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.
1799     * </p> 
1800         */
1801        public Boolean getAppointmentRequired() {  
1802                return getAppointmentRequiredElement().getValue();
1803        }
1804
1805        /**
1806         * Sets the value(s) for <b>appointmentRequired</b> ()
1807         *
1808     * <p>
1809     * <b>Definition:</b>
1810     * Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.
1811     * </p> 
1812         */
1813        public HealthcareService setAppointmentRequired(BooleanDt theValue) {
1814                myAppointmentRequired = theValue;
1815                return this;
1816        }
1817        
1818        
1819
1820        /**
1821         * Sets the value for <b>appointmentRequired</b> ()
1822         *
1823     * <p>
1824     * <b>Definition:</b>
1825     * Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service.
1826     * </p> 
1827         */
1828        public HealthcareService setAppointmentRequired( boolean theBoolean) {
1829                myAppointmentRequired = new BooleanDt(theBoolean); 
1830                return this; 
1831        }
1832
1833 
1834        /**
1835         * Gets the value(s) for <b>availableTime</b> ().
1836         * creating it if it does
1837         * not exist. Will not return <code>null</code>.
1838         *
1839     * <p>
1840     * <b>Definition:</b>
1841     * A collection of times that the Service Site is available
1842     * </p> 
1843         */
1844        public java.util.List<AvailableTime> getAvailableTime() {  
1845                if (myAvailableTime == null) {
1846                        myAvailableTime = new java.util.ArrayList<AvailableTime>();
1847                }
1848                return myAvailableTime;
1849        }
1850
1851        /**
1852         * Sets the value(s) for <b>availableTime</b> ()
1853         *
1854     * <p>
1855     * <b>Definition:</b>
1856     * A collection of times that the Service Site is available
1857     * </p> 
1858         */
1859        public HealthcareService setAvailableTime(java.util.List<AvailableTime> theValue) {
1860                myAvailableTime = theValue;
1861                return this;
1862        }
1863        
1864        
1865
1866        /**
1867         * Adds and returns a new value for <b>availableTime</b> ()
1868         *
1869     * <p>
1870     * <b>Definition:</b>
1871     * A collection of times that the Service Site is available
1872     * </p> 
1873         */
1874        public AvailableTime addAvailableTime() {
1875                AvailableTime newType = new AvailableTime();
1876                getAvailableTime().add(newType);
1877                return newType; 
1878        }
1879
1880        /**
1881         * Adds a given new value for <b>availableTime</b> ()
1882         *
1883         * <p>
1884         * <b>Definition:</b>
1885         * A collection of times that the Service Site is available
1886         * </p>
1887         * @param theValue The availableTime to add (must not be <code>null</code>)
1888         */
1889        public HealthcareService addAvailableTime(AvailableTime theValue) {
1890                if (theValue == null) {
1891                        throw new NullPointerException("theValue must not be null");
1892                }
1893                getAvailableTime().add(theValue);
1894                return this;
1895        }
1896
1897        /**
1898         * Gets the first repetition for <b>availableTime</b> (),
1899         * creating it if it does not already exist.
1900         *
1901     * <p>
1902     * <b>Definition:</b>
1903     * A collection of times that the Service Site is available
1904     * </p> 
1905         */
1906        public AvailableTime getAvailableTimeFirstRep() {
1907                if (getAvailableTime().isEmpty()) {
1908                        return addAvailableTime();
1909                }
1910                return getAvailableTime().get(0); 
1911        }
1912  
1913        /**
1914         * Gets the value(s) for <b>notAvailable</b> ().
1915         * creating it if it does
1916         * not exist. Will not return <code>null</code>.
1917         *
1918     * <p>
1919     * <b>Definition:</b>
1920     * The HealthcareService is not available during this period of time due to the provided reason
1921     * </p> 
1922         */
1923        public java.util.List<NotAvailable> getNotAvailable() {  
1924                if (myNotAvailable == null) {
1925                        myNotAvailable = new java.util.ArrayList<NotAvailable>();
1926                }
1927                return myNotAvailable;
1928        }
1929
1930        /**
1931         * Sets the value(s) for <b>notAvailable</b> ()
1932         *
1933     * <p>
1934     * <b>Definition:</b>
1935     * The HealthcareService is not available during this period of time due to the provided reason
1936     * </p> 
1937         */
1938        public HealthcareService setNotAvailable(java.util.List<NotAvailable> theValue) {
1939                myNotAvailable = theValue;
1940                return this;
1941        }
1942        
1943        
1944
1945        /**
1946         * Adds and returns a new value for <b>notAvailable</b> ()
1947         *
1948     * <p>
1949     * <b>Definition:</b>
1950     * The HealthcareService is not available during this period of time due to the provided reason
1951     * </p> 
1952         */
1953        public NotAvailable addNotAvailable() {
1954                NotAvailable newType = new NotAvailable();
1955                getNotAvailable().add(newType);
1956                return newType; 
1957        }
1958
1959        /**
1960         * Adds a given new value for <b>notAvailable</b> ()
1961         *
1962         * <p>
1963         * <b>Definition:</b>
1964         * The HealthcareService is not available during this period of time due to the provided reason
1965         * </p>
1966         * @param theValue The notAvailable to add (must not be <code>null</code>)
1967         */
1968        public HealthcareService addNotAvailable(NotAvailable theValue) {
1969                if (theValue == null) {
1970                        throw new NullPointerException("theValue must not be null");
1971                }
1972                getNotAvailable().add(theValue);
1973                return this;
1974        }
1975
1976        /**
1977         * Gets the first repetition for <b>notAvailable</b> (),
1978         * creating it if it does not already exist.
1979         *
1980     * <p>
1981     * <b>Definition:</b>
1982     * The HealthcareService is not available during this period of time due to the provided reason
1983     * </p> 
1984         */
1985        public NotAvailable getNotAvailableFirstRep() {
1986                if (getNotAvailable().isEmpty()) {
1987                        return addNotAvailable();
1988                }
1989                return getNotAvailable().get(0); 
1990        }
1991  
1992        /**
1993         * Gets the value(s) for <b>availabilityExceptions</b> ().
1994         * creating it if it does
1995         * not exist. Will not return <code>null</code>.
1996         *
1997     * <p>
1998     * <b>Definition:</b>
1999     * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times
2000     * </p> 
2001         */
2002        public StringDt getAvailabilityExceptionsElement() {  
2003                if (myAvailabilityExceptions == null) {
2004                        myAvailabilityExceptions = new StringDt();
2005                }
2006                return myAvailabilityExceptions;
2007        }
2008
2009        
2010        /**
2011         * Gets the value(s) for <b>availabilityExceptions</b> ().
2012         * creating it if it does
2013         * not exist. This method may return <code>null</code>.
2014         *
2015     * <p>
2016     * <b>Definition:</b>
2017     * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times
2018     * </p> 
2019         */
2020        public String getAvailabilityExceptions() {  
2021                return getAvailabilityExceptionsElement().getValue();
2022        }
2023
2024        /**
2025         * Sets the value(s) for <b>availabilityExceptions</b> ()
2026         *
2027     * <p>
2028     * <b>Definition:</b>
2029     * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times
2030     * </p> 
2031         */
2032        public HealthcareService setAvailabilityExceptions(StringDt theValue) {
2033                myAvailabilityExceptions = theValue;
2034                return this;
2035        }
2036        
2037        
2038
2039        /**
2040         * Sets the value for <b>availabilityExceptions</b> ()
2041         *
2042     * <p>
2043     * <b>Definition:</b>
2044     * A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times
2045     * </p> 
2046         */
2047        public HealthcareService setAvailabilityExceptions( String theString) {
2048                myAvailabilityExceptions = new StringDt(theString); 
2049                return this; 
2050        }
2051
2052 
2053        /**
2054         * Block class for child element: <b>HealthcareService.serviceType</b> ()
2055         *
2056     * <p>
2057     * <b>Definition:</b>
2058     * A specific type of service that may be delivered or performed
2059     * </p> 
2060         */
2061        @Block()        
2062        public static class ServiceType 
2063            extends  BaseIdentifiableElement        implements IResourceBlock {
2064        
2065        @Child(name="type", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=true, modifier=false)  
2066        @Description(
2067                shortDefinition="",
2068                formalDefinition="The specific type of service being delivered or performed"
2069        )
2070        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/c80-practice-codes")
2071        private CodeableConceptDt myType;
2072        
2073        @Child(name="specialty", type=CodeableConceptDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
2074        @Description(
2075                shortDefinition="",
2076                formalDefinition="Collection of specialties handled by the service site. This is more of a medical term"
2077        )
2078        private java.util.List<CodeableConceptDt> mySpecialty;
2079        
2080
2081        @Override
2082        public boolean isEmpty() {
2083                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  mySpecialty);
2084        }
2085        
2086        @Override
2087        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2088                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, mySpecialty);
2089        }
2090
2091        /**
2092         * Gets the value(s) for <b>type</b> ().
2093         * creating it if it does
2094         * not exist. Will not return <code>null</code>.
2095         *
2096     * <p>
2097     * <b>Definition:</b>
2098     * The specific type of service being delivered or performed
2099     * </p> 
2100         */
2101        public CodeableConceptDt getType() {  
2102                if (myType == null) {
2103                        myType = new CodeableConceptDt();
2104                }
2105                return myType;
2106        }
2107
2108        /**
2109         * Sets the value(s) for <b>type</b> ()
2110         *
2111     * <p>
2112     * <b>Definition:</b>
2113     * The specific type of service being delivered or performed
2114     * </p> 
2115         */
2116        public ServiceType setType(CodeableConceptDt theValue) {
2117                myType = theValue;
2118                return this;
2119        }
2120        
2121        
2122
2123  
2124        /**
2125         * Gets the value(s) for <b>specialty</b> ().
2126         * creating it if it does
2127         * not exist. Will not return <code>null</code>.
2128         *
2129     * <p>
2130     * <b>Definition:</b>
2131     * Collection of specialties handled by the service site. This is more of a medical term
2132     * </p> 
2133         */
2134        public java.util.List<CodeableConceptDt> getSpecialty() {  
2135                if (mySpecialty == null) {
2136                        mySpecialty = new java.util.ArrayList<CodeableConceptDt>();
2137                }
2138                return mySpecialty;
2139        }
2140
2141        /**
2142         * Sets the value(s) for <b>specialty</b> ()
2143         *
2144     * <p>
2145     * <b>Definition:</b>
2146     * Collection of specialties handled by the service site. This is more of a medical term
2147     * </p> 
2148         */
2149        public ServiceType setSpecialty(java.util.List<CodeableConceptDt> theValue) {
2150                mySpecialty = theValue;
2151                return this;
2152        }
2153        
2154        
2155
2156        /**
2157         * Adds and returns a new value for <b>specialty</b> ()
2158         *
2159     * <p>
2160     * <b>Definition:</b>
2161     * Collection of specialties handled by the service site. This is more of a medical term
2162     * </p> 
2163         */
2164        public CodeableConceptDt addSpecialty() {
2165                CodeableConceptDt newType = new CodeableConceptDt();
2166                getSpecialty().add(newType);
2167                return newType; 
2168        }
2169
2170        /**
2171         * Adds a given new value for <b>specialty</b> ()
2172         *
2173         * <p>
2174         * <b>Definition:</b>
2175         * Collection of specialties handled by the service site. This is more of a medical term
2176         * </p>
2177         * @param theValue The specialty to add (must not be <code>null</code>)
2178         */
2179        public ServiceType addSpecialty(CodeableConceptDt theValue) {
2180                if (theValue == null) {
2181                        throw new NullPointerException("theValue must not be null");
2182                }
2183                getSpecialty().add(theValue);
2184                return this;
2185        }
2186
2187        /**
2188         * Gets the first repetition for <b>specialty</b> (),
2189         * creating it if it does not already exist.
2190         *
2191     * <p>
2192     * <b>Definition:</b>
2193     * Collection of specialties handled by the service site. This is more of a medical term
2194     * </p> 
2195         */
2196        public CodeableConceptDt getSpecialtyFirstRep() {
2197                if (getSpecialty().isEmpty()) {
2198                        return addSpecialty();
2199                }
2200                return getSpecialty().get(0); 
2201        }
2202  
2203
2204
2205        }
2206
2207
2208        /**
2209         * Block class for child element: <b>HealthcareService.availableTime</b> ()
2210         *
2211     * <p>
2212     * <b>Definition:</b>
2213     * A collection of times that the Service Site is available
2214     * </p> 
2215         */
2216        @Block()        
2217        public static class AvailableTime 
2218            extends  BaseIdentifiableElement        implements IResourceBlock {
2219        
2220        @Child(name="daysOfWeek", type=CodeDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
2221        @Description(
2222                shortDefinition="",
2223                formalDefinition="Indicates which days of the week are available between the start and end Times"
2224        )
2225        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/days-of-week")
2226        private java.util.List<BoundCodeDt<DaysOfWeekEnum>> myDaysOfWeek;
2227        
2228        @Child(name="allDay", type=BooleanDt.class, order=1, min=0, max=1, summary=false, modifier=false)       
2229        @Description(
2230                shortDefinition="",
2231                formalDefinition="Is this always available? (hence times are irrelevant) e.g. 24 hour service"
2232        )
2233        private BooleanDt myAllDay;
2234        
2235        @Child(name="availableStartTime", type=TimeDt.class, order=2, min=0, max=1, summary=false, modifier=false)      
2236        @Description(
2237                shortDefinition="",
2238                formalDefinition="The opening time of day. Note: If the AllDay flag is set, then this time is ignored"
2239        )
2240        private TimeDt myAvailableStartTime;
2241        
2242        @Child(name="availableEndTime", type=TimeDt.class, order=3, min=0, max=1, summary=false, modifier=false)        
2243        @Description(
2244                shortDefinition="",
2245                formalDefinition="The closing time of day. Note: If the AllDay flag is set, then this time is ignored"
2246        )
2247        private TimeDt myAvailableEndTime;
2248        
2249
2250        @Override
2251        public boolean isEmpty() {
2252                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myDaysOfWeek,  myAllDay,  myAvailableStartTime,  myAvailableEndTime);
2253        }
2254        
2255        @Override
2256        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2257                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myDaysOfWeek, myAllDay, myAvailableStartTime, myAvailableEndTime);
2258        }
2259
2260        /**
2261         * Gets the value(s) for <b>daysOfWeek</b> ().
2262         * creating it if it does
2263         * not exist. Will not return <code>null</code>.
2264         *
2265     * <p>
2266     * <b>Definition:</b>
2267     * Indicates which days of the week are available between the start and end Times
2268     * </p> 
2269         */
2270        public java.util.List<BoundCodeDt<DaysOfWeekEnum>> getDaysOfWeek() {  
2271                if (myDaysOfWeek == null) {
2272                        myDaysOfWeek = new java.util.ArrayList<BoundCodeDt<DaysOfWeekEnum>>();
2273                }
2274                return myDaysOfWeek;
2275        }
2276
2277        /**
2278         * Sets the value(s) for <b>daysOfWeek</b> ()
2279         *
2280     * <p>
2281     * <b>Definition:</b>
2282     * Indicates which days of the week are available between the start and end Times
2283     * </p> 
2284         */
2285        public AvailableTime setDaysOfWeek(java.util.List<BoundCodeDt<DaysOfWeekEnum>> theValue) {
2286                myDaysOfWeek = theValue;
2287                return this;
2288        }
2289        
2290        
2291
2292        /**
2293         * Add a value for <b>daysOfWeek</b> () using an enumerated type. This
2294         * is intended as a convenience method for situations where the FHIR defined ValueSets are mandatory
2295         * or contain the desirable codes. If you wish to use codes other than those which are built-in, 
2296         * you may also use the {@link #addDaysOfWeek()} method.
2297         *
2298     * <p>
2299     * <b>Definition:</b>
2300     * Indicates which days of the week are available between the start and end Times
2301     * </p> 
2302         */
2303        public BoundCodeDt<DaysOfWeekEnum> addDaysOfWeek(DaysOfWeekEnum theValue) {
2304                BoundCodeDt<DaysOfWeekEnum> retVal = new BoundCodeDt<DaysOfWeekEnum>(DaysOfWeekEnum.VALUESET_BINDER, theValue);
2305                getDaysOfWeek().add(retVal);
2306                return retVal;
2307        }
2308
2309        /**
2310         * Gets the first repetition for <b>daysOfWeek</b> (),
2311         * creating it if it does not already exist.
2312         *
2313     * <p>
2314     * <b>Definition:</b>
2315     * Indicates which days of the week are available between the start and end Times
2316     * </p> 
2317         */
2318        public BoundCodeDt<DaysOfWeekEnum> getDaysOfWeekFirstRep() {
2319                if (getDaysOfWeek().size() == 0) {
2320                        addDaysOfWeek();
2321                }
2322                return getDaysOfWeek().get(0);
2323        }
2324
2325        /**
2326         * Add a value for <b>daysOfWeek</b> ()
2327         *
2328     * <p>
2329     * <b>Definition:</b>
2330     * Indicates which days of the week are available between the start and end Times
2331     * </p> 
2332         */
2333        public BoundCodeDt<DaysOfWeekEnum> addDaysOfWeek() {
2334                BoundCodeDt<DaysOfWeekEnum> retVal = new BoundCodeDt<DaysOfWeekEnum>(DaysOfWeekEnum.VALUESET_BINDER);
2335                getDaysOfWeek().add(retVal);
2336                return retVal;
2337        }
2338
2339        /**
2340         * Sets the value(s), and clears any existing value(s) for <b>daysOfWeek</b> ()
2341         *
2342     * <p>
2343     * <b>Definition:</b>
2344     * Indicates which days of the week are available between the start and end Times
2345     * </p> 
2346         */
2347        public AvailableTime setDaysOfWeek(DaysOfWeekEnum theValue) {
2348                getDaysOfWeek().clear();
2349                addDaysOfWeek(theValue);
2350                return this;
2351        }
2352
2353  
2354        /**
2355         * Gets the value(s) for <b>allDay</b> ().
2356         * creating it if it does
2357         * not exist. Will not return <code>null</code>.
2358         *
2359     * <p>
2360     * <b>Definition:</b>
2361     * Is this always available? (hence times are irrelevant) e.g. 24 hour service
2362     * </p> 
2363         */
2364        public BooleanDt getAllDayElement() {  
2365                if (myAllDay == null) {
2366                        myAllDay = new BooleanDt();
2367                }
2368                return myAllDay;
2369        }
2370
2371        
2372        /**
2373         * Gets the value(s) for <b>allDay</b> ().
2374         * creating it if it does
2375         * not exist. This method may return <code>null</code>.
2376         *
2377     * <p>
2378     * <b>Definition:</b>
2379     * Is this always available? (hence times are irrelevant) e.g. 24 hour service
2380     * </p> 
2381         */
2382        public Boolean getAllDay() {  
2383                return getAllDayElement().getValue();
2384        }
2385
2386        /**
2387         * Sets the value(s) for <b>allDay</b> ()
2388         *
2389     * <p>
2390     * <b>Definition:</b>
2391     * Is this always available? (hence times are irrelevant) e.g. 24 hour service
2392     * </p> 
2393         */
2394        public AvailableTime setAllDay(BooleanDt theValue) {
2395                myAllDay = theValue;
2396                return this;
2397        }
2398        
2399        
2400
2401        /**
2402         * Sets the value for <b>allDay</b> ()
2403         *
2404     * <p>
2405     * <b>Definition:</b>
2406     * Is this always available? (hence times are irrelevant) e.g. 24 hour service
2407     * </p> 
2408         */
2409        public AvailableTime setAllDay( boolean theBoolean) {
2410                myAllDay = new BooleanDt(theBoolean); 
2411                return this; 
2412        }
2413
2414 
2415        /**
2416         * Gets the value(s) for <b>availableStartTime</b> ().
2417         * creating it if it does
2418         * not exist. Will not return <code>null</code>.
2419         *
2420     * <p>
2421     * <b>Definition:</b>
2422     * The opening time of day. Note: If the AllDay flag is set, then this time is ignored
2423     * </p> 
2424         */
2425        public TimeDt getAvailableStartTimeElement() {  
2426                if (myAvailableStartTime == null) {
2427                        myAvailableStartTime = new TimeDt();
2428                }
2429                return myAvailableStartTime;
2430        }
2431
2432        
2433        /**
2434         * Gets the value(s) for <b>availableStartTime</b> ().
2435         * creating it if it does
2436         * not exist. This method may return <code>null</code>.
2437         *
2438     * <p>
2439     * <b>Definition:</b>
2440     * The opening time of day. Note: If the AllDay flag is set, then this time is ignored
2441     * </p> 
2442         */
2443        public String getAvailableStartTime() {  
2444                return getAvailableStartTimeElement().getValue();
2445        }
2446
2447        /**
2448         * Sets the value(s) for <b>availableStartTime</b> ()
2449         *
2450     * <p>
2451     * <b>Definition:</b>
2452     * The opening time of day. Note: If the AllDay flag is set, then this time is ignored
2453     * </p> 
2454         */
2455        public AvailableTime setAvailableStartTime(TimeDt theValue) {
2456                myAvailableStartTime = theValue;
2457                return this;
2458        }
2459        
2460        
2461
2462        /**
2463         * Sets the value for <b>availableStartTime</b> ()
2464         *
2465     * <p>
2466     * <b>Definition:</b>
2467     * The opening time of day. Note: If the AllDay flag is set, then this time is ignored
2468     * </p> 
2469         */
2470        public AvailableTime setAvailableStartTime( String theString) {
2471                myAvailableStartTime = new TimeDt(theString); 
2472                return this; 
2473        }
2474
2475 
2476        /**
2477         * Gets the value(s) for <b>availableEndTime</b> ().
2478         * creating it if it does
2479         * not exist. Will not return <code>null</code>.
2480         *
2481     * <p>
2482     * <b>Definition:</b>
2483     * The closing time of day. Note: If the AllDay flag is set, then this time is ignored
2484     * </p> 
2485         */
2486        public TimeDt getAvailableEndTimeElement() {  
2487                if (myAvailableEndTime == null) {
2488                        myAvailableEndTime = new TimeDt();
2489                }
2490                return myAvailableEndTime;
2491        }
2492
2493        
2494        /**
2495         * Gets the value(s) for <b>availableEndTime</b> ().
2496         * creating it if it does
2497         * not exist. This method may return <code>null</code>.
2498         *
2499     * <p>
2500     * <b>Definition:</b>
2501     * The closing time of day. Note: If the AllDay flag is set, then this time is ignored
2502     * </p> 
2503         */
2504        public String getAvailableEndTime() {  
2505                return getAvailableEndTimeElement().getValue();
2506        }
2507
2508        /**
2509         * Sets the value(s) for <b>availableEndTime</b> ()
2510         *
2511     * <p>
2512     * <b>Definition:</b>
2513     * The closing time of day. Note: If the AllDay flag is set, then this time is ignored
2514     * </p> 
2515         */
2516        public AvailableTime setAvailableEndTime(TimeDt theValue) {
2517                myAvailableEndTime = theValue;
2518                return this;
2519        }
2520        
2521        
2522
2523        /**
2524         * Sets the value for <b>availableEndTime</b> ()
2525         *
2526     * <p>
2527     * <b>Definition:</b>
2528     * The closing time of day. Note: If the AllDay flag is set, then this time is ignored
2529     * </p> 
2530         */
2531        public AvailableTime setAvailableEndTime( String theString) {
2532                myAvailableEndTime = new TimeDt(theString); 
2533                return this; 
2534        }
2535
2536 
2537
2538
2539        }
2540
2541
2542        /**
2543         * Block class for child element: <b>HealthcareService.notAvailable</b> ()
2544         *
2545     * <p>
2546     * <b>Definition:</b>
2547     * The HealthcareService is not available during this period of time due to the provided reason
2548     * </p> 
2549         */
2550        @Block()        
2551        public static class NotAvailable 
2552            extends  BaseIdentifiableElement        implements IResourceBlock {
2553        
2554        @Child(name="description", type=StringDt.class, order=0, min=1, max=1, summary=false, modifier=false)   
2555        @Description(
2556                shortDefinition="",
2557                formalDefinition="The reason that can be presented to the user as to why this time is not available"
2558        )
2559        private StringDt myDescription;
2560        
2561        @Child(name="during", type=PeriodDt.class, order=1, min=0, max=1, summary=false, modifier=false)        
2562        @Description(
2563                shortDefinition="",
2564                formalDefinition="Service is not available (seasonally or for a public holiday) from this date"
2565        )
2566        private PeriodDt myDuring;
2567        
2568
2569        @Override
2570        public boolean isEmpty() {
2571                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myDescription,  myDuring);
2572        }
2573        
2574        @Override
2575        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2576                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myDescription, myDuring);
2577        }
2578
2579        /**
2580         * Gets the value(s) for <b>description</b> ().
2581         * creating it if it does
2582         * not exist. Will not return <code>null</code>.
2583         *
2584     * <p>
2585     * <b>Definition:</b>
2586     * The reason that can be presented to the user as to why this time is not available
2587     * </p> 
2588         */
2589        public StringDt getDescriptionElement() {  
2590                if (myDescription == null) {
2591                        myDescription = new StringDt();
2592                }
2593                return myDescription;
2594        }
2595
2596        
2597        /**
2598         * Gets the value(s) for <b>description</b> ().
2599         * creating it if it does
2600         * not exist. This method may return <code>null</code>.
2601         *
2602     * <p>
2603     * <b>Definition:</b>
2604     * The reason that can be presented to the user as to why this time is not available
2605     * </p> 
2606         */
2607        public String getDescription() {  
2608                return getDescriptionElement().getValue();
2609        }
2610
2611        /**
2612         * Sets the value(s) for <b>description</b> ()
2613         *
2614     * <p>
2615     * <b>Definition:</b>
2616     * The reason that can be presented to the user as to why this time is not available
2617     * </p> 
2618         */
2619        public NotAvailable setDescription(StringDt theValue) {
2620                myDescription = theValue;
2621                return this;
2622        }
2623        
2624        
2625
2626        /**
2627         * Sets the value for <b>description</b> ()
2628         *
2629     * <p>
2630     * <b>Definition:</b>
2631     * The reason that can be presented to the user as to why this time is not available
2632     * </p> 
2633         */
2634        public NotAvailable setDescription( String theString) {
2635                myDescription = new StringDt(theString); 
2636                return this; 
2637        }
2638
2639 
2640        /**
2641         * Gets the value(s) for <b>during</b> ().
2642         * creating it if it does
2643         * not exist. Will not return <code>null</code>.
2644         *
2645     * <p>
2646     * <b>Definition:</b>
2647     * Service is not available (seasonally or for a public holiday) from this date
2648     * </p> 
2649         */
2650        public PeriodDt getDuring() {  
2651                if (myDuring == null) {
2652                        myDuring = new PeriodDt();
2653                }
2654                return myDuring;
2655        }
2656
2657        /**
2658         * Sets the value(s) for <b>during</b> ()
2659         *
2660     * <p>
2661     * <b>Definition:</b>
2662     * Service is not available (seasonally or for a public holiday) from this date
2663     * </p> 
2664         */
2665        public NotAvailable setDuring(PeriodDt theValue) {
2666                myDuring = theValue;
2667                return this;
2668        }
2669        
2670        
2671
2672  
2673
2674
2675        }
2676
2677
2678
2679
2680    @Override
2681    public String getResourceName() {
2682        return "HealthcareService";
2683    }
2684    
2685    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2686        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2687    }
2688
2689
2690}