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