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