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>NamingSystem</b> Resource
282 * (conformance.terminology)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc.  Represents a \"System\" used within the Identifier and Coding data types.
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/NamingSystem">http://hl7.org/fhir/profiles/NamingSystem</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="NamingSystem", profile="http://hl7.org/fhir/profiles/NamingSystem", id="namingsystem")
301public class NamingSystem extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>type</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>token</b><br>
309         * Path: <b>NamingSystem.type</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="type", path="NamingSystem.type", description="", type="token"  )
313        public static final String SP_TYPE = "type";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>type</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>token</b><br>
320         * Path: <b>NamingSystem.type</b><br>
321         * </p>
322         */
323        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
324
325        /**
326         * Search parameter constant for <b>name</b>
327         * <p>
328         * Description: <b></b><br>
329         * Type: <b>string</b><br>
330         * Path: <b>NamingSystem.name</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="name", path="NamingSystem.name", description="", type="string"  )
334        public static final String SP_NAME = "name";
335
336        /**
337         * <b>Fluent Client</b> search parameter constant for <b>name</b>
338         * <p>
339         * Description: <b></b><br>
340         * Type: <b>string</b><br>
341         * Path: <b>NamingSystem.name</b><br>
342         * </p>
343         */
344        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
345
346        /**
347         * Search parameter constant for <b>date</b>
348         * <p>
349         * Description: <b></b><br>
350         * Type: <b>date</b><br>
351         * Path: <b>NamingSystem.date</b><br>
352         * </p>
353         */
354        @SearchParamDefinition(name="date", path="NamingSystem.date", description="", type="date"  )
355        public static final String SP_DATE = "date";
356
357        /**
358         * <b>Fluent Client</b> search parameter constant for <b>date</b>
359         * <p>
360         * Description: <b></b><br>
361         * Type: <b>date</b><br>
362         * Path: <b>NamingSystem.date</b><br>
363         * </p>
364         */
365        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
366
367        /**
368         * Search parameter constant for <b>status</b>
369         * <p>
370         * Description: <b></b><br>
371         * Type: <b>token</b><br>
372         * Path: <b>NamingSystem.status</b><br>
373         * </p>
374         */
375        @SearchParamDefinition(name="status", path="NamingSystem.status", description="", type="token"  )
376        public static final String SP_STATUS = "status";
377
378        /**
379         * <b>Fluent Client</b> search parameter constant for <b>status</b>
380         * <p>
381         * Description: <b></b><br>
382         * Type: <b>token</b><br>
383         * Path: <b>NamingSystem.status</b><br>
384         * </p>
385         */
386        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
387
388        /**
389         * Search parameter constant for <b>kind</b>
390         * <p>
391         * Description: <b></b><br>
392         * Type: <b>token</b><br>
393         * Path: <b>NamingSystem.kind</b><br>
394         * </p>
395         */
396        @SearchParamDefinition(name="kind", path="NamingSystem.kind", description="", type="token"  )
397        public static final String SP_KIND = "kind";
398
399        /**
400         * <b>Fluent Client</b> search parameter constant for <b>kind</b>
401         * <p>
402         * Description: <b></b><br>
403         * Type: <b>token</b><br>
404         * Path: <b>NamingSystem.kind</b><br>
405         * </p>
406         */
407        public static final TokenClientParam KIND = new TokenClientParam(SP_KIND);
408
409        /**
410         * Search parameter constant for <b>responsible</b>
411         * <p>
412         * Description: <b></b><br>
413         * Type: <b>string</b><br>
414         * Path: <b>NamingSystem.responsible</b><br>
415         * </p>
416         */
417        @SearchParamDefinition(name="responsible", path="NamingSystem.responsible", description="", type="string"  )
418        public static final String SP_RESPONSIBLE = "responsible";
419
420        /**
421         * <b>Fluent Client</b> search parameter constant for <b>responsible</b>
422         * <p>
423         * Description: <b></b><br>
424         * Type: <b>string</b><br>
425         * Path: <b>NamingSystem.responsible</b><br>
426         * </p>
427         */
428        public static final StringClientParam RESPONSIBLE = new StringClientParam(SP_RESPONSIBLE);
429
430        /**
431         * Search parameter constant for <b>id-type</b>
432         * <p>
433         * Description: <b></b><br>
434         * Type: <b>token</b><br>
435         * Path: <b>NamingSystem.uniqueId.type</b><br>
436         * </p>
437         */
438        @SearchParamDefinition(name="id-type", path="NamingSystem.uniqueId.type", description="", type="token"  )
439        public static final String SP_ID_TYPE = "id-type";
440
441        /**
442         * <b>Fluent Client</b> search parameter constant for <b>id-type</b>
443         * <p>
444         * Description: <b></b><br>
445         * Type: <b>token</b><br>
446         * Path: <b>NamingSystem.uniqueId.type</b><br>
447         * </p>
448         */
449        public static final TokenClientParam ID_TYPE = new TokenClientParam(SP_ID_TYPE);
450
451        /**
452         * Search parameter constant for <b>value</b>
453         * <p>
454         * Description: <b></b><br>
455         * Type: <b>string</b><br>
456         * Path: <b>NamingSystem.uniqueId.value</b><br>
457         * </p>
458         */
459        @SearchParamDefinition(name="value", path="NamingSystem.uniqueId.value", description="", type="string"  )
460        public static final String SP_VALUE = "value";
461
462        /**
463         * <b>Fluent Client</b> search parameter constant for <b>value</b>
464         * <p>
465         * Description: <b></b><br>
466         * Type: <b>string</b><br>
467         * Path: <b>NamingSystem.uniqueId.value</b><br>
468         * </p>
469         */
470        public static final StringClientParam VALUE = new StringClientParam(SP_VALUE);
471
472        /**
473         * Search parameter constant for <b>period</b>
474         * <p>
475         * Description: <b></b><br>
476         * Type: <b>date</b><br>
477         * Path: <b>NamingSystem.uniqueId.period</b><br>
478         * </p>
479         */
480        @SearchParamDefinition(name="period", path="NamingSystem.uniqueId.period", description="", type="date"  )
481        public static final String SP_PERIOD = "period";
482
483        /**
484         * <b>Fluent Client</b> search parameter constant for <b>period</b>
485         * <p>
486         * Description: <b></b><br>
487         * Type: <b>date</b><br>
488         * Path: <b>NamingSystem.uniqueId.period</b><br>
489         * </p>
490         */
491        public static final DateClientParam PERIOD = new DateClientParam(SP_PERIOD);
492
493        /**
494         * Search parameter constant for <b>publisher</b>
495         * <p>
496         * Description: <b></b><br>
497         * Type: <b>string</b><br>
498         * Path: <b>NamingSystem.publisher</b><br>
499         * </p>
500         */
501        @SearchParamDefinition(name="publisher", path="NamingSystem.publisher", description="", type="string"  )
502        public static final String SP_PUBLISHER = "publisher";
503
504        /**
505         * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
506         * <p>
507         * Description: <b></b><br>
508         * Type: <b>string</b><br>
509         * Path: <b>NamingSystem.publisher</b><br>
510         * </p>
511         */
512        public static final StringClientParam PUBLISHER = new StringClientParam(SP_PUBLISHER);
513
514        /**
515         * Search parameter constant for <b>contact</b>
516         * <p>
517         * Description: <b></b><br>
518         * Type: <b>string</b><br>
519         * Path: <b>NamingSystem.contact.name</b><br>
520         * </p>
521         */
522        @SearchParamDefinition(name="contact", path="NamingSystem.contact.name", description="", type="string"  )
523        public static final String SP_CONTACT = "contact";
524
525        /**
526         * <b>Fluent Client</b> search parameter constant for <b>contact</b>
527         * <p>
528         * Description: <b></b><br>
529         * Type: <b>string</b><br>
530         * Path: <b>NamingSystem.contact.name</b><br>
531         * </p>
532         */
533        public static final StringClientParam CONTACT = new StringClientParam(SP_CONTACT);
534
535        /**
536         * Search parameter constant for <b>telecom</b>
537         * <p>
538         * Description: <b></b><br>
539         * Type: <b>token</b><br>
540         * Path: <b>NamingSystem.contact.telecom</b><br>
541         * </p>
542         */
543        @SearchParamDefinition(name="telecom", path="NamingSystem.contact.telecom", description="", type="token"  )
544        public static final String SP_TELECOM = "telecom";
545
546        /**
547         * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
548         * <p>
549         * Description: <b></b><br>
550         * Type: <b>token</b><br>
551         * Path: <b>NamingSystem.contact.telecom</b><br>
552         * </p>
553         */
554        public static final TokenClientParam TELECOM = new TokenClientParam(SP_TELECOM);
555
556        /**
557         * Search parameter constant for <b>replaced-by</b>
558         * <p>
559         * Description: <b></b><br>
560         * Type: <b>reference</b><br>
561         * Path: <b>NamingSystem.replacedBy</b><br>
562         * </p>
563         */
564        @SearchParamDefinition(name="replaced-by", path="NamingSystem.replacedBy", description="", type="reference"  )
565        public static final String SP_REPLACED_BY = "replaced-by";
566
567        /**
568         * <b>Fluent Client</b> search parameter constant for <b>replaced-by</b>
569         * <p>
570         * Description: <b></b><br>
571         * Type: <b>reference</b><br>
572         * Path: <b>NamingSystem.replacedBy</b><br>
573         * </p>
574         */
575        public static final ReferenceClientParam REPLACED_BY = new ReferenceClientParam(SP_REPLACED_BY);
576
577        /**
578         * Search parameter constant for <b>context</b>
579         * <p>
580         * Description: <b></b><br>
581         * Type: <b>token</b><br>
582         * Path: <b>NamingSystem.useContext</b><br>
583         * </p>
584         */
585        @SearchParamDefinition(name="context", path="NamingSystem.useContext", description="", type="token"  )
586        public static final String SP_CONTEXT = "context";
587
588        /**
589         * <b>Fluent Client</b> search parameter constant for <b>context</b>
590         * <p>
591         * Description: <b></b><br>
592         * Type: <b>token</b><br>
593         * Path: <b>NamingSystem.useContext</b><br>
594         * </p>
595         */
596        public static final TokenClientParam CONTEXT = new TokenClientParam(SP_CONTEXT);
597
598
599        /**
600         * Constant for fluent queries to be used to add include statements. Specifies
601         * the path value of "<b>NamingSystem:replaced-by</b>".
602         */
603        public static final Include INCLUDE_REPLACED_BY = new Include("NamingSystem:replaced-by");
604
605
606        @Child(name="name", type=StringDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
607        @Description(
608                shortDefinition="",
609                formalDefinition="The descriptive name of this particular identifier type or code system"
610        )
611        private StringDt myName;
612        
613        @Child(name="status", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=true)   
614        @Description(
615                shortDefinition="status",
616                formalDefinition="Indicates whether the naming system is \"ready for use\" or not."
617        )
618        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/conformance-resource-status")
619        private BoundCodeDt<ConformanceResourceStatusEnum> myStatus;
620        
621        @Child(name="kind", type=CodeDt.class, order=2, min=1, max=1, summary=false, modifier=false)    
622        @Description(
623                shortDefinition="class",
624                formalDefinition="Indicates the purpose for the naming system - what kinds of things does it make unique?"
625        )
626        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/namingsystem-type")
627        private BoundCodeDt<NamingSystemTypeEnum> myKind;
628        
629        @Child(name="publisher", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false)      
630        @Description(
631                shortDefinition="who.witness",
632                formalDefinition="The name of the individual or organization that published the naming system"
633        )
634        private StringDt myPublisher;
635        
636        @Child(name="contact", order=4, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
637        @Description(
638                shortDefinition="",
639                formalDefinition="Contacts to assist a user in finding and communicating with the publisher"
640        )
641        private java.util.List<Contact> myContact;
642        
643        @Child(name="responsible", type=StringDt.class, order=5, min=0, max=1, summary=false, modifier=false)   
644        @Description(
645                shortDefinition="who.witness",
646                formalDefinition="The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision."
647        )
648        private StringDt myResponsible;
649        
650        @Child(name="date", type=DateTimeDt.class, order=6, min=1, max=1, summary=true, modifier=false) 
651        @Description(
652                shortDefinition="when.recorded",
653                formalDefinition="The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes"
654        )
655        private DateTimeDt myDate;
656        
657        @Child(name="type", type=CodeableConceptDt.class, order=7, min=0, max=1, summary=false, modifier=false) 
658        @Description(
659                shortDefinition="",
660                formalDefinition="Categorizes a naming system for easier search by grouping related naming systems."
661        )
662        private BoundCodeableConceptDt<IdentifierTypeCodesEnum> myType;
663        
664        @Child(name="description", type=StringDt.class, order=8, min=0, max=1, summary=false, modifier=false)   
665        @Description(
666                shortDefinition="",
667                formalDefinition="Details about what the namespace identifies including scope, granularity, version labeling, etc."
668        )
669        private StringDt myDescription;
670        
671        @Child(name="useContext", type=CodeableConceptDt.class, order=9, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)  
672        @Description(
673                shortDefinition="",
674                formalDefinition="The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems"
675        )
676        private java.util.List<CodeableConceptDt> myUseContext;
677        
678        @Child(name="usage", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false)        
679        @Description(
680                shortDefinition="",
681                formalDefinition="Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc."
682        )
683        private StringDt myUsage;
684        
685        @Child(name="uniqueId", order=11, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
686        @Description(
687                shortDefinition="",
688                formalDefinition="Indicates how the system may be identified when referenced in electronic exchange"
689        )
690        private java.util.List<UniqueId> myUniqueId;
691        
692        @Child(name="replacedBy", order=12, min=0, max=1, summary=false, modifier=false, type={
693                ca.uhn.fhir.model.dstu2.resource.NamingSystem.class     })
694        @Description(
695                shortDefinition="",
696                formalDefinition="For naming systems that are retired, indicates the naming system that should be used in their place (if any)"
697        )
698        private ResourceReferenceDt myReplacedBy;
699        
700
701        @Override
702        public boolean isEmpty() {
703                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myStatus,  myKind,  myPublisher,  myContact,  myResponsible,  myDate,  myType,  myDescription,  myUseContext,  myUsage,  myUniqueId,  myReplacedBy);
704        }
705        
706        @Override
707        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
708                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myStatus, myKind, myPublisher, myContact, myResponsible, myDate, myType, myDescription, myUseContext, myUsage, myUniqueId, myReplacedBy);
709        }
710
711        /**
712         * Gets the value(s) for <b>name</b> ().
713         * creating it if it does
714         * not exist. Will not return <code>null</code>.
715         *
716     * <p>
717     * <b>Definition:</b>
718     * The descriptive name of this particular identifier type or code system
719     * </p> 
720         */
721        public StringDt getNameElement() {  
722                if (myName == null) {
723                        myName = new StringDt();
724                }
725                return myName;
726        }
727
728        
729        /**
730         * Gets the value(s) for <b>name</b> ().
731         * creating it if it does
732         * not exist. This method may return <code>null</code>.
733         *
734     * <p>
735     * <b>Definition:</b>
736     * The descriptive name of this particular identifier type or code system
737     * </p> 
738         */
739        public String getName() {  
740                return getNameElement().getValue();
741        }
742
743        /**
744         * Sets the value(s) for <b>name</b> ()
745         *
746     * <p>
747     * <b>Definition:</b>
748     * The descriptive name of this particular identifier type or code system
749     * </p> 
750         */
751        public NamingSystem setName(StringDt theValue) {
752                myName = theValue;
753                return this;
754        }
755        
756        
757
758        /**
759         * Sets the value for <b>name</b> ()
760         *
761     * <p>
762     * <b>Definition:</b>
763     * The descriptive name of this particular identifier type or code system
764     * </p> 
765         */
766        public NamingSystem setName( String theString) {
767                myName = new StringDt(theString); 
768                return this; 
769        }
770
771 
772        /**
773         * Gets the value(s) for <b>status</b> (status).
774         * creating it if it does
775         * not exist. Will not return <code>null</code>.
776         *
777     * <p>
778     * <b>Definition:</b>
779     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
780     * </p> 
781         */
782        public BoundCodeDt<ConformanceResourceStatusEnum> getStatusElement() {  
783                if (myStatus == null) {
784                        myStatus = new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER);
785                }
786                return myStatus;
787        }
788
789        
790        /**
791         * Gets the value(s) for <b>status</b> (status).
792         * creating it if it does
793         * not exist. This method may return <code>null</code>.
794         *
795     * <p>
796     * <b>Definition:</b>
797     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
798     * </p> 
799         */
800        public String getStatus() {  
801                return getStatusElement().getValue();
802        }
803
804        /**
805         * Sets the value(s) for <b>status</b> (status)
806         *
807     * <p>
808     * <b>Definition:</b>
809     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
810     * </p> 
811         */
812        public NamingSystem setStatus(BoundCodeDt<ConformanceResourceStatusEnum> theValue) {
813                myStatus = theValue;
814                return this;
815        }
816        
817        
818
819        /**
820         * Sets the value(s) for <b>status</b> (status)
821         *
822     * <p>
823     * <b>Definition:</b>
824     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
825     * </p> 
826         */
827        public NamingSystem setStatus(ConformanceResourceStatusEnum theValue) {
828                setStatus(new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER, theValue));
829                
830/*
831                getStatusElement().setValueAsEnum(theValue);
832*/
833                return this;
834        }
835
836  
837        /**
838         * Gets the value(s) for <b>kind</b> (class).
839         * creating it if it does
840         * not exist. Will not return <code>null</code>.
841         *
842     * <p>
843     * <b>Definition:</b>
844     * Indicates the purpose for the naming system - what kinds of things does it make unique?
845     * </p> 
846         */
847        public BoundCodeDt<NamingSystemTypeEnum> getKindElement() {  
848                if (myKind == null) {
849                        myKind = new BoundCodeDt<NamingSystemTypeEnum>(NamingSystemTypeEnum.VALUESET_BINDER);
850                }
851                return myKind;
852        }
853
854        
855        /**
856         * Gets the value(s) for <b>kind</b> (class).
857         * creating it if it does
858         * not exist. This method may return <code>null</code>.
859         *
860     * <p>
861     * <b>Definition:</b>
862     * Indicates the purpose for the naming system - what kinds of things does it make unique?
863     * </p> 
864         */
865        public String getKind() {  
866                return getKindElement().getValue();
867        }
868
869        /**
870         * Sets the value(s) for <b>kind</b> (class)
871         *
872     * <p>
873     * <b>Definition:</b>
874     * Indicates the purpose for the naming system - what kinds of things does it make unique?
875     * </p> 
876         */
877        public NamingSystem setKind(BoundCodeDt<NamingSystemTypeEnum> theValue) {
878                myKind = theValue;
879                return this;
880        }
881        
882        
883
884        /**
885         * Sets the value(s) for <b>kind</b> (class)
886         *
887     * <p>
888     * <b>Definition:</b>
889     * Indicates the purpose for the naming system - what kinds of things does it make unique?
890     * </p> 
891         */
892        public NamingSystem setKind(NamingSystemTypeEnum theValue) {
893                setKind(new BoundCodeDt<NamingSystemTypeEnum>(NamingSystemTypeEnum.VALUESET_BINDER, theValue));
894                
895/*
896                getKindElement().setValueAsEnum(theValue);
897*/
898                return this;
899        }
900
901  
902        /**
903         * Gets the value(s) for <b>publisher</b> (who.witness).
904         * creating it if it does
905         * not exist. Will not return <code>null</code>.
906         *
907     * <p>
908     * <b>Definition:</b>
909     * The name of the individual or organization that published the naming system
910     * </p> 
911         */
912        public StringDt getPublisherElement() {  
913                if (myPublisher == null) {
914                        myPublisher = new StringDt();
915                }
916                return myPublisher;
917        }
918
919        
920        /**
921         * Gets the value(s) for <b>publisher</b> (who.witness).
922         * creating it if it does
923         * not exist. This method may return <code>null</code>.
924         *
925     * <p>
926     * <b>Definition:</b>
927     * The name of the individual or organization that published the naming system
928     * </p> 
929         */
930        public String getPublisher() {  
931                return getPublisherElement().getValue();
932        }
933
934        /**
935         * Sets the value(s) for <b>publisher</b> (who.witness)
936         *
937     * <p>
938     * <b>Definition:</b>
939     * The name of the individual or organization that published the naming system
940     * </p> 
941         */
942        public NamingSystem setPublisher(StringDt theValue) {
943                myPublisher = theValue;
944                return this;
945        }
946        
947        
948
949        /**
950         * Sets the value for <b>publisher</b> (who.witness)
951         *
952     * <p>
953     * <b>Definition:</b>
954     * The name of the individual or organization that published the naming system
955     * </p> 
956         */
957        public NamingSystem setPublisher( String theString) {
958                myPublisher = new StringDt(theString); 
959                return this; 
960        }
961
962 
963        /**
964         * Gets the value(s) for <b>contact</b> ().
965         * creating it if it does
966         * not exist. Will not return <code>null</code>.
967         *
968     * <p>
969     * <b>Definition:</b>
970     * Contacts to assist a user in finding and communicating with the publisher
971     * </p> 
972         */
973        public java.util.List<Contact> getContact() {  
974                if (myContact == null) {
975                        myContact = new java.util.ArrayList<Contact>();
976                }
977                return myContact;
978        }
979
980        /**
981         * Sets the value(s) for <b>contact</b> ()
982         *
983     * <p>
984     * <b>Definition:</b>
985     * Contacts to assist a user in finding and communicating with the publisher
986     * </p> 
987         */
988        public NamingSystem setContact(java.util.List<Contact> theValue) {
989                myContact = theValue;
990                return this;
991        }
992        
993        
994
995        /**
996         * Adds and returns a new value for <b>contact</b> ()
997         *
998     * <p>
999     * <b>Definition:</b>
1000     * Contacts to assist a user in finding and communicating with the publisher
1001     * </p> 
1002         */
1003        public Contact addContact() {
1004                Contact newType = new Contact();
1005                getContact().add(newType);
1006                return newType; 
1007        }
1008
1009        /**
1010         * Adds a given new value for <b>contact</b> ()
1011         *
1012         * <p>
1013         * <b>Definition:</b>
1014         * Contacts to assist a user in finding and communicating with the publisher
1015         * </p>
1016         * @param theValue The contact to add (must not be <code>null</code>)
1017         */
1018        public NamingSystem addContact(Contact theValue) {
1019                if (theValue == null) {
1020                        throw new NullPointerException("theValue must not be null");
1021                }
1022                getContact().add(theValue);
1023                return this;
1024        }
1025
1026        /**
1027         * Gets the first repetition for <b>contact</b> (),
1028         * creating it if it does not already exist.
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * Contacts to assist a user in finding and communicating with the publisher
1033     * </p> 
1034         */
1035        public Contact getContactFirstRep() {
1036                if (getContact().isEmpty()) {
1037                        return addContact();
1038                }
1039                return getContact().get(0); 
1040        }
1041  
1042        /**
1043         * Gets the value(s) for <b>responsible</b> (who.witness).
1044         * creating it if it does
1045         * not exist. Will not return <code>null</code>.
1046         *
1047     * <p>
1048     * <b>Definition:</b>
1049     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1050     * </p> 
1051         */
1052        public StringDt getResponsibleElement() {  
1053                if (myResponsible == null) {
1054                        myResponsible = new StringDt();
1055                }
1056                return myResponsible;
1057        }
1058
1059        
1060        /**
1061         * Gets the value(s) for <b>responsible</b> (who.witness).
1062         * creating it if it does
1063         * not exist. This method may return <code>null</code>.
1064         *
1065     * <p>
1066     * <b>Definition:</b>
1067     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1068     * </p> 
1069         */
1070        public String getResponsible() {  
1071                return getResponsibleElement().getValue();
1072        }
1073
1074        /**
1075         * Sets the value(s) for <b>responsible</b> (who.witness)
1076         *
1077     * <p>
1078     * <b>Definition:</b>
1079     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1080     * </p> 
1081         */
1082        public NamingSystem setResponsible(StringDt theValue) {
1083                myResponsible = theValue;
1084                return this;
1085        }
1086        
1087        
1088
1089        /**
1090         * Sets the value for <b>responsible</b> (who.witness)
1091         *
1092     * <p>
1093     * <b>Definition:</b>
1094     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1095     * </p> 
1096         */
1097        public NamingSystem setResponsible( String theString) {
1098                myResponsible = new StringDt(theString); 
1099                return this; 
1100        }
1101
1102 
1103        /**
1104         * Gets the value(s) for <b>date</b> (when.recorded).
1105         * creating it if it does
1106         * not exist. Will not return <code>null</code>.
1107         *
1108     * <p>
1109     * <b>Definition:</b>
1110     * The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes
1111     * </p> 
1112         */
1113        public DateTimeDt getDateElement() {  
1114                if (myDate == null) {
1115                        myDate = new DateTimeDt();
1116                }
1117                return myDate;
1118        }
1119
1120        
1121        /**
1122         * Gets the value(s) for <b>date</b> (when.recorded).
1123         * creating it if it does
1124         * not exist. This method may return <code>null</code>.
1125         *
1126     * <p>
1127     * <b>Definition:</b>
1128     * The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes
1129     * </p> 
1130         */
1131        public Date getDate() {  
1132                return getDateElement().getValue();
1133        }
1134
1135        /**
1136         * Sets the value(s) for <b>date</b> (when.recorded)
1137         *
1138     * <p>
1139     * <b>Definition:</b>
1140     * The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes
1141     * </p> 
1142         */
1143        public NamingSystem setDate(DateTimeDt theValue) {
1144                myDate = theValue;
1145                return this;
1146        }
1147        
1148        
1149
1150        /**
1151         * Sets the value for <b>date</b> (when.recorded)
1152         *
1153     * <p>
1154     * <b>Definition:</b>
1155     * The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes
1156     * </p> 
1157         */
1158        public NamingSystem setDateWithSecondsPrecision( Date theDate) {
1159                myDate = new DateTimeDt(theDate); 
1160                return this; 
1161        }
1162
1163        /**
1164         * Sets the value for <b>date</b> (when.recorded)
1165         *
1166     * <p>
1167     * <b>Definition:</b>
1168     * The date  (and optionally time) when the system was registered or published. The date must change when the business version changes, if it does, and it must change if the status code changes. In addition, it should change when the substantive content of the registration changes
1169     * </p> 
1170         */
1171        public NamingSystem setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1172                myDate = new DateTimeDt(theDate, thePrecision); 
1173                return this; 
1174        }
1175
1176 
1177        /**
1178         * Gets the value(s) for <b>type</b> ().
1179         * creating it if it does
1180         * not exist. Will not return <code>null</code>.
1181         *
1182     * <p>
1183     * <b>Definition:</b>
1184     * Categorizes a naming system for easier search by grouping related naming systems.
1185     * </p> 
1186         */
1187        public BoundCodeableConceptDt<IdentifierTypeCodesEnum> getType() {  
1188                if (myType == null) {
1189                        myType = new BoundCodeableConceptDt<IdentifierTypeCodesEnum>(IdentifierTypeCodesEnum.VALUESET_BINDER);
1190                }
1191                return myType;
1192        }
1193
1194        /**
1195         * Sets the value(s) for <b>type</b> ()
1196         *
1197     * <p>
1198     * <b>Definition:</b>
1199     * Categorizes a naming system for easier search by grouping related naming systems.
1200     * </p> 
1201         */
1202        public NamingSystem setType(BoundCodeableConceptDt<IdentifierTypeCodesEnum> theValue) {
1203                myType = theValue;
1204                return this;
1205        }
1206        
1207        
1208
1209        /**
1210         * Sets the value(s) for <b>type</b> ()
1211         *
1212     * <p>
1213     * <b>Definition:</b>
1214     * Categorizes a naming system for easier search by grouping related naming systems.
1215     * </p> 
1216         */
1217        public NamingSystem setType(IdentifierTypeCodesEnum theValue) {
1218                setType(new BoundCodeableConceptDt<IdentifierTypeCodesEnum>(IdentifierTypeCodesEnum.VALUESET_BINDER, theValue));
1219                
1220/*
1221                getType().setValueAsEnum(theValue);
1222*/
1223                return this;
1224        }
1225
1226  
1227        /**
1228         * Gets the value(s) for <b>description</b> ().
1229         * creating it if it does
1230         * not exist. Will not return <code>null</code>.
1231         *
1232     * <p>
1233     * <b>Definition:</b>
1234     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1235     * </p> 
1236         */
1237        public StringDt getDescriptionElement() {  
1238                if (myDescription == null) {
1239                        myDescription = new StringDt();
1240                }
1241                return myDescription;
1242        }
1243
1244        
1245        /**
1246         * Gets the value(s) for <b>description</b> ().
1247         * creating it if it does
1248         * not exist. This method may return <code>null</code>.
1249         *
1250     * <p>
1251     * <b>Definition:</b>
1252     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1253     * </p> 
1254         */
1255        public String getDescription() {  
1256                return getDescriptionElement().getValue();
1257        }
1258
1259        /**
1260         * Sets the value(s) for <b>description</b> ()
1261         *
1262     * <p>
1263     * <b>Definition:</b>
1264     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1265     * </p> 
1266         */
1267        public NamingSystem setDescription(StringDt theValue) {
1268                myDescription = theValue;
1269                return this;
1270        }
1271        
1272        
1273
1274        /**
1275         * Sets the value for <b>description</b> ()
1276         *
1277     * <p>
1278     * <b>Definition:</b>
1279     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1280     * </p> 
1281         */
1282        public NamingSystem setDescription( String theString) {
1283                myDescription = new StringDt(theString); 
1284                return this; 
1285        }
1286
1287 
1288        /**
1289         * Gets the value(s) for <b>useContext</b> ().
1290         * creating it if it does
1291         * not exist. Will not return <code>null</code>.
1292         *
1293     * <p>
1294     * <b>Definition:</b>
1295     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems
1296     * </p> 
1297         */
1298        public java.util.List<CodeableConceptDt> getUseContext() {  
1299                if (myUseContext == null) {
1300                        myUseContext = new java.util.ArrayList<CodeableConceptDt>();
1301                }
1302                return myUseContext;
1303        }
1304
1305        /**
1306         * Sets the value(s) for <b>useContext</b> ()
1307         *
1308     * <p>
1309     * <b>Definition:</b>
1310     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems
1311     * </p> 
1312         */
1313        public NamingSystem setUseContext(java.util.List<CodeableConceptDt> theValue) {
1314                myUseContext = theValue;
1315                return this;
1316        }
1317        
1318        
1319
1320        /**
1321         * Adds and returns a new value for <b>useContext</b> ()
1322         *
1323     * <p>
1324     * <b>Definition:</b>
1325     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems
1326     * </p> 
1327         */
1328        public CodeableConceptDt addUseContext() {
1329                CodeableConceptDt newType = new CodeableConceptDt();
1330                getUseContext().add(newType);
1331                return newType; 
1332        }
1333
1334        /**
1335         * Adds a given new value for <b>useContext</b> ()
1336         *
1337         * <p>
1338         * <b>Definition:</b>
1339         * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems
1340         * </p>
1341         * @param theValue The useContext to add (must not be <code>null</code>)
1342         */
1343        public NamingSystem addUseContext(CodeableConceptDt theValue) {
1344                if (theValue == null) {
1345                        throw new NullPointerException("theValue must not be null");
1346                }
1347                getUseContext().add(theValue);
1348                return this;
1349        }
1350
1351        /**
1352         * Gets the first repetition for <b>useContext</b> (),
1353         * creating it if it does not already exist.
1354         *
1355     * <p>
1356     * <b>Definition:</b>
1357     * The content was developed with a focus and intent of supporting the contexts that are listed. These terms may be used to assist with indexing and searching of naming systems
1358     * </p> 
1359         */
1360        public CodeableConceptDt getUseContextFirstRep() {
1361                if (getUseContext().isEmpty()) {
1362                        return addUseContext();
1363                }
1364                return getUseContext().get(0); 
1365        }
1366  
1367        /**
1368         * Gets the value(s) for <b>usage</b> ().
1369         * creating it if it does
1370         * not exist. Will not return <code>null</code>.
1371         *
1372     * <p>
1373     * <b>Definition:</b>
1374     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1375     * </p> 
1376         */
1377        public StringDt getUsageElement() {  
1378                if (myUsage == null) {
1379                        myUsage = new StringDt();
1380                }
1381                return myUsage;
1382        }
1383
1384        
1385        /**
1386         * Gets the value(s) for <b>usage</b> ().
1387         * creating it if it does
1388         * not exist. This method may return <code>null</code>.
1389         *
1390     * <p>
1391     * <b>Definition:</b>
1392     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1393     * </p> 
1394         */
1395        public String getUsage() {  
1396                return getUsageElement().getValue();
1397        }
1398
1399        /**
1400         * Sets the value(s) for <b>usage</b> ()
1401         *
1402     * <p>
1403     * <b>Definition:</b>
1404     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1405     * </p> 
1406         */
1407        public NamingSystem setUsage(StringDt theValue) {
1408                myUsage = theValue;
1409                return this;
1410        }
1411        
1412        
1413
1414        /**
1415         * Sets the value for <b>usage</b> ()
1416         *
1417     * <p>
1418     * <b>Definition:</b>
1419     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1420     * </p> 
1421         */
1422        public NamingSystem setUsage( String theString) {
1423                myUsage = new StringDt(theString); 
1424                return this; 
1425        }
1426
1427 
1428        /**
1429         * Gets the value(s) for <b>uniqueId</b> ().
1430         * creating it if it does
1431         * not exist. Will not return <code>null</code>.
1432         *
1433     * <p>
1434     * <b>Definition:</b>
1435     * Indicates how the system may be identified when referenced in electronic exchange
1436     * </p> 
1437         */
1438        public java.util.List<UniqueId> getUniqueId() {  
1439                if (myUniqueId == null) {
1440                        myUniqueId = new java.util.ArrayList<UniqueId>();
1441                }
1442                return myUniqueId;
1443        }
1444
1445        /**
1446         * Sets the value(s) for <b>uniqueId</b> ()
1447         *
1448     * <p>
1449     * <b>Definition:</b>
1450     * Indicates how the system may be identified when referenced in electronic exchange
1451     * </p> 
1452         */
1453        public NamingSystem setUniqueId(java.util.List<UniqueId> theValue) {
1454                myUniqueId = theValue;
1455                return this;
1456        }
1457        
1458        
1459
1460        /**
1461         * Adds and returns a new value for <b>uniqueId</b> ()
1462         *
1463     * <p>
1464     * <b>Definition:</b>
1465     * Indicates how the system may be identified when referenced in electronic exchange
1466     * </p> 
1467         */
1468        public UniqueId addUniqueId() {
1469                UniqueId newType = new UniqueId();
1470                getUniqueId().add(newType);
1471                return newType; 
1472        }
1473
1474        /**
1475         * Adds a given new value for <b>uniqueId</b> ()
1476         *
1477         * <p>
1478         * <b>Definition:</b>
1479         * Indicates how the system may be identified when referenced in electronic exchange
1480         * </p>
1481         * @param theValue The uniqueId to add (must not be <code>null</code>)
1482         */
1483        public NamingSystem addUniqueId(UniqueId theValue) {
1484                if (theValue == null) {
1485                        throw new NullPointerException("theValue must not be null");
1486                }
1487                getUniqueId().add(theValue);
1488                return this;
1489        }
1490
1491        /**
1492         * Gets the first repetition for <b>uniqueId</b> (),
1493         * creating it if it does not already exist.
1494         *
1495     * <p>
1496     * <b>Definition:</b>
1497     * Indicates how the system may be identified when referenced in electronic exchange
1498     * </p> 
1499         */
1500        public UniqueId getUniqueIdFirstRep() {
1501                if (getUniqueId().isEmpty()) {
1502                        return addUniqueId();
1503                }
1504                return getUniqueId().get(0); 
1505        }
1506  
1507        /**
1508         * Gets the value(s) for <b>replacedBy</b> ().
1509         * creating it if it does
1510         * not exist. Will not return <code>null</code>.
1511         *
1512     * <p>
1513     * <b>Definition:</b>
1514     * For naming systems that are retired, indicates the naming system that should be used in their place (if any)
1515     * </p> 
1516         */
1517        public ResourceReferenceDt getReplacedBy() {  
1518                if (myReplacedBy == null) {
1519                        myReplacedBy = new ResourceReferenceDt();
1520                }
1521                return myReplacedBy;
1522        }
1523
1524        /**
1525         * Sets the value(s) for <b>replacedBy</b> ()
1526         *
1527     * <p>
1528     * <b>Definition:</b>
1529     * For naming systems that are retired, indicates the naming system that should be used in their place (if any)
1530     * </p> 
1531         */
1532        public NamingSystem setReplacedBy(ResourceReferenceDt theValue) {
1533                myReplacedBy = theValue;
1534                return this;
1535        }
1536        
1537        
1538
1539  
1540        /**
1541         * Block class for child element: <b>NamingSystem.contact</b> ()
1542         *
1543     * <p>
1544     * <b>Definition:</b>
1545     * Contacts to assist a user in finding and communicating with the publisher
1546     * </p> 
1547         */
1548        @Block()        
1549        public static class Contact 
1550            extends  BaseIdentifiableElement        implements IResourceBlock {
1551        
1552        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=true, modifier=false)   
1553        @Description(
1554                shortDefinition="",
1555                formalDefinition="The name of an individual to contact regarding the naming system"
1556        )
1557        private StringDt myName;
1558        
1559        @Child(name="telecom", type=ContactPointDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)        
1560        @Description(
1561                shortDefinition="",
1562                formalDefinition="Contact details for individual (if a name was provided) or the publisher"
1563        )
1564        private java.util.List<ContactPointDt> myTelecom;
1565        
1566
1567        @Override
1568        public boolean isEmpty() {
1569                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myTelecom);
1570        }
1571        
1572        @Override
1573        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1574                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myTelecom);
1575        }
1576
1577        /**
1578         * Gets the value(s) for <b>name</b> ().
1579         * creating it if it does
1580         * not exist. Will not return <code>null</code>.
1581         *
1582     * <p>
1583     * <b>Definition:</b>
1584     * The name of an individual to contact regarding the naming system
1585     * </p> 
1586         */
1587        public StringDt getNameElement() {  
1588                if (myName == null) {
1589                        myName = new StringDt();
1590                }
1591                return myName;
1592        }
1593
1594        
1595        /**
1596         * Gets the value(s) for <b>name</b> ().
1597         * creating it if it does
1598         * not exist. This method may return <code>null</code>.
1599         *
1600     * <p>
1601     * <b>Definition:</b>
1602     * The name of an individual to contact regarding the naming system
1603     * </p> 
1604         */
1605        public String getName() {  
1606                return getNameElement().getValue();
1607        }
1608
1609        /**
1610         * Sets the value(s) for <b>name</b> ()
1611         *
1612     * <p>
1613     * <b>Definition:</b>
1614     * The name of an individual to contact regarding the naming system
1615     * </p> 
1616         */
1617        public Contact setName(StringDt theValue) {
1618                myName = theValue;
1619                return this;
1620        }
1621        
1622        
1623
1624        /**
1625         * Sets the value for <b>name</b> ()
1626         *
1627     * <p>
1628     * <b>Definition:</b>
1629     * The name of an individual to contact regarding the naming system
1630     * </p> 
1631         */
1632        public Contact setName( String theString) {
1633                myName = new StringDt(theString); 
1634                return this; 
1635        }
1636
1637 
1638        /**
1639         * Gets the value(s) for <b>telecom</b> ().
1640         * creating it if it does
1641         * not exist. Will not return <code>null</code>.
1642         *
1643     * <p>
1644     * <b>Definition:</b>
1645     * Contact details for individual (if a name was provided) or the publisher
1646     * </p> 
1647         */
1648        public java.util.List<ContactPointDt> getTelecom() {  
1649                if (myTelecom == null) {
1650                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1651                }
1652                return myTelecom;
1653        }
1654
1655        /**
1656         * Sets the value(s) for <b>telecom</b> ()
1657         *
1658     * <p>
1659     * <b>Definition:</b>
1660     * Contact details for individual (if a name was provided) or the publisher
1661     * </p> 
1662         */
1663        public Contact setTelecom(java.util.List<ContactPointDt> theValue) {
1664                myTelecom = theValue;
1665                return this;
1666        }
1667        
1668        
1669
1670        /**
1671         * Adds and returns a new value for <b>telecom</b> ()
1672         *
1673     * <p>
1674     * <b>Definition:</b>
1675     * Contact details for individual (if a name was provided) or the publisher
1676     * </p> 
1677         */
1678        public ContactPointDt addTelecom() {
1679                ContactPointDt newType = new ContactPointDt();
1680                getTelecom().add(newType);
1681                return newType; 
1682        }
1683
1684        /**
1685         * Adds a given new value for <b>telecom</b> ()
1686         *
1687         * <p>
1688         * <b>Definition:</b>
1689         * Contact details for individual (if a name was provided) or the publisher
1690         * </p>
1691         * @param theValue The telecom to add (must not be <code>null</code>)
1692         */
1693        public Contact addTelecom(ContactPointDt theValue) {
1694                if (theValue == null) {
1695                        throw new NullPointerException("theValue must not be null");
1696                }
1697                getTelecom().add(theValue);
1698                return this;
1699        }
1700
1701        /**
1702         * Gets the first repetition for <b>telecom</b> (),
1703         * creating it if it does not already exist.
1704         *
1705     * <p>
1706     * <b>Definition:</b>
1707     * Contact details for individual (if a name was provided) or the publisher
1708     * </p> 
1709         */
1710        public ContactPointDt getTelecomFirstRep() {
1711                if (getTelecom().isEmpty()) {
1712                        return addTelecom();
1713                }
1714                return getTelecom().get(0); 
1715        }
1716  
1717
1718
1719        }
1720
1721
1722        /**
1723         * Block class for child element: <b>NamingSystem.uniqueId</b> ()
1724         *
1725     * <p>
1726     * <b>Definition:</b>
1727     * Indicates how the system may be identified when referenced in electronic exchange
1728     * </p> 
1729         */
1730        @Block()        
1731        public static class UniqueId 
1732            extends  BaseIdentifiableElement        implements IResourceBlock {
1733        
1734        @Child(name="type", type=CodeDt.class, order=0, min=1, max=1, summary=false, modifier=false)    
1735        @Description(
1736                shortDefinition="",
1737                formalDefinition="Identifies the unique identifier scheme used for this particular identifier."
1738        )
1739        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/namingsystem-identifier-type")
1740        private BoundCodeDt<NamingSystemIdentifierTypeEnum> myType;
1741        
1742        @Child(name="value", type=StringDt.class, order=1, min=1, max=1, summary=false, modifier=false) 
1743        @Description(
1744                shortDefinition="id",
1745                formalDefinition="The string that should be sent over the wire to identify the code system or identifier system"
1746        )
1747        private StringDt myValue;
1748        
1749        @Child(name="preferred", type=BooleanDt.class, order=2, min=0, max=1, summary=false, modifier=false)    
1750        @Description(
1751                shortDefinition="",
1752                formalDefinition="Indicates whether this identifier is the \"preferred\" identifier of this type."
1753        )
1754        private BooleanDt myPreferred;
1755        
1756        @Child(name="period", type=PeriodDt.class, order=3, min=0, max=1, summary=false, modifier=false)        
1757        @Description(
1758                shortDefinition="",
1759                formalDefinition="Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic"
1760        )
1761        private PeriodDt myPeriod;
1762        
1763
1764        @Override
1765        public boolean isEmpty() {
1766                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myValue,  myPreferred,  myPeriod);
1767        }
1768        
1769        @Override
1770        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1771                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myValue, myPreferred, myPeriod);
1772        }
1773
1774        /**
1775         * Gets the value(s) for <b>type</b> ().
1776         * creating it if it does
1777         * not exist. Will not return <code>null</code>.
1778         *
1779     * <p>
1780     * <b>Definition:</b>
1781     * Identifies the unique identifier scheme used for this particular identifier.
1782     * </p> 
1783         */
1784        public BoundCodeDt<NamingSystemIdentifierTypeEnum> getTypeElement() {  
1785                if (myType == null) {
1786                        myType = new BoundCodeDt<NamingSystemIdentifierTypeEnum>(NamingSystemIdentifierTypeEnum.VALUESET_BINDER);
1787                }
1788                return myType;
1789        }
1790
1791        
1792        /**
1793         * Gets the value(s) for <b>type</b> ().
1794         * creating it if it does
1795         * not exist. This method may return <code>null</code>.
1796         *
1797     * <p>
1798     * <b>Definition:</b>
1799     * Identifies the unique identifier scheme used for this particular identifier.
1800     * </p> 
1801         */
1802        public String getType() {  
1803                return getTypeElement().getValue();
1804        }
1805
1806        /**
1807         * Sets the value(s) for <b>type</b> ()
1808         *
1809     * <p>
1810     * <b>Definition:</b>
1811     * Identifies the unique identifier scheme used for this particular identifier.
1812     * </p> 
1813         */
1814        public UniqueId setType(BoundCodeDt<NamingSystemIdentifierTypeEnum> theValue) {
1815                myType = theValue;
1816                return this;
1817        }
1818        
1819        
1820
1821        /**
1822         * Sets the value(s) for <b>type</b> ()
1823         *
1824     * <p>
1825     * <b>Definition:</b>
1826     * Identifies the unique identifier scheme used for this particular identifier.
1827     * </p> 
1828         */
1829        public UniqueId setType(NamingSystemIdentifierTypeEnum theValue) {
1830                setType(new BoundCodeDt<NamingSystemIdentifierTypeEnum>(NamingSystemIdentifierTypeEnum.VALUESET_BINDER, theValue));
1831                
1832/*
1833                getTypeElement().setValueAsEnum(theValue);
1834*/
1835                return this;
1836        }
1837
1838  
1839        /**
1840         * Gets the value(s) for <b>value</b> (id).
1841         * creating it if it does
1842         * not exist. Will not return <code>null</code>.
1843         *
1844     * <p>
1845     * <b>Definition:</b>
1846     * The string that should be sent over the wire to identify the code system or identifier system
1847     * </p> 
1848         */
1849        public StringDt getValueElement() {  
1850                if (myValue == null) {
1851                        myValue = new StringDt();
1852                }
1853                return myValue;
1854        }
1855
1856        
1857        /**
1858         * Gets the value(s) for <b>value</b> (id).
1859         * creating it if it does
1860         * not exist. This method may return <code>null</code>.
1861         *
1862     * <p>
1863     * <b>Definition:</b>
1864     * The string that should be sent over the wire to identify the code system or identifier system
1865     * </p> 
1866         */
1867        public String getValue() {  
1868                return getValueElement().getValue();
1869        }
1870
1871        /**
1872         * Sets the value(s) for <b>value</b> (id)
1873         *
1874     * <p>
1875     * <b>Definition:</b>
1876     * The string that should be sent over the wire to identify the code system or identifier system
1877     * </p> 
1878         */
1879        public UniqueId setValue(StringDt theValue) {
1880                myValue = theValue;
1881                return this;
1882        }
1883        
1884        
1885
1886        /**
1887         * Sets the value for <b>value</b> (id)
1888         *
1889     * <p>
1890     * <b>Definition:</b>
1891     * The string that should be sent over the wire to identify the code system or identifier system
1892     * </p> 
1893         */
1894        public UniqueId setValue( String theString) {
1895                myValue = new StringDt(theString); 
1896                return this; 
1897        }
1898
1899 
1900        /**
1901         * Gets the value(s) for <b>preferred</b> ().
1902         * creating it if it does
1903         * not exist. Will not return <code>null</code>.
1904         *
1905     * <p>
1906     * <b>Definition:</b>
1907     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1908     * </p> 
1909         */
1910        public BooleanDt getPreferredElement() {  
1911                if (myPreferred == null) {
1912                        myPreferred = new BooleanDt();
1913                }
1914                return myPreferred;
1915        }
1916
1917        
1918        /**
1919         * Gets the value(s) for <b>preferred</b> ().
1920         * creating it if it does
1921         * not exist. This method may return <code>null</code>.
1922         *
1923     * <p>
1924     * <b>Definition:</b>
1925     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1926     * </p> 
1927         */
1928        public Boolean getPreferred() {  
1929                return getPreferredElement().getValue();
1930        }
1931
1932        /**
1933         * Sets the value(s) for <b>preferred</b> ()
1934         *
1935     * <p>
1936     * <b>Definition:</b>
1937     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1938     * </p> 
1939         */
1940        public UniqueId setPreferred(BooleanDt theValue) {
1941                myPreferred = theValue;
1942                return this;
1943        }
1944        
1945        
1946
1947        /**
1948         * Sets the value for <b>preferred</b> ()
1949         *
1950     * <p>
1951     * <b>Definition:</b>
1952     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1953     * </p> 
1954         */
1955        public UniqueId setPreferred( boolean theBoolean) {
1956                myPreferred = new BooleanDt(theBoolean); 
1957                return this; 
1958        }
1959
1960 
1961        /**
1962         * Gets the value(s) for <b>period</b> ().
1963         * creating it if it does
1964         * not exist. Will not return <code>null</code>.
1965         *
1966     * <p>
1967     * <b>Definition:</b>
1968     * Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic
1969     * </p> 
1970         */
1971        public PeriodDt getPeriod() {  
1972                if (myPeriod == null) {
1973                        myPeriod = new PeriodDt();
1974                }
1975                return myPeriod;
1976        }
1977
1978        /**
1979         * Sets the value(s) for <b>period</b> ()
1980         *
1981     * <p>
1982     * <b>Definition:</b>
1983     * Identifies the period of time over which this identifier is considered appropriate to refer to the naming system.  Outside of this window, the identifier might be non-deterministic
1984     * </p> 
1985         */
1986        public UniqueId setPeriod(PeriodDt theValue) {
1987                myPeriod = theValue;
1988                return this;
1989        }
1990        
1991        
1992
1993  
1994
1995
1996        }
1997
1998
1999
2000
2001    @Override
2002    public String getResourceName() {
2003        return "NamingSystem";
2004    }
2005    
2006    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2007        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2008    }
2009
2010
2011}