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.valueset.AnimalSpeciesEnum;
042import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
043import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
044import ca.uhn.fhir.model.dstu2.resource.Appointment;
045import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
048import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
049import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
057import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
058import ca.uhn.fhir.model.dstu2.resource.BodySite;
059import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
060import ca.uhn.fhir.model.dstu2.resource.CarePlan;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityCategoryEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
063import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
064import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
065import ca.uhn.fhir.model.dstu2.resource.Claim;
066import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
067import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
068import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
069import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
070import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
071import ca.uhn.fhir.model.dstu2.composite.CodingDt;
072import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
073import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
074import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
075import ca.uhn.fhir.model.dstu2.resource.Composition;
076import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
077import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
078import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
079import ca.uhn.fhir.model.dstu2.resource.Condition;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
082import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
083import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConditionsCodesEnum;
085import ca.uhn.fhir.model.dstu2.resource.Conformance;
086import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
087import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
088import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
089import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
090import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
091import ca.uhn.fhir.model.dstu2.resource.Contract;
092import ca.uhn.fhir.model.dstu2.valueset.ContractActionCodesEnum;
093import ca.uhn.fhir.model.dstu2.valueset.ContractActorRoleCodesEnum;
094import ca.uhn.fhir.model.dstu2.valueset.ContractSubtypeCodesEnum;
095import ca.uhn.fhir.model.dstu2.valueset.ContractTermTypeCodesEnum;
096import ca.uhn.fhir.model.dstu2.valueset.ContractTypeCodesEnum;
097import ca.uhn.fhir.model.dstu2.resource.Coverage;
098import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
101import ca.uhn.fhir.model.dstu2.resource.Device;
102import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
103import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
105import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
106import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
108import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
109import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
110import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
111import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
112import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
113import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
114import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
115import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
116import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
117import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
118import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
119import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
120import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
121import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
122import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
123import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
124import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
125import ca.uhn.fhir.model.dstu2.resource.Encounter;
126import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
127import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
128import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
129import ca.uhn.fhir.model.dstu2.valueset.EncounterTypeEnum;
130import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
131import ca.uhn.fhir.model.dstu2.valueset.EnteralFormulaTypeCodesEnum;
132import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
133import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
134import ca.uhn.fhir.model.dstu2.valueset.ExceptionCodesEnum;
135import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
136import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
137import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
138import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
139import ca.uhn.fhir.model.dstu2.valueset.FlagCategoryCodesEnum;
140import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
141import ca.uhn.fhir.model.dstu2.valueset.FluidConsistencyTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.resource.Goal;
143import ca.uhn.fhir.model.dstu2.valueset.GoalCategoryEnum;
144import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
145import ca.uhn.fhir.model.dstu2.valueset.GoalStartEventEnum;
146import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
147import ca.uhn.fhir.model.dstu2.valueset.GoalStatusReasonEnum;
148import ca.uhn.fhir.model.dstu2.resource.Group;
149import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
150import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
152import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
153import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
154import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
155import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
156import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
157import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
158import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
159import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
160import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
161import ca.uhn.fhir.model.dstu2.resource.Immunization;
162import ca.uhn.fhir.model.dstu2.valueset.ImmunizationReasonCodesEnum;
163import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationDateCriterionCodesEnum;
164import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationStatusCodesEnum;
165import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRouteCodesEnum;
166import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
167import ca.uhn.fhir.model.dstu2.valueset.InterventionCodesEnum;
168import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
169import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
170import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
171import ca.uhn.fhir.model.dstu2.valueset.LateralityEnum;
172import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
175import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
176import ca.uhn.fhir.model.dstu2.resource.Location;
177import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
178import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
179import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
180import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
181import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
182import ca.uhn.fhir.model.dstu2.resource.Media;
183import ca.uhn.fhir.model.dstu2.resource.Medication;
184import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
185import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
187import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
188import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
189import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
190import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
191import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
192import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
193import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
194import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
195import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
196import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
197import ca.uhn.fhir.model.dstu2.valueset.NutrientModifierCodesEnum;
198import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
199import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
200import ca.uhn.fhir.model.dstu2.resource.Observation;
201import ca.uhn.fhir.model.dstu2.valueset.ObservationCategoryCodesEnum;
202import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
203import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
204import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
205import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
206import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
207import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
208import ca.uhn.fhir.model.dstu2.resource.Order;
209import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
210import ca.uhn.fhir.model.dstu2.resource.Organization;
211import ca.uhn.fhir.model.dstu2.valueset.OrganizationTypeEnum;
212import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
213import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
214import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
216import ca.uhn.fhir.model.dstu2.resource.Patient;
217import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
218import ca.uhn.fhir.model.dstu2.valueset.PaymentStatusCodesEnum;
219import ca.uhn.fhir.model.dstu2.valueset.PaymentTypeCodesEnum;
220import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
221import ca.uhn.fhir.model.dstu2.resource.Person;
222import ca.uhn.fhir.model.dstu2.resource.Practitioner;
223import ca.uhn.fhir.model.dstu2.valueset.PractitionerRoleEnum;
224import ca.uhn.fhir.model.dstu2.valueset.PractitionerSpecialtyEnum;
225import ca.uhn.fhir.model.dstu2.valueset.PriorityCodesEnum;
226import ca.uhn.fhir.model.dstu2.resource.Procedure;
227import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
228import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
229import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
230import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
232import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
233import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
234import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
235import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
236import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
237import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
238import ca.uhn.fhir.model.dstu2.composite.RangeDt;
239import ca.uhn.fhir.model.dstu2.composite.RatioDt;
240import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
241import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
242import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
243import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
244import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
245import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
247import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
249import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
250import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
251import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
252import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
253import ca.uhn.fhir.model.dstu2.resource.Schedule;
254import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
255import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
256import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
257import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
258import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
259import ca.uhn.fhir.model.dstu2.resource.Slot;
260import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
261import ca.uhn.fhir.model.dstu2.resource.Specimen;
262import ca.uhn.fhir.model.dstu2.valueset.SpecimenCollectionMethodEnum;
263import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
264import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
265import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
266import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
267import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
268import ca.uhn.fhir.model.dstu2.valueset.SubscriptionTagEnum;
269import ca.uhn.fhir.model.dstu2.resource.Substance;
270import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
271import ca.uhn.fhir.model.dstu2.valueset.SupplementTypeCodesEnum;
272import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
273import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
274import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestReasonEnum;
275import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
276import ca.uhn.fhir.model.dstu2.valueset.SurfaceCodesEnum;
277import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
278import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
279import ca.uhn.fhir.model.dstu2.valueset.TextureModifiedFoodTypeCodesEnum;
280import ca.uhn.fhir.model.dstu2.valueset.TextureModifierCodesEnum;
281import ca.uhn.fhir.model.dstu2.composite.TimingDt;
282import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
283import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
284import ca.uhn.fhir.model.dstu2.valueset.UDICodesEnum;
285import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
286import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
287import ca.uhn.fhir.model.dstu2.resource.ValueSet;
288import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
289import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
290import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
291import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
292import ca.uhn.fhir.model.api.IResource;
293import ca.uhn.fhir.model.dstu2.composite.AgeDt;
294import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
295import ca.uhn.fhir.model.dstu2.composite.DurationDt;
296import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
297import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
298import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
299import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
300import ca.uhn.fhir.model.primitive.Base64BinaryDt;
301import ca.uhn.fhir.model.primitive.BooleanDt;
302import ca.uhn.fhir.model.primitive.BoundCodeDt;
303import ca.uhn.fhir.model.primitive.CodeDt;
304import ca.uhn.fhir.model.primitive.DateDt;
305import ca.uhn.fhir.model.primitive.DateTimeDt;
306import ca.uhn.fhir.model.primitive.DecimalDt;
307import ca.uhn.fhir.model.primitive.IdDt;
308import ca.uhn.fhir.model.primitive.InstantDt;
309import ca.uhn.fhir.model.primitive.IntegerDt;
310import ca.uhn.fhir.model.primitive.OidDt;
311import ca.uhn.fhir.model.primitive.PositiveIntDt;
312import ca.uhn.fhir.model.primitive.StringDt;
313import ca.uhn.fhir.model.primitive.TimeDt;
314import ca.uhn.fhir.model.primitive.UnsignedIntDt;
315import ca.uhn.fhir.model.primitive.UriDt;
316
317
318/**
319 * HAPI/FHIR <b>NamingSystem</b> Resource
320 * (conformance.terminology)
321 *
322 * <p>
323 * <b>Definition:</b>
324 * 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.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/NamingSystem">http://hl7.org/fhir/profiles/NamingSystem</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="NamingSystem", profile="http://hl7.org/fhir/profiles/NamingSystem", id="namingsystem")
339public class NamingSystem extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>type</b>
344         * <p>
345         * Description: <b></b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>NamingSystem.type</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="type", path="NamingSystem.type", description="", type="token"  )
351        public static final String SP_TYPE = "type";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>type</b>
355         * <p>
356         * Description: <b></b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>NamingSystem.type</b><br>
359         * </p>
360         */
361        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
362
363        /**
364         * Search parameter constant for <b>name</b>
365         * <p>
366         * Description: <b></b><br>
367         * Type: <b>string</b><br>
368         * Path: <b>NamingSystem.name</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="name", path="NamingSystem.name", description="", type="string"  )
372        public static final String SP_NAME = "name";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>name</b>
376         * <p>
377         * Description: <b></b><br>
378         * Type: <b>string</b><br>
379         * Path: <b>NamingSystem.name</b><br>
380         * </p>
381         */
382        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
383
384        /**
385         * Search parameter constant for <b>date</b>
386         * <p>
387         * Description: <b></b><br>
388         * Type: <b>date</b><br>
389         * Path: <b>NamingSystem.date</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="date", path="NamingSystem.date", description="", type="date"  )
393        public static final String SP_DATE = "date";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>date</b>
397         * <p>
398         * Description: <b></b><br>
399         * Type: <b>date</b><br>
400         * Path: <b>NamingSystem.date</b><br>
401         * </p>
402         */
403        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
404
405        /**
406         * Search parameter constant for <b>status</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>NamingSystem.status</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="status", path="NamingSystem.status", description="", type="token"  )
414        public static final String SP_STATUS = "status";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>status</b>
418         * <p>
419         * Description: <b></b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>NamingSystem.status</b><br>
422         * </p>
423         */
424        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
425
426        /**
427         * Search parameter constant for <b>kind</b>
428         * <p>
429         * Description: <b></b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>NamingSystem.kind</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="kind", path="NamingSystem.kind", description="", type="token"  )
435        public static final String SP_KIND = "kind";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>kind</b>
439         * <p>
440         * Description: <b></b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>NamingSystem.kind</b><br>
443         * </p>
444         */
445        public static final TokenClientParam KIND = new TokenClientParam(SP_KIND);
446
447        /**
448         * Search parameter constant for <b>responsible</b>
449         * <p>
450         * Description: <b></b><br>
451         * Type: <b>string</b><br>
452         * Path: <b>NamingSystem.responsible</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="responsible", path="NamingSystem.responsible", description="", type="string"  )
456        public static final String SP_RESPONSIBLE = "responsible";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>responsible</b>
460         * <p>
461         * Description: <b></b><br>
462         * Type: <b>string</b><br>
463         * Path: <b>NamingSystem.responsible</b><br>
464         * </p>
465         */
466        public static final StringClientParam RESPONSIBLE = new StringClientParam(SP_RESPONSIBLE);
467
468        /**
469         * Search parameter constant for <b>id-type</b>
470         * <p>
471         * Description: <b></b><br>
472         * Type: <b>token</b><br>
473         * Path: <b>NamingSystem.uniqueId.type</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="id-type", path="NamingSystem.uniqueId.type", description="", type="token"  )
477        public static final String SP_ID_TYPE = "id-type";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>id-type</b>
481         * <p>
482         * Description: <b></b><br>
483         * Type: <b>token</b><br>
484         * Path: <b>NamingSystem.uniqueId.type</b><br>
485         * </p>
486         */
487        public static final TokenClientParam ID_TYPE = new TokenClientParam(SP_ID_TYPE);
488
489        /**
490         * Search parameter constant for <b>value</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>string</b><br>
494         * Path: <b>NamingSystem.uniqueId.value</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="value", path="NamingSystem.uniqueId.value", description="", type="string"  )
498        public static final String SP_VALUE = "value";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>value</b>
502         * <p>
503         * Description: <b></b><br>
504         * Type: <b>string</b><br>
505         * Path: <b>NamingSystem.uniqueId.value</b><br>
506         * </p>
507         */
508        public static final StringClientParam VALUE = new StringClientParam(SP_VALUE);
509
510        /**
511         * Search parameter constant for <b>period</b>
512         * <p>
513         * Description: <b></b><br>
514         * Type: <b>date</b><br>
515         * Path: <b>NamingSystem.uniqueId.period</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="period", path="NamingSystem.uniqueId.period", description="", type="date"  )
519        public static final String SP_PERIOD = "period";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>period</b>
523         * <p>
524         * Description: <b></b><br>
525         * Type: <b>date</b><br>
526         * Path: <b>NamingSystem.uniqueId.period</b><br>
527         * </p>
528         */
529        public static final DateClientParam PERIOD = new DateClientParam(SP_PERIOD);
530
531        /**
532         * Search parameter constant for <b>publisher</b>
533         * <p>
534         * Description: <b></b><br>
535         * Type: <b>string</b><br>
536         * Path: <b>NamingSystem.publisher</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="publisher", path="NamingSystem.publisher", description="", type="string"  )
540        public static final String SP_PUBLISHER = "publisher";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
544         * <p>
545         * Description: <b></b><br>
546         * Type: <b>string</b><br>
547         * Path: <b>NamingSystem.publisher</b><br>
548         * </p>
549         */
550        public static final StringClientParam PUBLISHER = new StringClientParam(SP_PUBLISHER);
551
552        /**
553         * Search parameter constant for <b>contact</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>string</b><br>
557         * Path: <b>NamingSystem.contact.name</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="contact", path="NamingSystem.contact.name", description="", type="string"  )
561        public static final String SP_CONTACT = "contact";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>contact</b>
565         * <p>
566         * Description: <b></b><br>
567         * Type: <b>string</b><br>
568         * Path: <b>NamingSystem.contact.name</b><br>
569         * </p>
570         */
571        public static final StringClientParam CONTACT = new StringClientParam(SP_CONTACT);
572
573        /**
574         * Search parameter constant for <b>telecom</b>
575         * <p>
576         * Description: <b></b><br>
577         * Type: <b>token</b><br>
578         * Path: <b>NamingSystem.contact.telecom</b><br>
579         * </p>
580         */
581        @SearchParamDefinition(name="telecom", path="NamingSystem.contact.telecom", description="", type="token"  )
582        public static final String SP_TELECOM = "telecom";
583
584        /**
585         * <b>Fluent Client</b> search parameter constant for <b>telecom</b>
586         * <p>
587         * Description: <b></b><br>
588         * Type: <b>token</b><br>
589         * Path: <b>NamingSystem.contact.telecom</b><br>
590         * </p>
591         */
592        public static final TokenClientParam TELECOM = new TokenClientParam(SP_TELECOM);
593
594        /**
595         * Search parameter constant for <b>replaced-by</b>
596         * <p>
597         * Description: <b></b><br>
598         * Type: <b>reference</b><br>
599         * Path: <b>NamingSystem.replacedBy</b><br>
600         * </p>
601         */
602        @SearchParamDefinition(name="replaced-by", path="NamingSystem.replacedBy", description="", type="reference"  )
603        public static final String SP_REPLACED_BY = "replaced-by";
604
605        /**
606         * <b>Fluent Client</b> search parameter constant for <b>replaced-by</b>
607         * <p>
608         * Description: <b></b><br>
609         * Type: <b>reference</b><br>
610         * Path: <b>NamingSystem.replacedBy</b><br>
611         * </p>
612         */
613        public static final ReferenceClientParam REPLACED_BY = new ReferenceClientParam(SP_REPLACED_BY);
614
615        /**
616         * Search parameter constant for <b>context</b>
617         * <p>
618         * Description: <b></b><br>
619         * Type: <b>token</b><br>
620         * Path: <b>NamingSystem.useContext</b><br>
621         * </p>
622         */
623        @SearchParamDefinition(name="context", path="NamingSystem.useContext", description="", type="token"  )
624        public static final String SP_CONTEXT = "context";
625
626        /**
627         * <b>Fluent Client</b> search parameter constant for <b>context</b>
628         * <p>
629         * Description: <b></b><br>
630         * Type: <b>token</b><br>
631         * Path: <b>NamingSystem.useContext</b><br>
632         * </p>
633         */
634        public static final TokenClientParam CONTEXT = new TokenClientParam(SP_CONTEXT);
635
636
637        /**
638         * Constant for fluent queries to be used to add include statements. Specifies
639         * the path value of "<b>NamingSystem:replaced-by</b>".
640         */
641        public static final Include INCLUDE_REPLACED_BY = new Include("NamingSystem:replaced-by");
642
643
644        @Child(name="name", type=StringDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
645        @Description(
646                shortDefinition="",
647                formalDefinition="The descriptive name of this particular identifier type or code system"
648        )
649        private StringDt myName;
650        
651        @Child(name="status", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=true)   
652        @Description(
653                shortDefinition="status",
654                formalDefinition="Indicates whether the naming system is \"ready for use\" or not."
655        )
656        private BoundCodeDt<ConformanceResourceStatusEnum> myStatus;
657        
658        @Child(name="kind", type=CodeDt.class, order=2, min=1, max=1, summary=false, modifier=false)    
659        @Description(
660                shortDefinition="class",
661                formalDefinition="Indicates the purpose for the naming system - what kinds of things does it make unique?"
662        )
663        private BoundCodeDt<NamingSystemTypeEnum> myKind;
664        
665        @Child(name="publisher", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false)      
666        @Description(
667                shortDefinition="who.witness",
668                formalDefinition="The name of the individual or organization that published the naming system"
669        )
670        private StringDt myPublisher;
671        
672        @Child(name="contact", order=4, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
673        @Description(
674                shortDefinition="",
675                formalDefinition="Contacts to assist a user in finding and communicating with the publisher"
676        )
677        private java.util.List<Contact> myContact;
678        
679        @Child(name="responsible", type=StringDt.class, order=5, min=0, max=1, summary=false, modifier=false)   
680        @Description(
681                shortDefinition="who.witness",
682                formalDefinition="The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision."
683        )
684        private StringDt myResponsible;
685        
686        @Child(name="date", type=DateTimeDt.class, order=6, min=1, max=1, summary=true, modifier=false) 
687        @Description(
688                shortDefinition="when.recorded",
689                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"
690        )
691        private DateTimeDt myDate;
692        
693        @Child(name="type", type=CodeableConceptDt.class, order=7, min=0, max=1, summary=false, modifier=false) 
694        @Description(
695                shortDefinition="",
696                formalDefinition="Categorizes a naming system for easier search by grouping related naming systems."
697        )
698        private BoundCodeableConceptDt<IdentifierTypeCodesEnum> myType;
699        
700        @Child(name="description", type=StringDt.class, order=8, min=0, max=1, summary=false, modifier=false)   
701        @Description(
702                shortDefinition="",
703                formalDefinition="Details about what the namespace identifies including scope, granularity, version labeling, etc."
704        )
705        private StringDt myDescription;
706        
707        @Child(name="useContext", type=CodeableConceptDt.class, order=9, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)  
708        @Description(
709                shortDefinition="",
710                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"
711        )
712        private java.util.List<CodeableConceptDt> myUseContext;
713        
714        @Child(name="usage", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false)        
715        @Description(
716                shortDefinition="",
717                formalDefinition="Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc."
718        )
719        private StringDt myUsage;
720        
721        @Child(name="uniqueId", order=11, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
722        @Description(
723                shortDefinition="",
724                formalDefinition="Indicates how the system may be identified when referenced in electronic exchange"
725        )
726        private java.util.List<UniqueId> myUniqueId;
727        
728        @Child(name="replacedBy", order=12, min=0, max=1, summary=false, modifier=false, type={
729                ca.uhn.fhir.model.dstu2.resource.NamingSystem.class     })
730        @Description(
731                shortDefinition="",
732                formalDefinition="For naming systems that are retired, indicates the naming system that should be used in their place (if any)"
733        )
734        private ResourceReferenceDt myReplacedBy;
735        
736
737        @Override
738        public boolean isEmpty() {
739                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myStatus,  myKind,  myPublisher,  myContact,  myResponsible,  myDate,  myType,  myDescription,  myUseContext,  myUsage,  myUniqueId,  myReplacedBy);
740        }
741        
742        @Override
743        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
744                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myStatus, myKind, myPublisher, myContact, myResponsible, myDate, myType, myDescription, myUseContext, myUsage, myUniqueId, myReplacedBy);
745        }
746
747        /**
748         * Gets the value(s) for <b>name</b> ().
749         * creating it if it does
750         * not exist. Will not return <code>null</code>.
751         *
752     * <p>
753     * <b>Definition:</b>
754     * The descriptive name of this particular identifier type or code system
755     * </p> 
756         */
757        public StringDt getNameElement() {  
758                if (myName == null) {
759                        myName = new StringDt();
760                }
761                return myName;
762        }
763
764        
765        /**
766         * Gets the value(s) for <b>name</b> ().
767         * creating it if it does
768         * not exist. Will not return <code>null</code>.
769         *
770     * <p>
771     * <b>Definition:</b>
772     * The descriptive name of this particular identifier type or code system
773     * </p> 
774         */
775        public String getName() {  
776                return getNameElement().getValue();
777        }
778
779        /**
780         * Sets the value(s) for <b>name</b> ()
781         *
782     * <p>
783     * <b>Definition:</b>
784     * The descriptive name of this particular identifier type or code system
785     * </p> 
786         */
787        public NamingSystem setName(StringDt theValue) {
788                myName = theValue;
789                return this;
790        }
791        
792        
793
794        /**
795         * Sets the value for <b>name</b> ()
796         *
797     * <p>
798     * <b>Definition:</b>
799     * The descriptive name of this particular identifier type or code system
800     * </p> 
801         */
802        public NamingSystem setName( String theString) {
803                myName = new StringDt(theString); 
804                return this; 
805        }
806
807 
808        /**
809         * Gets the value(s) for <b>status</b> (status).
810         * creating it if it does
811         * not exist. Will not return <code>null</code>.
812         *
813     * <p>
814     * <b>Definition:</b>
815     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
816     * </p> 
817         */
818        public BoundCodeDt<ConformanceResourceStatusEnum> getStatusElement() {  
819                if (myStatus == null) {
820                        myStatus = new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER);
821                }
822                return myStatus;
823        }
824
825        
826        /**
827         * Gets the value(s) for <b>status</b> (status).
828         * creating it if it does
829         * not exist. Will not return <code>null</code>.
830         *
831     * <p>
832     * <b>Definition:</b>
833     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
834     * </p> 
835         */
836        public String getStatus() {  
837                return getStatusElement().getValue();
838        }
839
840        /**
841         * Sets the value(s) for <b>status</b> (status)
842         *
843     * <p>
844     * <b>Definition:</b>
845     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
846     * </p> 
847         */
848        public NamingSystem setStatus(BoundCodeDt<ConformanceResourceStatusEnum> theValue) {
849                myStatus = theValue;
850                return this;
851        }
852        
853        
854
855        /**
856         * Sets the value(s) for <b>status</b> (status)
857         *
858     * <p>
859     * <b>Definition:</b>
860     * Indicates whether the naming system is \&quot;ready for use\&quot; or not.
861     * </p> 
862         */
863        public NamingSystem setStatus(ConformanceResourceStatusEnum theValue) {
864                setStatus(new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER, theValue));
865                
866/*
867                getStatusElement().setValueAsEnum(theValue);
868*/
869                return this;
870        }
871
872  
873        /**
874         * Gets the value(s) for <b>kind</b> (class).
875         * creating it if it does
876         * not exist. Will not return <code>null</code>.
877         *
878     * <p>
879     * <b>Definition:</b>
880     * Indicates the purpose for the naming system - what kinds of things does it make unique?
881     * </p> 
882         */
883        public BoundCodeDt<NamingSystemTypeEnum> getKindElement() {  
884                if (myKind == null) {
885                        myKind = new BoundCodeDt<NamingSystemTypeEnum>(NamingSystemTypeEnum.VALUESET_BINDER);
886                }
887                return myKind;
888        }
889
890        
891        /**
892         * Gets the value(s) for <b>kind</b> (class).
893         * creating it if it does
894         * not exist. Will not return <code>null</code>.
895         *
896     * <p>
897     * <b>Definition:</b>
898     * Indicates the purpose for the naming system - what kinds of things does it make unique?
899     * </p> 
900         */
901        public String getKind() {  
902                return getKindElement().getValue();
903        }
904
905        /**
906         * Sets the value(s) for <b>kind</b> (class)
907         *
908     * <p>
909     * <b>Definition:</b>
910     * Indicates the purpose for the naming system - what kinds of things does it make unique?
911     * </p> 
912         */
913        public NamingSystem setKind(BoundCodeDt<NamingSystemTypeEnum> theValue) {
914                myKind = theValue;
915                return this;
916        }
917        
918        
919
920        /**
921         * Sets the value(s) for <b>kind</b> (class)
922         *
923     * <p>
924     * <b>Definition:</b>
925     * Indicates the purpose for the naming system - what kinds of things does it make unique?
926     * </p> 
927         */
928        public NamingSystem setKind(NamingSystemTypeEnum theValue) {
929                setKind(new BoundCodeDt<NamingSystemTypeEnum>(NamingSystemTypeEnum.VALUESET_BINDER, theValue));
930                
931/*
932                getKindElement().setValueAsEnum(theValue);
933*/
934                return this;
935        }
936
937  
938        /**
939         * Gets the value(s) for <b>publisher</b> (who.witness).
940         * creating it if it does
941         * not exist. Will not return <code>null</code>.
942         *
943     * <p>
944     * <b>Definition:</b>
945     * The name of the individual or organization that published the naming system
946     * </p> 
947         */
948        public StringDt getPublisherElement() {  
949                if (myPublisher == null) {
950                        myPublisher = new StringDt();
951                }
952                return myPublisher;
953        }
954
955        
956        /**
957         * Gets the value(s) for <b>publisher</b> (who.witness).
958         * creating it if it does
959         * not exist. Will not return <code>null</code>.
960         *
961     * <p>
962     * <b>Definition:</b>
963     * The name of the individual or organization that published the naming system
964     * </p> 
965         */
966        public String getPublisher() {  
967                return getPublisherElement().getValue();
968        }
969
970        /**
971         * Sets the value(s) for <b>publisher</b> (who.witness)
972         *
973     * <p>
974     * <b>Definition:</b>
975     * The name of the individual or organization that published the naming system
976     * </p> 
977         */
978        public NamingSystem setPublisher(StringDt theValue) {
979                myPublisher = theValue;
980                return this;
981        }
982        
983        
984
985        /**
986         * Sets the value for <b>publisher</b> (who.witness)
987         *
988     * <p>
989     * <b>Definition:</b>
990     * The name of the individual or organization that published the naming system
991     * </p> 
992         */
993        public NamingSystem setPublisher( String theString) {
994                myPublisher = new StringDt(theString); 
995                return this; 
996        }
997
998 
999        /**
1000         * Gets the value(s) for <b>contact</b> ().
1001         * creating it if it does
1002         * not exist. Will not return <code>null</code>.
1003         *
1004     * <p>
1005     * <b>Definition:</b>
1006     * Contacts to assist a user in finding and communicating with the publisher
1007     * </p> 
1008         */
1009        public java.util.List<Contact> getContact() {  
1010                if (myContact == null) {
1011                        myContact = new java.util.ArrayList<Contact>();
1012                }
1013                return myContact;
1014        }
1015
1016        /**
1017         * Sets the value(s) for <b>contact</b> ()
1018         *
1019     * <p>
1020     * <b>Definition:</b>
1021     * Contacts to assist a user in finding and communicating with the publisher
1022     * </p> 
1023         */
1024        public NamingSystem setContact(java.util.List<Contact> theValue) {
1025                myContact = theValue;
1026                return this;
1027        }
1028        
1029        
1030
1031        /**
1032         * Adds and returns a new value for <b>contact</b> ()
1033         *
1034     * <p>
1035     * <b>Definition:</b>
1036     * Contacts to assist a user in finding and communicating with the publisher
1037     * </p> 
1038         */
1039        public Contact addContact() {
1040                Contact newType = new Contact();
1041                getContact().add(newType);
1042                return newType; 
1043        }
1044
1045        /**
1046         * Adds a given new value for <b>contact</b> ()
1047         *
1048         * <p>
1049         * <b>Definition:</b>
1050         * Contacts to assist a user in finding and communicating with the publisher
1051         * </p>
1052         * @param theValue The contact to add (must not be <code>null</code>)
1053         */
1054        public NamingSystem addContact(Contact theValue) {
1055                if (theValue == null) {
1056                        throw new NullPointerException("theValue must not be null");
1057                }
1058                getContact().add(theValue);
1059                return this;
1060        }
1061
1062        /**
1063         * Gets the first repetition for <b>contact</b> (),
1064         * creating it if it does not already exist.
1065         *
1066     * <p>
1067     * <b>Definition:</b>
1068     * Contacts to assist a user in finding and communicating with the publisher
1069     * </p> 
1070         */
1071        public Contact getContactFirstRep() {
1072                if (getContact().isEmpty()) {
1073                        return addContact();
1074                }
1075                return getContact().get(0); 
1076        }
1077  
1078        /**
1079         * Gets the value(s) for <b>responsible</b> (who.witness).
1080         * creating it if it does
1081         * not exist. Will not return <code>null</code>.
1082         *
1083     * <p>
1084     * <b>Definition:</b>
1085     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1086     * </p> 
1087         */
1088        public StringDt getResponsibleElement() {  
1089                if (myResponsible == null) {
1090                        myResponsible = new StringDt();
1091                }
1092                return myResponsible;
1093        }
1094
1095        
1096        /**
1097         * Gets the value(s) for <b>responsible</b> (who.witness).
1098         * creating it if it does
1099         * not exist. Will not return <code>null</code>.
1100         *
1101     * <p>
1102     * <b>Definition:</b>
1103     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1104     * </p> 
1105         */
1106        public String getResponsible() {  
1107                return getResponsibleElement().getValue();
1108        }
1109
1110        /**
1111         * Sets the value(s) for <b>responsible</b> (who.witness)
1112         *
1113     * <p>
1114     * <b>Definition:</b>
1115     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1116     * </p> 
1117         */
1118        public NamingSystem setResponsible(StringDt theValue) {
1119                myResponsible = theValue;
1120                return this;
1121        }
1122        
1123        
1124
1125        /**
1126         * Sets the value for <b>responsible</b> (who.witness)
1127         *
1128     * <p>
1129     * <b>Definition:</b>
1130     * The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision.
1131     * </p> 
1132         */
1133        public NamingSystem setResponsible( String theString) {
1134                myResponsible = new StringDt(theString); 
1135                return this; 
1136        }
1137
1138 
1139        /**
1140         * Gets the value(s) for <b>date</b> (when.recorded).
1141         * creating it if it does
1142         * not exist. Will not return <code>null</code>.
1143         *
1144     * <p>
1145     * <b>Definition:</b>
1146     * 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
1147     * </p> 
1148         */
1149        public DateTimeDt getDateElement() {  
1150                if (myDate == null) {
1151                        myDate = new DateTimeDt();
1152                }
1153                return myDate;
1154        }
1155
1156        
1157        /**
1158         * Gets the value(s) for <b>date</b> (when.recorded).
1159         * creating it if it does
1160         * not exist. Will not return <code>null</code>.
1161         *
1162     * <p>
1163     * <b>Definition:</b>
1164     * 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
1165     * </p> 
1166         */
1167        public Date getDate() {  
1168                return getDateElement().getValue();
1169        }
1170
1171        /**
1172         * Sets the value(s) for <b>date</b> (when.recorded)
1173         *
1174     * <p>
1175     * <b>Definition:</b>
1176     * 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
1177     * </p> 
1178         */
1179        public NamingSystem setDate(DateTimeDt theValue) {
1180                myDate = theValue;
1181                return this;
1182        }
1183        
1184        
1185
1186        /**
1187         * Sets the value for <b>date</b> (when.recorded)
1188         *
1189     * <p>
1190     * <b>Definition:</b>
1191     * 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
1192     * </p> 
1193         */
1194        public NamingSystem setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1195                myDate = new DateTimeDt(theDate, thePrecision); 
1196                return this; 
1197        }
1198
1199        /**
1200         * Sets the value for <b>date</b> (when.recorded)
1201         *
1202     * <p>
1203     * <b>Definition:</b>
1204     * 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
1205     * </p> 
1206         */
1207        public NamingSystem setDateWithSecondsPrecision( Date theDate) {
1208                myDate = new DateTimeDt(theDate); 
1209                return this; 
1210        }
1211
1212 
1213        /**
1214         * Gets the value(s) for <b>type</b> ().
1215         * creating it if it does
1216         * not exist. Will not return <code>null</code>.
1217         *
1218     * <p>
1219     * <b>Definition:</b>
1220     * Categorizes a naming system for easier search by grouping related naming systems.
1221     * </p> 
1222         */
1223        public BoundCodeableConceptDt<IdentifierTypeCodesEnum> getType() {  
1224                if (myType == null) {
1225                        myType = new BoundCodeableConceptDt<IdentifierTypeCodesEnum>(IdentifierTypeCodesEnum.VALUESET_BINDER);
1226                }
1227                return myType;
1228        }
1229
1230        /**
1231         * Sets the value(s) for <b>type</b> ()
1232         *
1233     * <p>
1234     * <b>Definition:</b>
1235     * Categorizes a naming system for easier search by grouping related naming systems.
1236     * </p> 
1237         */
1238        public NamingSystem setType(BoundCodeableConceptDt<IdentifierTypeCodesEnum> theValue) {
1239                myType = theValue;
1240                return this;
1241        }
1242        
1243        
1244
1245        /**
1246         * Sets the value(s) for <b>type</b> ()
1247         *
1248     * <p>
1249     * <b>Definition:</b>
1250     * Categorizes a naming system for easier search by grouping related naming systems.
1251     * </p> 
1252         */
1253        public NamingSystem setType(IdentifierTypeCodesEnum theValue) {
1254                setType(new BoundCodeableConceptDt<IdentifierTypeCodesEnum>(IdentifierTypeCodesEnum.VALUESET_BINDER, theValue));
1255                
1256/*
1257                getType().setValueAsEnum(theValue);
1258*/
1259                return this;
1260        }
1261
1262  
1263        /**
1264         * Gets the value(s) for <b>description</b> ().
1265         * creating it if it does
1266         * not exist. Will not return <code>null</code>.
1267         *
1268     * <p>
1269     * <b>Definition:</b>
1270     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1271     * </p> 
1272         */
1273        public StringDt getDescriptionElement() {  
1274                if (myDescription == null) {
1275                        myDescription = new StringDt();
1276                }
1277                return myDescription;
1278        }
1279
1280        
1281        /**
1282         * Gets the value(s) for <b>description</b> ().
1283         * creating it if it does
1284         * not exist. Will not return <code>null</code>.
1285         *
1286     * <p>
1287     * <b>Definition:</b>
1288     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1289     * </p> 
1290         */
1291        public String getDescription() {  
1292                return getDescriptionElement().getValue();
1293        }
1294
1295        /**
1296         * Sets the value(s) for <b>description</b> ()
1297         *
1298     * <p>
1299     * <b>Definition:</b>
1300     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1301     * </p> 
1302         */
1303        public NamingSystem setDescription(StringDt theValue) {
1304                myDescription = theValue;
1305                return this;
1306        }
1307        
1308        
1309
1310        /**
1311         * Sets the value for <b>description</b> ()
1312         *
1313     * <p>
1314     * <b>Definition:</b>
1315     * Details about what the namespace identifies including scope, granularity, version labeling, etc.
1316     * </p> 
1317         */
1318        public NamingSystem setDescription( String theString) {
1319                myDescription = new StringDt(theString); 
1320                return this; 
1321        }
1322
1323 
1324        /**
1325         * Gets the value(s) for <b>useContext</b> ().
1326         * creating it if it does
1327         * not exist. Will not return <code>null</code>.
1328         *
1329     * <p>
1330     * <b>Definition:</b>
1331     * 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
1332     * </p> 
1333         */
1334        public java.util.List<CodeableConceptDt> getUseContext() {  
1335                if (myUseContext == null) {
1336                        myUseContext = new java.util.ArrayList<CodeableConceptDt>();
1337                }
1338                return myUseContext;
1339        }
1340
1341        /**
1342         * Sets the value(s) for <b>useContext</b> ()
1343         *
1344     * <p>
1345     * <b>Definition:</b>
1346     * 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
1347     * </p> 
1348         */
1349        public NamingSystem setUseContext(java.util.List<CodeableConceptDt> theValue) {
1350                myUseContext = theValue;
1351                return this;
1352        }
1353        
1354        
1355
1356        /**
1357         * Adds and returns a new value for <b>useContext</b> ()
1358         *
1359     * <p>
1360     * <b>Definition:</b>
1361     * 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
1362     * </p> 
1363         */
1364        public CodeableConceptDt addUseContext() {
1365                CodeableConceptDt newType = new CodeableConceptDt();
1366                getUseContext().add(newType);
1367                return newType; 
1368        }
1369
1370        /**
1371         * Adds a given new value for <b>useContext</b> ()
1372         *
1373         * <p>
1374         * <b>Definition:</b>
1375         * 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
1376         * </p>
1377         * @param theValue The useContext to add (must not be <code>null</code>)
1378         */
1379        public NamingSystem addUseContext(CodeableConceptDt theValue) {
1380                if (theValue == null) {
1381                        throw new NullPointerException("theValue must not be null");
1382                }
1383                getUseContext().add(theValue);
1384                return this;
1385        }
1386
1387        /**
1388         * Gets the first repetition for <b>useContext</b> (),
1389         * creating it if it does not already exist.
1390         *
1391     * <p>
1392     * <b>Definition:</b>
1393     * 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
1394     * </p> 
1395         */
1396        public CodeableConceptDt getUseContextFirstRep() {
1397                if (getUseContext().isEmpty()) {
1398                        return addUseContext();
1399                }
1400                return getUseContext().get(0); 
1401        }
1402  
1403        /**
1404         * Gets the value(s) for <b>usage</b> ().
1405         * creating it if it does
1406         * not exist. Will not return <code>null</code>.
1407         *
1408     * <p>
1409     * <b>Definition:</b>
1410     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1411     * </p> 
1412         */
1413        public StringDt getUsageElement() {  
1414                if (myUsage == null) {
1415                        myUsage = new StringDt();
1416                }
1417                return myUsage;
1418        }
1419
1420        
1421        /**
1422         * Gets the value(s) for <b>usage</b> ().
1423         * creating it if it does
1424         * not exist. Will not return <code>null</code>.
1425         *
1426     * <p>
1427     * <b>Definition:</b>
1428     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1429     * </p> 
1430         */
1431        public String getUsage() {  
1432                return getUsageElement().getValue();
1433        }
1434
1435        /**
1436         * Sets the value(s) for <b>usage</b> ()
1437         *
1438     * <p>
1439     * <b>Definition:</b>
1440     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1441     * </p> 
1442         */
1443        public NamingSystem setUsage(StringDt theValue) {
1444                myUsage = theValue;
1445                return this;
1446        }
1447        
1448        
1449
1450        /**
1451         * Sets the value for <b>usage</b> ()
1452         *
1453     * <p>
1454     * <b>Definition:</b>
1455     * Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc.
1456     * </p> 
1457         */
1458        public NamingSystem setUsage( String theString) {
1459                myUsage = new StringDt(theString); 
1460                return this; 
1461        }
1462
1463 
1464        /**
1465         * Gets the value(s) for <b>uniqueId</b> ().
1466         * creating it if it does
1467         * not exist. Will not return <code>null</code>.
1468         *
1469     * <p>
1470     * <b>Definition:</b>
1471     * Indicates how the system may be identified when referenced in electronic exchange
1472     * </p> 
1473         */
1474        public java.util.List<UniqueId> getUniqueId() {  
1475                if (myUniqueId == null) {
1476                        myUniqueId = new java.util.ArrayList<UniqueId>();
1477                }
1478                return myUniqueId;
1479        }
1480
1481        /**
1482         * Sets the value(s) for <b>uniqueId</b> ()
1483         *
1484     * <p>
1485     * <b>Definition:</b>
1486     * Indicates how the system may be identified when referenced in electronic exchange
1487     * </p> 
1488         */
1489        public NamingSystem setUniqueId(java.util.List<UniqueId> theValue) {
1490                myUniqueId = theValue;
1491                return this;
1492        }
1493        
1494        
1495
1496        /**
1497         * Adds and returns a new value for <b>uniqueId</b> ()
1498         *
1499     * <p>
1500     * <b>Definition:</b>
1501     * Indicates how the system may be identified when referenced in electronic exchange
1502     * </p> 
1503         */
1504        public UniqueId addUniqueId() {
1505                UniqueId newType = new UniqueId();
1506                getUniqueId().add(newType);
1507                return newType; 
1508        }
1509
1510        /**
1511         * Adds a given new value for <b>uniqueId</b> ()
1512         *
1513         * <p>
1514         * <b>Definition:</b>
1515         * Indicates how the system may be identified when referenced in electronic exchange
1516         * </p>
1517         * @param theValue The uniqueId to add (must not be <code>null</code>)
1518         */
1519        public NamingSystem addUniqueId(UniqueId theValue) {
1520                if (theValue == null) {
1521                        throw new NullPointerException("theValue must not be null");
1522                }
1523                getUniqueId().add(theValue);
1524                return this;
1525        }
1526
1527        /**
1528         * Gets the first repetition for <b>uniqueId</b> (),
1529         * creating it if it does not already exist.
1530         *
1531     * <p>
1532     * <b>Definition:</b>
1533     * Indicates how the system may be identified when referenced in electronic exchange
1534     * </p> 
1535         */
1536        public UniqueId getUniqueIdFirstRep() {
1537                if (getUniqueId().isEmpty()) {
1538                        return addUniqueId();
1539                }
1540                return getUniqueId().get(0); 
1541        }
1542  
1543        /**
1544         * Gets the value(s) for <b>replacedBy</b> ().
1545         * creating it if it does
1546         * not exist. Will not return <code>null</code>.
1547         *
1548     * <p>
1549     * <b>Definition:</b>
1550     * For naming systems that are retired, indicates the naming system that should be used in their place (if any)
1551     * </p> 
1552         */
1553        public ResourceReferenceDt getReplacedBy() {  
1554                if (myReplacedBy == null) {
1555                        myReplacedBy = new ResourceReferenceDt();
1556                }
1557                return myReplacedBy;
1558        }
1559
1560        /**
1561         * Sets the value(s) for <b>replacedBy</b> ()
1562         *
1563     * <p>
1564     * <b>Definition:</b>
1565     * For naming systems that are retired, indicates the naming system that should be used in their place (if any)
1566     * </p> 
1567         */
1568        public NamingSystem setReplacedBy(ResourceReferenceDt theValue) {
1569                myReplacedBy = theValue;
1570                return this;
1571        }
1572        
1573        
1574
1575  
1576        /**
1577         * Block class for child element: <b>NamingSystem.contact</b> ()
1578         *
1579     * <p>
1580     * <b>Definition:</b>
1581     * Contacts to assist a user in finding and communicating with the publisher
1582     * </p> 
1583         */
1584        @Block()        
1585        public static class Contact 
1586            extends  BaseIdentifiableElement        implements IResourceBlock {
1587        
1588        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=true, modifier=false)   
1589        @Description(
1590                shortDefinition="",
1591                formalDefinition="The name of an individual to contact regarding the naming system"
1592        )
1593        private StringDt myName;
1594        
1595        @Child(name="telecom", type=ContactPointDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)        
1596        @Description(
1597                shortDefinition="",
1598                formalDefinition="Contact details for individual (if a name was provided) or the publisher"
1599        )
1600        private java.util.List<ContactPointDt> myTelecom;
1601        
1602
1603        @Override
1604        public boolean isEmpty() {
1605                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myTelecom);
1606        }
1607        
1608        @Override
1609        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1610                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myTelecom);
1611        }
1612
1613        /**
1614         * Gets the value(s) for <b>name</b> ().
1615         * creating it if it does
1616         * not exist. Will not return <code>null</code>.
1617         *
1618     * <p>
1619     * <b>Definition:</b>
1620     * The name of an individual to contact regarding the naming system
1621     * </p> 
1622         */
1623        public StringDt getNameElement() {  
1624                if (myName == null) {
1625                        myName = new StringDt();
1626                }
1627                return myName;
1628        }
1629
1630        
1631        /**
1632         * Gets the value(s) for <b>name</b> ().
1633         * creating it if it does
1634         * not exist. Will not return <code>null</code>.
1635         *
1636     * <p>
1637     * <b>Definition:</b>
1638     * The name of an individual to contact regarding the naming system
1639     * </p> 
1640         */
1641        public String getName() {  
1642                return getNameElement().getValue();
1643        }
1644
1645        /**
1646         * Sets the value(s) for <b>name</b> ()
1647         *
1648     * <p>
1649     * <b>Definition:</b>
1650     * The name of an individual to contact regarding the naming system
1651     * </p> 
1652         */
1653        public Contact setName(StringDt theValue) {
1654                myName = theValue;
1655                return this;
1656        }
1657        
1658        
1659
1660        /**
1661         * Sets the value for <b>name</b> ()
1662         *
1663     * <p>
1664     * <b>Definition:</b>
1665     * The name of an individual to contact regarding the naming system
1666     * </p> 
1667         */
1668        public Contact setName( String theString) {
1669                myName = new StringDt(theString); 
1670                return this; 
1671        }
1672
1673 
1674        /**
1675         * Gets the value(s) for <b>telecom</b> ().
1676         * creating it if it does
1677         * not exist. Will not return <code>null</code>.
1678         *
1679     * <p>
1680     * <b>Definition:</b>
1681     * Contact details for individual (if a name was provided) or the publisher
1682     * </p> 
1683         */
1684        public java.util.List<ContactPointDt> getTelecom() {  
1685                if (myTelecom == null) {
1686                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1687                }
1688                return myTelecom;
1689        }
1690
1691        /**
1692         * Sets the value(s) for <b>telecom</b> ()
1693         *
1694     * <p>
1695     * <b>Definition:</b>
1696     * Contact details for individual (if a name was provided) or the publisher
1697     * </p> 
1698         */
1699        public Contact setTelecom(java.util.List<ContactPointDt> theValue) {
1700                myTelecom = theValue;
1701                return this;
1702        }
1703        
1704        
1705
1706        /**
1707         * Adds and returns a new value for <b>telecom</b> ()
1708         *
1709     * <p>
1710     * <b>Definition:</b>
1711     * Contact details for individual (if a name was provided) or the publisher
1712     * </p> 
1713         */
1714        public ContactPointDt addTelecom() {
1715                ContactPointDt newType = new ContactPointDt();
1716                getTelecom().add(newType);
1717                return newType; 
1718        }
1719
1720        /**
1721         * Adds a given new value for <b>telecom</b> ()
1722         *
1723         * <p>
1724         * <b>Definition:</b>
1725         * Contact details for individual (if a name was provided) or the publisher
1726         * </p>
1727         * @param theValue The telecom to add (must not be <code>null</code>)
1728         */
1729        public Contact addTelecom(ContactPointDt theValue) {
1730                if (theValue == null) {
1731                        throw new NullPointerException("theValue must not be null");
1732                }
1733                getTelecom().add(theValue);
1734                return this;
1735        }
1736
1737        /**
1738         * Gets the first repetition for <b>telecom</b> (),
1739         * creating it if it does not already exist.
1740         *
1741     * <p>
1742     * <b>Definition:</b>
1743     * Contact details for individual (if a name was provided) or the publisher
1744     * </p> 
1745         */
1746        public ContactPointDt getTelecomFirstRep() {
1747                if (getTelecom().isEmpty()) {
1748                        return addTelecom();
1749                }
1750                return getTelecom().get(0); 
1751        }
1752  
1753
1754
1755        }
1756
1757
1758        /**
1759         * Block class for child element: <b>NamingSystem.uniqueId</b> ()
1760         *
1761     * <p>
1762     * <b>Definition:</b>
1763     * Indicates how the system may be identified when referenced in electronic exchange
1764     * </p> 
1765         */
1766        @Block()        
1767        public static class UniqueId 
1768            extends  BaseIdentifiableElement        implements IResourceBlock {
1769        
1770        @Child(name="type", type=CodeDt.class, order=0, min=1, max=1, summary=false, modifier=false)    
1771        @Description(
1772                shortDefinition="",
1773                formalDefinition="Identifies the unique identifier scheme used for this particular identifier."
1774        )
1775        private BoundCodeDt<NamingSystemIdentifierTypeEnum> myType;
1776        
1777        @Child(name="value", type=StringDt.class, order=1, min=1, max=1, summary=false, modifier=false) 
1778        @Description(
1779                shortDefinition="id",
1780                formalDefinition="The string that should be sent over the wire to identify the code system or identifier system"
1781        )
1782        private StringDt myValue;
1783        
1784        @Child(name="preferred", type=BooleanDt.class, order=2, min=0, max=1, summary=false, modifier=false)    
1785        @Description(
1786                shortDefinition="",
1787                formalDefinition="Indicates whether this identifier is the \"preferred\" identifier of this type."
1788        )
1789        private BooleanDt myPreferred;
1790        
1791        @Child(name="period", type=PeriodDt.class, order=3, min=0, max=1, summary=false, modifier=false)        
1792        @Description(
1793                shortDefinition="",
1794                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"
1795        )
1796        private PeriodDt myPeriod;
1797        
1798
1799        @Override
1800        public boolean isEmpty() {
1801                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myValue,  myPreferred,  myPeriod);
1802        }
1803        
1804        @Override
1805        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1806                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myValue, myPreferred, myPeriod);
1807        }
1808
1809        /**
1810         * Gets the value(s) for <b>type</b> ().
1811         * creating it if it does
1812         * not exist. Will not return <code>null</code>.
1813         *
1814     * <p>
1815     * <b>Definition:</b>
1816     * Identifies the unique identifier scheme used for this particular identifier.
1817     * </p> 
1818         */
1819        public BoundCodeDt<NamingSystemIdentifierTypeEnum> getTypeElement() {  
1820                if (myType == null) {
1821                        myType = new BoundCodeDt<NamingSystemIdentifierTypeEnum>(NamingSystemIdentifierTypeEnum.VALUESET_BINDER);
1822                }
1823                return myType;
1824        }
1825
1826        
1827        /**
1828         * Gets the value(s) for <b>type</b> ().
1829         * creating it if it does
1830         * not exist. Will not return <code>null</code>.
1831         *
1832     * <p>
1833     * <b>Definition:</b>
1834     * Identifies the unique identifier scheme used for this particular identifier.
1835     * </p> 
1836         */
1837        public String getType() {  
1838                return getTypeElement().getValue();
1839        }
1840
1841        /**
1842         * Sets the value(s) for <b>type</b> ()
1843         *
1844     * <p>
1845     * <b>Definition:</b>
1846     * Identifies the unique identifier scheme used for this particular identifier.
1847     * </p> 
1848         */
1849        public UniqueId setType(BoundCodeDt<NamingSystemIdentifierTypeEnum> theValue) {
1850                myType = theValue;
1851                return this;
1852        }
1853        
1854        
1855
1856        /**
1857         * Sets the value(s) for <b>type</b> ()
1858         *
1859     * <p>
1860     * <b>Definition:</b>
1861     * Identifies the unique identifier scheme used for this particular identifier.
1862     * </p> 
1863         */
1864        public UniqueId setType(NamingSystemIdentifierTypeEnum theValue) {
1865                setType(new BoundCodeDt<NamingSystemIdentifierTypeEnum>(NamingSystemIdentifierTypeEnum.VALUESET_BINDER, theValue));
1866                
1867/*
1868                getTypeElement().setValueAsEnum(theValue);
1869*/
1870                return this;
1871        }
1872
1873  
1874        /**
1875         * Gets the value(s) for <b>value</b> (id).
1876         * creating it if it does
1877         * not exist. Will not return <code>null</code>.
1878         *
1879     * <p>
1880     * <b>Definition:</b>
1881     * The string that should be sent over the wire to identify the code system or identifier system
1882     * </p> 
1883         */
1884        public StringDt getValueElement() {  
1885                if (myValue == null) {
1886                        myValue = new StringDt();
1887                }
1888                return myValue;
1889        }
1890
1891        
1892        /**
1893         * Gets the value(s) for <b>value</b> (id).
1894         * creating it if it does
1895         * not exist. Will not return <code>null</code>.
1896         *
1897     * <p>
1898     * <b>Definition:</b>
1899     * The string that should be sent over the wire to identify the code system or identifier system
1900     * </p> 
1901         */
1902        public String getValue() {  
1903                return getValueElement().getValue();
1904        }
1905
1906        /**
1907         * Sets the value(s) for <b>value</b> (id)
1908         *
1909     * <p>
1910     * <b>Definition:</b>
1911     * The string that should be sent over the wire to identify the code system or identifier system
1912     * </p> 
1913         */
1914        public UniqueId setValue(StringDt theValue) {
1915                myValue = theValue;
1916                return this;
1917        }
1918        
1919        
1920
1921        /**
1922         * Sets the value for <b>value</b> (id)
1923         *
1924     * <p>
1925     * <b>Definition:</b>
1926     * The string that should be sent over the wire to identify the code system or identifier system
1927     * </p> 
1928         */
1929        public UniqueId setValue( String theString) {
1930                myValue = new StringDt(theString); 
1931                return this; 
1932        }
1933
1934 
1935        /**
1936         * Gets the value(s) for <b>preferred</b> ().
1937         * creating it if it does
1938         * not exist. Will not return <code>null</code>.
1939         *
1940     * <p>
1941     * <b>Definition:</b>
1942     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1943     * </p> 
1944         */
1945        public BooleanDt getPreferredElement() {  
1946                if (myPreferred == null) {
1947                        myPreferred = new BooleanDt();
1948                }
1949                return myPreferred;
1950        }
1951
1952        
1953        /**
1954         * Gets the value(s) for <b>preferred</b> ().
1955         * creating it if it does
1956         * not exist. Will not return <code>null</code>.
1957         *
1958     * <p>
1959     * <b>Definition:</b>
1960     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1961     * </p> 
1962         */
1963        public Boolean getPreferred() {  
1964                return getPreferredElement().getValue();
1965        }
1966
1967        /**
1968         * Sets the value(s) for <b>preferred</b> ()
1969         *
1970     * <p>
1971     * <b>Definition:</b>
1972     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1973     * </p> 
1974         */
1975        public UniqueId setPreferred(BooleanDt theValue) {
1976                myPreferred = theValue;
1977                return this;
1978        }
1979        
1980        
1981
1982        /**
1983         * Sets the value for <b>preferred</b> ()
1984         *
1985     * <p>
1986     * <b>Definition:</b>
1987     * Indicates whether this identifier is the \&quot;preferred\&quot; identifier of this type.
1988     * </p> 
1989         */
1990        public UniqueId setPreferred( boolean theBoolean) {
1991                myPreferred = new BooleanDt(theBoolean); 
1992                return this; 
1993        }
1994
1995 
1996        /**
1997         * Gets the value(s) for <b>period</b> ().
1998         * creating it if it does
1999         * not exist. Will not return <code>null</code>.
2000         *
2001     * <p>
2002     * <b>Definition:</b>
2003     * 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
2004     * </p> 
2005         */
2006        public PeriodDt getPeriod() {  
2007                if (myPeriod == null) {
2008                        myPeriod = new PeriodDt();
2009                }
2010                return myPeriod;
2011        }
2012
2013        /**
2014         * Sets the value(s) for <b>period</b> ()
2015         *
2016     * <p>
2017     * <b>Definition:</b>
2018     * 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
2019     * </p> 
2020         */
2021        public UniqueId setPeriod(PeriodDt theValue) {
2022                myPeriod = theValue;
2023                return this;
2024        }
2025        
2026        
2027
2028  
2029
2030
2031        }
2032
2033
2034
2035
2036    @Override
2037    public String getResourceName() {
2038        return "NamingSystem";
2039    }
2040    
2041    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2042        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2043    }
2044
2045
2046}