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