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>ConceptMap</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * A statement of relationships from one set of concepts to one or more other concepts - either code systems or data elements, or classes in class models
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/ConceptMap">http://hl7.org/fhir/profiles/ConceptMap</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="ConceptMap", profile="http://hl7.org/fhir/profiles/ConceptMap", id="conceptmap")
339public class ConceptMap extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>url</b>
344         * <p>
345         * Description: <b>The URL of the concept map</b><br>
346         * Type: <b>uri</b><br>
347         * Path: <b>ConceptMap.url</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="url", path="ConceptMap.url", description="The URL of the concept map", type="uri"  )
351        public static final String SP_URL = "url";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>url</b>
355         * <p>
356         * Description: <b>The URL of the concept map</b><br>
357         * Type: <b>uri</b><br>
358         * Path: <b>ConceptMap.url</b><br>
359         * </p>
360         */
361        public static final UriClientParam URL = new UriClientParam(SP_URL);
362
363        /**
364         * Search parameter constant for <b>identifier</b>
365         * <p>
366         * Description: <b>Additional identifier for the concept map</b><br>
367         * Type: <b>token</b><br>
368         * Path: <b>ConceptMap.identifier</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="identifier", path="ConceptMap.identifier", description="Additional identifier for the concept map", type="token"  )
372        public static final String SP_IDENTIFIER = "identifier";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
376         * <p>
377         * Description: <b>Additional identifier for the concept map</b><br>
378         * Type: <b>token</b><br>
379         * Path: <b>ConceptMap.identifier</b><br>
380         * </p>
381         */
382        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
383
384        /**
385         * Search parameter constant for <b>version</b>
386         * <p>
387         * Description: <b>The version identifier of the concept map</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>ConceptMap.version</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="version", path="ConceptMap.version", description="The version identifier of the concept map", type="token"  )
393        public static final String SP_VERSION = "version";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>version</b>
397         * <p>
398         * Description: <b>The version identifier of the concept map</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>ConceptMap.version</b><br>
401         * </p>
402         */
403        public static final TokenClientParam VERSION = new TokenClientParam(SP_VERSION);
404
405        /**
406         * Search parameter constant for <b>name</b>
407         * <p>
408         * Description: <b>Name of the concept map</b><br>
409         * Type: <b>string</b><br>
410         * Path: <b>ConceptMap.name</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="name", path="ConceptMap.name", description="Name of the concept map", type="string"  )
414        public static final String SP_NAME = "name";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>name</b>
418         * <p>
419         * Description: <b>Name of the concept map</b><br>
420         * Type: <b>string</b><br>
421         * Path: <b>ConceptMap.name</b><br>
422         * </p>
423         */
424        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
425
426        /**
427         * Search parameter constant for <b>publisher</b>
428         * <p>
429         * Description: <b>Name of the publisher of the concept map</b><br>
430         * Type: <b>string</b><br>
431         * Path: <b>ConceptMap.publisher</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="publisher", path="ConceptMap.publisher", description="Name of the publisher of the concept map", type="string"  )
435        public static final String SP_PUBLISHER = "publisher";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>publisher</b>
439         * <p>
440         * Description: <b>Name of the publisher of the concept map</b><br>
441         * Type: <b>string</b><br>
442         * Path: <b>ConceptMap.publisher</b><br>
443         * </p>
444         */
445        public static final StringClientParam PUBLISHER = new StringClientParam(SP_PUBLISHER);
446
447        /**
448         * Search parameter constant for <b>description</b>
449         * <p>
450         * Description: <b>Text search in the description of the concept map</b><br>
451         * Type: <b>string</b><br>
452         * Path: <b>ConceptMap.description</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="description", path="ConceptMap.description", description="Text search in the description of the concept map", type="string"  )
456        public static final String SP_DESCRIPTION = "description";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>description</b>
460         * <p>
461         * Description: <b>Text search in the description of the concept map</b><br>
462         * Type: <b>string</b><br>
463         * Path: <b>ConceptMap.description</b><br>
464         * </p>
465         */
466        public static final StringClientParam DESCRIPTION = new StringClientParam(SP_DESCRIPTION);
467
468        /**
469         * Search parameter constant for <b>status</b>
470         * <p>
471         * Description: <b>Status of the concept map</b><br>
472         * Type: <b>token</b><br>
473         * Path: <b>ConceptMap.status</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="status", path="ConceptMap.status", description="Status of the concept map", type="token"  )
477        public static final String SP_STATUS = "status";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>status</b>
481         * <p>
482         * Description: <b>Status of the concept map</b><br>
483         * Type: <b>token</b><br>
484         * Path: <b>ConceptMap.status</b><br>
485         * </p>
486         */
487        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
488
489        /**
490         * Search parameter constant for <b>date</b>
491         * <p>
492         * Description: <b>The concept map publication date</b><br>
493         * Type: <b>date</b><br>
494         * Path: <b>ConceptMap.date</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="date", path="ConceptMap.date", description="The concept map publication date", type="date"  )
498        public static final String SP_DATE = "date";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>date</b>
502         * <p>
503         * Description: <b>The concept map publication date</b><br>
504         * Type: <b>date</b><br>
505         * Path: <b>ConceptMap.date</b><br>
506         * </p>
507         */
508        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
509
510        /**
511         * Search parameter constant for <b>source</b>
512         * <p>
513         * Description: <b></b><br>
514         * Type: <b>reference</b><br>
515         * Path: <b>ConceptMap.sourceReference</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="source", path="ConceptMap.sourceReference", description="", type="reference"  )
519        public static final String SP_SOURCE = "source";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>source</b>
523         * <p>
524         * Description: <b></b><br>
525         * Type: <b>reference</b><br>
526         * Path: <b>ConceptMap.sourceReference</b><br>
527         * </p>
528         */
529        public static final ReferenceClientParam SOURCE = new ReferenceClientParam(SP_SOURCE);
530
531        /**
532         * Search parameter constant for <b>sourceuri</b>
533         * <p>
534         * Description: <b></b><br>
535         * Type: <b>reference</b><br>
536         * Path: <b>ConceptMap.sourceUri</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="sourceuri", path="ConceptMap.sourceUri", description="", type="reference"  )
540        public static final String SP_SOURCEURI = "sourceuri";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>sourceuri</b>
544         * <p>
545         * Description: <b></b><br>
546         * Type: <b>reference</b><br>
547         * Path: <b>ConceptMap.sourceUri</b><br>
548         * </p>
549         */
550        public static final ReferenceClientParam SOURCEURI = new ReferenceClientParam(SP_SOURCEURI);
551
552        /**
553         * Search parameter constant for <b>target</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>reference</b><br>
557         * Path: <b>ConceptMap.target[x]</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="target", path="ConceptMap.target[x]", description="", type="reference"  )
561        public static final String SP_TARGET = "target";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>target</b>
565         * <p>
566         * Description: <b></b><br>
567         * Type: <b>reference</b><br>
568         * Path: <b>ConceptMap.target[x]</b><br>
569         * </p>
570         */
571        public static final ReferenceClientParam TARGET = new ReferenceClientParam(SP_TARGET);
572
573        /**
574         * Search parameter constant for <b>sourcesystem</b>
575         * <p>
576         * Description: <b></b><br>
577         * Type: <b>uri</b><br>
578         * Path: <b>ConceptMap.element.codeSystem</b><br>
579         * </p>
580         */
581        @SearchParamDefinition(name="sourcesystem", path="ConceptMap.element.codeSystem", description="", type="uri"  )
582        public static final String SP_SOURCESYSTEM = "sourcesystem";
583
584        /**
585         * <b>Fluent Client</b> search parameter constant for <b>sourcesystem</b>
586         * <p>
587         * Description: <b></b><br>
588         * Type: <b>uri</b><br>
589         * Path: <b>ConceptMap.element.codeSystem</b><br>
590         * </p>
591         */
592        public static final UriClientParam SOURCESYSTEM = new UriClientParam(SP_SOURCESYSTEM);
593
594        /**
595         * Search parameter constant for <b>targetsystem</b>
596         * <p>
597         * Description: <b></b><br>
598         * Type: <b>uri</b><br>
599         * Path: <b>ConceptMap.element.target.codeSystem</b><br>
600         * </p>
601         */
602        @SearchParamDefinition(name="targetsystem", path="ConceptMap.element.target.codeSystem", description="", type="uri"  )
603        public static final String SP_TARGETSYSTEM = "targetsystem";
604
605        /**
606         * <b>Fluent Client</b> search parameter constant for <b>targetsystem</b>
607         * <p>
608         * Description: <b></b><br>
609         * Type: <b>uri</b><br>
610         * Path: <b>ConceptMap.element.target.codeSystem</b><br>
611         * </p>
612         */
613        public static final UriClientParam TARGETSYSTEM = new UriClientParam(SP_TARGETSYSTEM);
614
615        /**
616         * Search parameter constant for <b>sourcecode</b>
617         * <p>
618         * Description: <b></b><br>
619         * Type: <b>token</b><br>
620         * Path: <b>ConceptMap.element.code</b><br>
621         * </p>
622         */
623        @SearchParamDefinition(name="sourcecode", path="ConceptMap.element.code", description="", type="token"  )
624        public static final String SP_SOURCECODE = "sourcecode";
625
626        /**
627         * <b>Fluent Client</b> search parameter constant for <b>sourcecode</b>
628         * <p>
629         * Description: <b></b><br>
630         * Type: <b>token</b><br>
631         * Path: <b>ConceptMap.element.code</b><br>
632         * </p>
633         */
634        public static final TokenClientParam SOURCECODE = new TokenClientParam(SP_SOURCECODE);
635
636        /**
637         * Search parameter constant for <b>targetcode</b>
638         * <p>
639         * Description: <b></b><br>
640         * Type: <b>token</b><br>
641         * Path: <b>ConceptMap.element.target.code</b><br>
642         * </p>
643         */
644        @SearchParamDefinition(name="targetcode", path="ConceptMap.element.target.code", description="", type="token"  )
645        public static final String SP_TARGETCODE = "targetcode";
646
647        /**
648         * <b>Fluent Client</b> search parameter constant for <b>targetcode</b>
649         * <p>
650         * Description: <b></b><br>
651         * Type: <b>token</b><br>
652         * Path: <b>ConceptMap.element.target.code</b><br>
653         * </p>
654         */
655        public static final TokenClientParam TARGETCODE = new TokenClientParam(SP_TARGETCODE);
656
657        /**
658         * Search parameter constant for <b>dependson</b>
659         * <p>
660         * Description: <b></b><br>
661         * Type: <b>uri</b><br>
662         * Path: <b>ConceptMap.element.target.dependsOn.element</b><br>
663         * </p>
664         */
665        @SearchParamDefinition(name="dependson", path="ConceptMap.element.target.dependsOn.element", description="", type="uri"  )
666        public static final String SP_DEPENDSON = "dependson";
667
668        /**
669         * <b>Fluent Client</b> search parameter constant for <b>dependson</b>
670         * <p>
671         * Description: <b></b><br>
672         * Type: <b>uri</b><br>
673         * Path: <b>ConceptMap.element.target.dependsOn.element</b><br>
674         * </p>
675         */
676        public static final UriClientParam DEPENDSON = new UriClientParam(SP_DEPENDSON);
677
678        /**
679         * Search parameter constant for <b>product</b>
680         * <p>
681         * Description: <b></b><br>
682         * Type: <b>uri</b><br>
683         * Path: <b>ConceptMap.element.target.product.element</b><br>
684         * </p>
685         */
686        @SearchParamDefinition(name="product", path="ConceptMap.element.target.product.element", description="", type="uri"  )
687        public static final String SP_PRODUCT = "product";
688
689        /**
690         * <b>Fluent Client</b> search parameter constant for <b>product</b>
691         * <p>
692         * Description: <b></b><br>
693         * Type: <b>uri</b><br>
694         * Path: <b>ConceptMap.element.target.product.element</b><br>
695         * </p>
696         */
697        public static final UriClientParam PRODUCT = new UriClientParam(SP_PRODUCT);
698
699        /**
700         * Search parameter constant for <b>context</b>
701         * <p>
702         * Description: <b>A use context assigned to the concept map</b><br>
703         * Type: <b>token</b><br>
704         * Path: <b>ConceptMap.useContext</b><br>
705         * </p>
706         */
707        @SearchParamDefinition(name="context", path="ConceptMap.useContext", description="A use context assigned to the concept map", type="token"  )
708        public static final String SP_CONTEXT = "context";
709
710        /**
711         * <b>Fluent Client</b> search parameter constant for <b>context</b>
712         * <p>
713         * Description: <b>A use context assigned to the concept map</b><br>
714         * Type: <b>token</b><br>
715         * Path: <b>ConceptMap.useContext</b><br>
716         * </p>
717         */
718        public static final TokenClientParam CONTEXT = new TokenClientParam(SP_CONTEXT);
719
720
721        /**
722         * Constant for fluent queries to be used to add include statements. Specifies
723         * the path value of "<b>ConceptMap:source</b>".
724         */
725        public static final Include INCLUDE_SOURCE = new Include("ConceptMap:source");
726
727        /**
728         * Constant for fluent queries to be used to add include statements. Specifies
729         * the path value of "<b>ConceptMap:sourceuri</b>".
730         */
731        public static final Include INCLUDE_SOURCEURI = new Include("ConceptMap:sourceuri");
732
733        /**
734         * Constant for fluent queries to be used to add include statements. Specifies
735         * the path value of "<b>ConceptMap:target</b>".
736         */
737        public static final Include INCLUDE_TARGET = new Include("ConceptMap:target");
738
739
740        @Child(name="url", type=UriDt.class, order=0, min=0, max=1, summary=true, modifier=false)       
741        @Description(
742                shortDefinition="",
743                formalDefinition="An absolute URL that is used to identify this concept map 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 concept map is (or will be) published"
744        )
745        private UriDt myUrl;
746        
747        @Child(name="identifier", type=IdentifierDt.class, order=1, min=0, max=1, summary=true, modifier=false) 
748        @Description(
749                shortDefinition="",
750                formalDefinition="Formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance."
751        )
752        private IdentifierDt myIdentifier;
753        
754        @Child(name="version", type=StringDt.class, order=2, min=0, max=1, summary=true, modifier=false)        
755        @Description(
756                shortDefinition="",
757                formalDefinition="The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp"
758        )
759        private StringDt myVersion;
760        
761        @Child(name="name", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false)   
762        @Description(
763                shortDefinition="",
764                formalDefinition="A free text natural language name describing the concept map"
765        )
766        private StringDt myName;
767        
768        @Child(name="status", type=CodeDt.class, order=4, min=1, max=1, summary=true, modifier=false)   
769        @Description(
770                shortDefinition="",
771                formalDefinition="The status of the concept map"
772        )
773        private BoundCodeDt<ConformanceResourceStatusEnum> myStatus;
774        
775        @Child(name="experimental", type=BooleanDt.class, order=5, min=0, max=1, summary=true, modifier=false)  
776        @Description(
777                shortDefinition="",
778                formalDefinition="This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage"
779        )
780        private BooleanDt myExperimental;
781        
782        @Child(name="publisher", type=StringDt.class, order=6, min=0, max=1, summary=true, modifier=false)      
783        @Description(
784                shortDefinition="",
785                formalDefinition="The name of the individual or organization that published the concept map"
786        )
787        private StringDt myPublisher;
788        
789        @Child(name="contact", order=7, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
790        @Description(
791                shortDefinition="",
792                formalDefinition="Contacts to assist a user in finding and communicating with the publisher"
793        )
794        private java.util.List<Contact> myContact;
795        
796        @Child(name="date", type=DateTimeDt.class, order=8, min=0, max=1, summary=true, modifier=false) 
797        @Description(
798                shortDefinition="",
799                formalDefinition="The date this version of the concept map 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 concept map changes"
800        )
801        private DateTimeDt myDate;
802        
803        @Child(name="description", type=StringDt.class, order=9, min=0, max=1, summary=true, modifier=false)    
804        @Description(
805                shortDefinition="",
806                formalDefinition="A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc."
807        )
808        private StringDt myDescription;
809        
810        @Child(name="useContext", type=CodeableConceptDt.class, order=10, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false) 
811        @Description(
812                shortDefinition="",
813                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 concept map instances."
814        )
815        private java.util.List<CodeableConceptDt> myUseContext;
816        
817        @Child(name="requirements", type=StringDt.class, order=11, min=0, max=1, summary=false, modifier=false) 
818        @Description(
819                shortDefinition="",
820                formalDefinition="Explains why this concept map is needed and why it has been constrained as it has"
821        )
822        private StringDt myRequirements;
823        
824        @Child(name="copyright", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false)    
825        @Description(
826                shortDefinition="",
827                formalDefinition="A copyright statement relating to the concept map and/or its contents"
828        )
829        private StringDt myCopyright;
830        
831        @Child(name="source", order=13, min=1, max=1, summary=true, modifier=false, type={
832                UriDt.class,            ValueSet.class,                 StructureDefinition.class       })
833        @Description(
834                shortDefinition="",
835                formalDefinition="The source value set that specifies the concepts that are being mapped"
836        )
837        private IDatatype mySource;
838        
839        @Child(name="target", order=14, min=1, max=1, summary=true, modifier=false, type={
840                UriDt.class,            ValueSet.class,                 StructureDefinition.class       })
841        @Description(
842                shortDefinition="",
843                formalDefinition="The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made"
844        )
845        private IDatatype myTarget;
846        
847        @Child(name="element", order=15, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
848        @Description(
849                shortDefinition="",
850                formalDefinition="Mappings for an individual concept in the source to one or more concepts in the target"
851        )
852        private java.util.List<Element> myElement;
853        
854
855        @Override
856        public boolean isEmpty() {
857                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myUrl,  myIdentifier,  myVersion,  myName,  myStatus,  myExperimental,  myPublisher,  myContact,  myDate,  myDescription,  myUseContext,  myRequirements,  myCopyright,  mySource,  myTarget,  myElement);
858        }
859        
860        @Override
861        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
862                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myUrl, myIdentifier, myVersion, myName, myStatus, myExperimental, myPublisher, myContact, myDate, myDescription, myUseContext, myRequirements, myCopyright, mySource, myTarget, myElement);
863        }
864
865        /**
866         * Gets the value(s) for <b>url</b> ().
867         * creating it if it does
868         * not exist. Will not return <code>null</code>.
869         *
870     * <p>
871     * <b>Definition:</b>
872     * An absolute URL that is used to identify this concept map 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 concept map is (or will be) published
873     * </p> 
874         */
875        public UriDt getUrlElement() {  
876                if (myUrl == null) {
877                        myUrl = new UriDt();
878                }
879                return myUrl;
880        }
881
882        
883        /**
884         * Gets the value(s) for <b>url</b> ().
885         * creating it if it does
886         * not exist. Will not return <code>null</code>.
887         *
888     * <p>
889     * <b>Definition:</b>
890     * An absolute URL that is used to identify this concept map 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 concept map is (or will be) published
891     * </p> 
892         */
893        public String getUrl() {  
894                return getUrlElement().getValue();
895        }
896
897        /**
898         * Sets the value(s) for <b>url</b> ()
899         *
900     * <p>
901     * <b>Definition:</b>
902     * An absolute URL that is used to identify this concept map 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 concept map is (or will be) published
903     * </p> 
904         */
905        public ConceptMap setUrl(UriDt theValue) {
906                myUrl = theValue;
907                return this;
908        }
909        
910        
911
912        /**
913         * Sets the value for <b>url</b> ()
914         *
915     * <p>
916     * <b>Definition:</b>
917     * An absolute URL that is used to identify this concept map 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 concept map is (or will be) published
918     * </p> 
919         */
920        public ConceptMap setUrl( String theUri) {
921                myUrl = new UriDt(theUri); 
922                return this; 
923        }
924
925 
926        /**
927         * Gets the value(s) for <b>identifier</b> ().
928         * creating it if it does
929         * not exist. Will not return <code>null</code>.
930         *
931     * <p>
932     * <b>Definition:</b>
933     * Formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.
934     * </p> 
935         */
936        public IdentifierDt getIdentifier() {  
937                if (myIdentifier == null) {
938                        myIdentifier = new IdentifierDt();
939                }
940                return myIdentifier;
941        }
942
943        /**
944         * Sets the value(s) for <b>identifier</b> ()
945         *
946     * <p>
947     * <b>Definition:</b>
948     * Formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance.
949     * </p> 
950         */
951        public ConceptMap setIdentifier(IdentifierDt theValue) {
952                myIdentifier = theValue;
953                return this;
954        }
955        
956        
957
958  
959        /**
960         * Gets the value(s) for <b>version</b> ().
961         * creating it if it does
962         * not exist. Will not return <code>null</code>.
963         *
964     * <p>
965     * <b>Definition:</b>
966     * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp
967     * </p> 
968         */
969        public StringDt getVersionElement() {  
970                if (myVersion == null) {
971                        myVersion = new StringDt();
972                }
973                return myVersion;
974        }
975
976        
977        /**
978         * Gets the value(s) for <b>version</b> ().
979         * creating it if it does
980         * not exist. Will not return <code>null</code>.
981         *
982     * <p>
983     * <b>Definition:</b>
984     * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp
985     * </p> 
986         */
987        public String getVersion() {  
988                return getVersionElement().getValue();
989        }
990
991        /**
992         * Sets the value(s) for <b>version</b> ()
993         *
994     * <p>
995     * <b>Definition:</b>
996     * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp
997     * </p> 
998         */
999        public ConceptMap setVersion(StringDt theValue) {
1000                myVersion = theValue;
1001                return this;
1002        }
1003        
1004        
1005
1006        /**
1007         * Sets the value for <b>version</b> ()
1008         *
1009     * <p>
1010     * <b>Definition:</b>
1011     * The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp
1012     * </p> 
1013         */
1014        public ConceptMap setVersion( String theString) {
1015                myVersion = new StringDt(theString); 
1016                return this; 
1017        }
1018
1019 
1020        /**
1021         * Gets the value(s) for <b>name</b> ().
1022         * creating it if it does
1023         * not exist. Will not return <code>null</code>.
1024         *
1025     * <p>
1026     * <b>Definition:</b>
1027     * A free text natural language name describing the concept map
1028     * </p> 
1029         */
1030        public StringDt getNameElement() {  
1031                if (myName == null) {
1032                        myName = new StringDt();
1033                }
1034                return myName;
1035        }
1036
1037        
1038        /**
1039         * Gets the value(s) for <b>name</b> ().
1040         * creating it if it does
1041         * not exist. Will not return <code>null</code>.
1042         *
1043     * <p>
1044     * <b>Definition:</b>
1045     * A free text natural language name describing the concept map
1046     * </p> 
1047         */
1048        public String getName() {  
1049                return getNameElement().getValue();
1050        }
1051
1052        /**
1053         * Sets the value(s) for <b>name</b> ()
1054         *
1055     * <p>
1056     * <b>Definition:</b>
1057     * A free text natural language name describing the concept map
1058     * </p> 
1059         */
1060        public ConceptMap setName(StringDt theValue) {
1061                myName = theValue;
1062                return this;
1063        }
1064        
1065        
1066
1067        /**
1068         * Sets the value for <b>name</b> ()
1069         *
1070     * <p>
1071     * <b>Definition:</b>
1072     * A free text natural language name describing the concept map
1073     * </p> 
1074         */
1075        public ConceptMap setName( String theString) {
1076                myName = new StringDt(theString); 
1077                return this; 
1078        }
1079
1080 
1081        /**
1082         * Gets the value(s) for <b>status</b> ().
1083         * creating it if it does
1084         * not exist. Will not return <code>null</code>.
1085         *
1086     * <p>
1087     * <b>Definition:</b>
1088     * The status of the concept map
1089     * </p> 
1090         */
1091        public BoundCodeDt<ConformanceResourceStatusEnum> getStatusElement() {  
1092                if (myStatus == null) {
1093                        myStatus = new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER);
1094                }
1095                return myStatus;
1096        }
1097
1098        
1099        /**
1100         * Gets the value(s) for <b>status</b> ().
1101         * creating it if it does
1102         * not exist. Will not return <code>null</code>.
1103         *
1104     * <p>
1105     * <b>Definition:</b>
1106     * The status of the concept map
1107     * </p> 
1108         */
1109        public String getStatus() {  
1110                return getStatusElement().getValue();
1111        }
1112
1113        /**
1114         * Sets the value(s) for <b>status</b> ()
1115         *
1116     * <p>
1117     * <b>Definition:</b>
1118     * The status of the concept map
1119     * </p> 
1120         */
1121        public ConceptMap setStatus(BoundCodeDt<ConformanceResourceStatusEnum> theValue) {
1122                myStatus = theValue;
1123                return this;
1124        }
1125        
1126        
1127
1128        /**
1129         * Sets the value(s) for <b>status</b> ()
1130         *
1131     * <p>
1132     * <b>Definition:</b>
1133     * The status of the concept map
1134     * </p> 
1135         */
1136        public ConceptMap setStatus(ConformanceResourceStatusEnum theValue) {
1137                setStatus(new BoundCodeDt<ConformanceResourceStatusEnum>(ConformanceResourceStatusEnum.VALUESET_BINDER, theValue));
1138                
1139/*
1140                getStatusElement().setValueAsEnum(theValue);
1141*/
1142                return this;
1143        }
1144
1145  
1146        /**
1147         * Gets the value(s) for <b>experimental</b> ().
1148         * creating it if it does
1149         * not exist. Will not return <code>null</code>.
1150         *
1151     * <p>
1152     * <b>Definition:</b>
1153     * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
1154     * </p> 
1155         */
1156        public BooleanDt getExperimentalElement() {  
1157                if (myExperimental == null) {
1158                        myExperimental = new BooleanDt();
1159                }
1160                return myExperimental;
1161        }
1162
1163        
1164        /**
1165         * Gets the value(s) for <b>experimental</b> ().
1166         * creating it if it does
1167         * not exist. Will not return <code>null</code>.
1168         *
1169     * <p>
1170     * <b>Definition:</b>
1171     * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
1172     * </p> 
1173         */
1174        public Boolean getExperimental() {  
1175                return getExperimentalElement().getValue();
1176        }
1177
1178        /**
1179         * Sets the value(s) for <b>experimental</b> ()
1180         *
1181     * <p>
1182     * <b>Definition:</b>
1183     * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
1184     * </p> 
1185         */
1186        public ConceptMap setExperimental(BooleanDt theValue) {
1187                myExperimental = theValue;
1188                return this;
1189        }
1190        
1191        
1192
1193        /**
1194         * Sets the value for <b>experimental</b> ()
1195         *
1196     * <p>
1197     * <b>Definition:</b>
1198     * This ConceptMap was authored for testing purposes (or education/evaluation/marketing), and is not intended to be used for genuine usage
1199     * </p> 
1200         */
1201        public ConceptMap setExperimental( boolean theBoolean) {
1202                myExperimental = new BooleanDt(theBoolean); 
1203                return this; 
1204        }
1205
1206 
1207        /**
1208         * Gets the value(s) for <b>publisher</b> ().
1209         * creating it if it does
1210         * not exist. Will not return <code>null</code>.
1211         *
1212     * <p>
1213     * <b>Definition:</b>
1214     * The name of the individual or organization that published the concept map
1215     * </p> 
1216         */
1217        public StringDt getPublisherElement() {  
1218                if (myPublisher == null) {
1219                        myPublisher = new StringDt();
1220                }
1221                return myPublisher;
1222        }
1223
1224        
1225        /**
1226         * Gets the value(s) for <b>publisher</b> ().
1227         * creating it if it does
1228         * not exist. Will not return <code>null</code>.
1229         *
1230     * <p>
1231     * <b>Definition:</b>
1232     * The name of the individual or organization that published the concept map
1233     * </p> 
1234         */
1235        public String getPublisher() {  
1236                return getPublisherElement().getValue();
1237        }
1238
1239        /**
1240         * Sets the value(s) for <b>publisher</b> ()
1241         *
1242     * <p>
1243     * <b>Definition:</b>
1244     * The name of the individual or organization that published the concept map
1245     * </p> 
1246         */
1247        public ConceptMap setPublisher(StringDt theValue) {
1248                myPublisher = theValue;
1249                return this;
1250        }
1251        
1252        
1253
1254        /**
1255         * Sets the value for <b>publisher</b> ()
1256         *
1257     * <p>
1258     * <b>Definition:</b>
1259     * The name of the individual or organization that published the concept map
1260     * </p> 
1261         */
1262        public ConceptMap setPublisher( String theString) {
1263                myPublisher = new StringDt(theString); 
1264                return this; 
1265        }
1266
1267 
1268        /**
1269         * Gets the value(s) for <b>contact</b> ().
1270         * creating it if it does
1271         * not exist. Will not return <code>null</code>.
1272         *
1273     * <p>
1274     * <b>Definition:</b>
1275     * Contacts to assist a user in finding and communicating with the publisher
1276     * </p> 
1277         */
1278        public java.util.List<Contact> getContact() {  
1279                if (myContact == null) {
1280                        myContact = new java.util.ArrayList<Contact>();
1281                }
1282                return myContact;
1283        }
1284
1285        /**
1286         * Sets the value(s) for <b>contact</b> ()
1287         *
1288     * <p>
1289     * <b>Definition:</b>
1290     * Contacts to assist a user in finding and communicating with the publisher
1291     * </p> 
1292         */
1293        public ConceptMap setContact(java.util.List<Contact> theValue) {
1294                myContact = theValue;
1295                return this;
1296        }
1297        
1298        
1299
1300        /**
1301         * Adds and returns a new value for <b>contact</b> ()
1302         *
1303     * <p>
1304     * <b>Definition:</b>
1305     * Contacts to assist a user in finding and communicating with the publisher
1306     * </p> 
1307         */
1308        public Contact addContact() {
1309                Contact newType = new Contact();
1310                getContact().add(newType);
1311                return newType; 
1312        }
1313
1314        /**
1315         * Adds a given new value for <b>contact</b> ()
1316         *
1317         * <p>
1318         * <b>Definition:</b>
1319         * Contacts to assist a user in finding and communicating with the publisher
1320         * </p>
1321         * @param theValue The contact to add (must not be <code>null</code>)
1322         */
1323        public ConceptMap addContact(Contact theValue) {
1324                if (theValue == null) {
1325                        throw new NullPointerException("theValue must not be null");
1326                }
1327                getContact().add(theValue);
1328                return this;
1329        }
1330
1331        /**
1332         * Gets the first repetition for <b>contact</b> (),
1333         * creating it if it does not already exist.
1334         *
1335     * <p>
1336     * <b>Definition:</b>
1337     * Contacts to assist a user in finding and communicating with the publisher
1338     * </p> 
1339         */
1340        public Contact getContactFirstRep() {
1341                if (getContact().isEmpty()) {
1342                        return addContact();
1343                }
1344                return getContact().get(0); 
1345        }
1346  
1347        /**
1348         * Gets the value(s) for <b>date</b> ().
1349         * creating it if it does
1350         * not exist. Will not return <code>null</code>.
1351         *
1352     * <p>
1353     * <b>Definition:</b>
1354     * The date this version of the concept map 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 concept map changes
1355     * </p> 
1356         */
1357        public DateTimeDt getDateElement() {  
1358                if (myDate == null) {
1359                        myDate = new DateTimeDt();
1360                }
1361                return myDate;
1362        }
1363
1364        
1365        /**
1366         * Gets the value(s) for <b>date</b> ().
1367         * creating it if it does
1368         * not exist. Will not return <code>null</code>.
1369         *
1370     * <p>
1371     * <b>Definition:</b>
1372     * The date this version of the concept map 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 concept map changes
1373     * </p> 
1374         */
1375        public Date getDate() {  
1376                return getDateElement().getValue();
1377        }
1378
1379        /**
1380         * Sets the value(s) for <b>date</b> ()
1381         *
1382     * <p>
1383     * <b>Definition:</b>
1384     * The date this version of the concept map 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 concept map changes
1385     * </p> 
1386         */
1387        public ConceptMap setDate(DateTimeDt theValue) {
1388                myDate = theValue;
1389                return this;
1390        }
1391        
1392        
1393
1394        /**
1395         * Sets the value for <b>date</b> ()
1396         *
1397     * <p>
1398     * <b>Definition:</b>
1399     * The date this version of the concept map 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 concept map changes
1400     * </p> 
1401         */
1402        public ConceptMap setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1403                myDate = new DateTimeDt(theDate, thePrecision); 
1404                return this; 
1405        }
1406
1407        /**
1408         * Sets the value for <b>date</b> ()
1409         *
1410     * <p>
1411     * <b>Definition:</b>
1412     * The date this version of the concept map 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 concept map changes
1413     * </p> 
1414         */
1415        public ConceptMap setDateWithSecondsPrecision( Date theDate) {
1416                myDate = new DateTimeDt(theDate); 
1417                return this; 
1418        }
1419
1420 
1421        /**
1422         * Gets the value(s) for <b>description</b> ().
1423         * creating it if it does
1424         * not exist. Will not return <code>null</code>.
1425         *
1426     * <p>
1427     * <b>Definition:</b>
1428     * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.
1429     * </p> 
1430         */
1431        public StringDt getDescriptionElement() {  
1432                if (myDescription == null) {
1433                        myDescription = new StringDt();
1434                }
1435                return myDescription;
1436        }
1437
1438        
1439        /**
1440         * Gets the value(s) for <b>description</b> ().
1441         * creating it if it does
1442         * not exist. Will not return <code>null</code>.
1443         *
1444     * <p>
1445     * <b>Definition:</b>
1446     * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.
1447     * </p> 
1448         */
1449        public String getDescription() {  
1450                return getDescriptionElement().getValue();
1451        }
1452
1453        /**
1454         * Sets the value(s) for <b>description</b> ()
1455         *
1456     * <p>
1457     * <b>Definition:</b>
1458     * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.
1459     * </p> 
1460         */
1461        public ConceptMap setDescription(StringDt theValue) {
1462                myDescription = theValue;
1463                return this;
1464        }
1465        
1466        
1467
1468        /**
1469         * Sets the value for <b>description</b> ()
1470         *
1471     * <p>
1472     * <b>Definition:</b>
1473     * A free text natural language description of the use of the concept map - reason for definition, conditions of use, etc.
1474     * </p> 
1475         */
1476        public ConceptMap setDescription( String theString) {
1477                myDescription = new StringDt(theString); 
1478                return this; 
1479        }
1480
1481 
1482        /**
1483         * Gets the value(s) for <b>useContext</b> ().
1484         * creating it if it does
1485         * not exist. Will not return <code>null</code>.
1486         *
1487     * <p>
1488     * <b>Definition:</b>
1489     * 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 concept map instances.
1490     * </p> 
1491         */
1492        public java.util.List<CodeableConceptDt> getUseContext() {  
1493                if (myUseContext == null) {
1494                        myUseContext = new java.util.ArrayList<CodeableConceptDt>();
1495                }
1496                return myUseContext;
1497        }
1498
1499        /**
1500         * Sets the value(s) for <b>useContext</b> ()
1501         *
1502     * <p>
1503     * <b>Definition:</b>
1504     * 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 concept map instances.
1505     * </p> 
1506         */
1507        public ConceptMap setUseContext(java.util.List<CodeableConceptDt> theValue) {
1508                myUseContext = theValue;
1509                return this;
1510        }
1511        
1512        
1513
1514        /**
1515         * Adds and returns a new value for <b>useContext</b> ()
1516         *
1517     * <p>
1518     * <b>Definition:</b>
1519     * 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 concept map instances.
1520     * </p> 
1521         */
1522        public CodeableConceptDt addUseContext() {
1523                CodeableConceptDt newType = new CodeableConceptDt();
1524                getUseContext().add(newType);
1525                return newType; 
1526        }
1527
1528        /**
1529         * Adds a given new value for <b>useContext</b> ()
1530         *
1531         * <p>
1532         * <b>Definition:</b>
1533         * 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 concept map instances.
1534         * </p>
1535         * @param theValue The useContext to add (must not be <code>null</code>)
1536         */
1537        public ConceptMap addUseContext(CodeableConceptDt theValue) {
1538                if (theValue == null) {
1539                        throw new NullPointerException("theValue must not be null");
1540                }
1541                getUseContext().add(theValue);
1542                return this;
1543        }
1544
1545        /**
1546         * Gets the first repetition for <b>useContext</b> (),
1547         * creating it if it does not already exist.
1548         *
1549     * <p>
1550     * <b>Definition:</b>
1551     * 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 concept map instances.
1552     * </p> 
1553         */
1554        public CodeableConceptDt getUseContextFirstRep() {
1555                if (getUseContext().isEmpty()) {
1556                        return addUseContext();
1557                }
1558                return getUseContext().get(0); 
1559        }
1560  
1561        /**
1562         * Gets the value(s) for <b>requirements</b> ().
1563         * creating it if it does
1564         * not exist. Will not return <code>null</code>.
1565         *
1566     * <p>
1567     * <b>Definition:</b>
1568     * Explains why this concept map is needed and why it has been constrained as it has
1569     * </p> 
1570         */
1571        public StringDt getRequirementsElement() {  
1572                if (myRequirements == null) {
1573                        myRequirements = new StringDt();
1574                }
1575                return myRequirements;
1576        }
1577
1578        
1579        /**
1580         * Gets the value(s) for <b>requirements</b> ().
1581         * creating it if it does
1582         * not exist. Will not return <code>null</code>.
1583         *
1584     * <p>
1585     * <b>Definition:</b>
1586     * Explains why this concept map is needed and why it has been constrained as it has
1587     * </p> 
1588         */
1589        public String getRequirements() {  
1590                return getRequirementsElement().getValue();
1591        }
1592
1593        /**
1594         * Sets the value(s) for <b>requirements</b> ()
1595         *
1596     * <p>
1597     * <b>Definition:</b>
1598     * Explains why this concept map is needed and why it has been constrained as it has
1599     * </p> 
1600         */
1601        public ConceptMap setRequirements(StringDt theValue) {
1602                myRequirements = theValue;
1603                return this;
1604        }
1605        
1606        
1607
1608        /**
1609         * Sets the value for <b>requirements</b> ()
1610         *
1611     * <p>
1612     * <b>Definition:</b>
1613     * Explains why this concept map is needed and why it has been constrained as it has
1614     * </p> 
1615         */
1616        public ConceptMap setRequirements( String theString) {
1617                myRequirements = new StringDt(theString); 
1618                return this; 
1619        }
1620
1621 
1622        /**
1623         * Gets the value(s) for <b>copyright</b> ().
1624         * creating it if it does
1625         * not exist. Will not return <code>null</code>.
1626         *
1627     * <p>
1628     * <b>Definition:</b>
1629     * A copyright statement relating to the concept map and/or its contents
1630     * </p> 
1631         */
1632        public StringDt getCopyrightElement() {  
1633                if (myCopyright == null) {
1634                        myCopyright = new StringDt();
1635                }
1636                return myCopyright;
1637        }
1638
1639        
1640        /**
1641         * Gets the value(s) for <b>copyright</b> ().
1642         * creating it if it does
1643         * not exist. Will not return <code>null</code>.
1644         *
1645     * <p>
1646     * <b>Definition:</b>
1647     * A copyright statement relating to the concept map and/or its contents
1648     * </p> 
1649         */
1650        public String getCopyright() {  
1651                return getCopyrightElement().getValue();
1652        }
1653
1654        /**
1655         * Sets the value(s) for <b>copyright</b> ()
1656         *
1657     * <p>
1658     * <b>Definition:</b>
1659     * A copyright statement relating to the concept map and/or its contents
1660     * </p> 
1661         */
1662        public ConceptMap setCopyright(StringDt theValue) {
1663                myCopyright = theValue;
1664                return this;
1665        }
1666        
1667        
1668
1669        /**
1670         * Sets the value for <b>copyright</b> ()
1671         *
1672     * <p>
1673     * <b>Definition:</b>
1674     * A copyright statement relating to the concept map and/or its contents
1675     * </p> 
1676         */
1677        public ConceptMap setCopyright( String theString) {
1678                myCopyright = new StringDt(theString); 
1679                return this; 
1680        }
1681
1682 
1683        /**
1684         * Gets the value(s) for <b>source[x]</b> ().
1685         * creating it if it does
1686         * not exist. Will not return <code>null</code>.
1687         *
1688     * <p>
1689     * <b>Definition:</b>
1690     * The source value set that specifies the concepts that are being mapped
1691     * </p> 
1692         */
1693        public IDatatype getSource() {  
1694                return mySource;
1695        }
1696
1697        /**
1698         * Sets the value(s) for <b>source[x]</b> ()
1699         *
1700     * <p>
1701     * <b>Definition:</b>
1702     * The source value set that specifies the concepts that are being mapped
1703     * </p> 
1704         */
1705        public ConceptMap setSource(IDatatype theValue) {
1706                mySource = theValue;
1707                return this;
1708        }
1709        
1710        
1711
1712  
1713        /**
1714         * Gets the value(s) for <b>target[x]</b> ().
1715         * creating it if it does
1716         * not exist. Will not return <code>null</code>.
1717         *
1718     * <p>
1719     * <b>Definition:</b>
1720     * The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made
1721     * </p> 
1722         */
1723        public IDatatype getTarget() {  
1724                return myTarget;
1725        }
1726
1727        /**
1728         * Sets the value(s) for <b>target[x]</b> ()
1729         *
1730     * <p>
1731     * <b>Definition:</b>
1732     * The target value set provides context to the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made
1733     * </p> 
1734         */
1735        public ConceptMap setTarget(IDatatype theValue) {
1736                myTarget = theValue;
1737                return this;
1738        }
1739        
1740        
1741
1742  
1743        /**
1744         * Gets the value(s) for <b>element</b> ().
1745         * creating it if it does
1746         * not exist. Will not return <code>null</code>.
1747         *
1748     * <p>
1749     * <b>Definition:</b>
1750     * Mappings for an individual concept in the source to one or more concepts in the target
1751     * </p> 
1752         */
1753        public java.util.List<Element> getElement() {  
1754                if (myElement == null) {
1755                        myElement = new java.util.ArrayList<Element>();
1756                }
1757                return myElement;
1758        }
1759
1760        /**
1761         * Sets the value(s) for <b>element</b> ()
1762         *
1763     * <p>
1764     * <b>Definition:</b>
1765     * Mappings for an individual concept in the source to one or more concepts in the target
1766     * </p> 
1767         */
1768        public ConceptMap setElement(java.util.List<Element> theValue) {
1769                myElement = theValue;
1770                return this;
1771        }
1772        
1773        
1774
1775        /**
1776         * Adds and returns a new value for <b>element</b> ()
1777         *
1778     * <p>
1779     * <b>Definition:</b>
1780     * Mappings for an individual concept in the source to one or more concepts in the target
1781     * </p> 
1782         */
1783        public Element addElement() {
1784                Element newType = new Element();
1785                getElement().add(newType);
1786                return newType; 
1787        }
1788
1789        /**
1790         * Adds a given new value for <b>element</b> ()
1791         *
1792         * <p>
1793         * <b>Definition:</b>
1794         * Mappings for an individual concept in the source to one or more concepts in the target
1795         * </p>
1796         * @param theValue The element to add (must not be <code>null</code>)
1797         */
1798        public ConceptMap addElement(Element theValue) {
1799                if (theValue == null) {
1800                        throw new NullPointerException("theValue must not be null");
1801                }
1802                getElement().add(theValue);
1803                return this;
1804        }
1805
1806        /**
1807         * Gets the first repetition for <b>element</b> (),
1808         * creating it if it does not already exist.
1809         *
1810     * <p>
1811     * <b>Definition:</b>
1812     * Mappings for an individual concept in the source to one or more concepts in the target
1813     * </p> 
1814         */
1815        public Element getElementFirstRep() {
1816                if (getElement().isEmpty()) {
1817                        return addElement();
1818                }
1819                return getElement().get(0); 
1820        }
1821  
1822        /**
1823         * Block class for child element: <b>ConceptMap.contact</b> ()
1824         *
1825     * <p>
1826     * <b>Definition:</b>
1827     * Contacts to assist a user in finding and communicating with the publisher
1828     * </p> 
1829         */
1830        @Block()        
1831        public static class Contact 
1832            extends  BaseIdentifiableElement        implements IResourceBlock {
1833        
1834        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=true, modifier=false)   
1835        @Description(
1836                shortDefinition="",
1837                formalDefinition="The name of an individual to contact regarding the concept map"
1838        )
1839        private StringDt myName;
1840        
1841        @Child(name="telecom", type=ContactPointDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)        
1842        @Description(
1843                shortDefinition="",
1844                formalDefinition="Contact details for individual (if a name was provided) or the publisher"
1845        )
1846        private java.util.List<ContactPointDt> myTelecom;
1847        
1848
1849        @Override
1850        public boolean isEmpty() {
1851                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myTelecom);
1852        }
1853        
1854        @Override
1855        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1856                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myTelecom);
1857        }
1858
1859        /**
1860         * Gets the value(s) for <b>name</b> ().
1861         * creating it if it does
1862         * not exist. Will not return <code>null</code>.
1863         *
1864     * <p>
1865     * <b>Definition:</b>
1866     * The name of an individual to contact regarding the concept map
1867     * </p> 
1868         */
1869        public StringDt getNameElement() {  
1870                if (myName == null) {
1871                        myName = new StringDt();
1872                }
1873                return myName;
1874        }
1875
1876        
1877        /**
1878         * Gets the value(s) for <b>name</b> ().
1879         * creating it if it does
1880         * not exist. Will not return <code>null</code>.
1881         *
1882     * <p>
1883     * <b>Definition:</b>
1884     * The name of an individual to contact regarding the concept map
1885     * </p> 
1886         */
1887        public String getName() {  
1888                return getNameElement().getValue();
1889        }
1890
1891        /**
1892         * Sets the value(s) for <b>name</b> ()
1893         *
1894     * <p>
1895     * <b>Definition:</b>
1896     * The name of an individual to contact regarding the concept map
1897     * </p> 
1898         */
1899        public Contact setName(StringDt theValue) {
1900                myName = theValue;
1901                return this;
1902        }
1903        
1904        
1905
1906        /**
1907         * Sets the value for <b>name</b> ()
1908         *
1909     * <p>
1910     * <b>Definition:</b>
1911     * The name of an individual to contact regarding the concept map
1912     * </p> 
1913         */
1914        public Contact setName( String theString) {
1915                myName = new StringDt(theString); 
1916                return this; 
1917        }
1918
1919 
1920        /**
1921         * Gets the value(s) for <b>telecom</b> ().
1922         * creating it if it does
1923         * not exist. Will not return <code>null</code>.
1924         *
1925     * <p>
1926     * <b>Definition:</b>
1927     * Contact details for individual (if a name was provided) or the publisher
1928     * </p> 
1929         */
1930        public java.util.List<ContactPointDt> getTelecom() {  
1931                if (myTelecom == null) {
1932                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1933                }
1934                return myTelecom;
1935        }
1936
1937        /**
1938         * Sets the value(s) for <b>telecom</b> ()
1939         *
1940     * <p>
1941     * <b>Definition:</b>
1942     * Contact details for individual (if a name was provided) or the publisher
1943     * </p> 
1944         */
1945        public Contact setTelecom(java.util.List<ContactPointDt> theValue) {
1946                myTelecom = theValue;
1947                return this;
1948        }
1949        
1950        
1951
1952        /**
1953         * Adds and returns a new value for <b>telecom</b> ()
1954         *
1955     * <p>
1956     * <b>Definition:</b>
1957     * Contact details for individual (if a name was provided) or the publisher
1958     * </p> 
1959         */
1960        public ContactPointDt addTelecom() {
1961                ContactPointDt newType = new ContactPointDt();
1962                getTelecom().add(newType);
1963                return newType; 
1964        }
1965
1966        /**
1967         * Adds a given new value for <b>telecom</b> ()
1968         *
1969         * <p>
1970         * <b>Definition:</b>
1971         * Contact details for individual (if a name was provided) or the publisher
1972         * </p>
1973         * @param theValue The telecom to add (must not be <code>null</code>)
1974         */
1975        public Contact addTelecom(ContactPointDt theValue) {
1976                if (theValue == null) {
1977                        throw new NullPointerException("theValue must not be null");
1978                }
1979                getTelecom().add(theValue);
1980                return this;
1981        }
1982
1983        /**
1984         * Gets the first repetition for <b>telecom</b> (),
1985         * creating it if it does not already exist.
1986         *
1987     * <p>
1988     * <b>Definition:</b>
1989     * Contact details for individual (if a name was provided) or the publisher
1990     * </p> 
1991         */
1992        public ContactPointDt getTelecomFirstRep() {
1993                if (getTelecom().isEmpty()) {
1994                        return addTelecom();
1995                }
1996                return getTelecom().get(0); 
1997        }
1998  
1999
2000
2001        }
2002
2003
2004        /**
2005         * Block class for child element: <b>ConceptMap.element</b> ()
2006         *
2007     * <p>
2008     * <b>Definition:</b>
2009     * Mappings for an individual concept in the source to one or more concepts in the target
2010     * </p> 
2011         */
2012        @Block()        
2013        public static class Element 
2014            extends  BaseIdentifiableElement        implements IResourceBlock {
2015        
2016        @Child(name="codeSystem", type=UriDt.class, order=0, min=0, max=1, summary=false, modifier=false)       
2017        @Description(
2018                shortDefinition="",
2019                formalDefinition="An absolute URI that identifies the Code System (if the source is a value set that crosses more than one code system)"
2020        )
2021        private UriDt myCodeSystem;
2022        
2023        @Child(name="code", type=CodeDt.class, order=1, min=0, max=1, summary=false, modifier=false)    
2024        @Description(
2025                shortDefinition="",
2026                formalDefinition="Identity (code or path) or the element/item being mapped"
2027        )
2028        private CodeDt myCode;
2029        
2030        @Child(name="target", order=2, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
2031        @Description(
2032                shortDefinition="",
2033                formalDefinition="A concept from the target value set that this concept maps to"
2034        )
2035        private java.util.List<ElementTarget> myTarget;
2036        
2037
2038        @Override
2039        public boolean isEmpty() {
2040                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCodeSystem,  myCode,  myTarget);
2041        }
2042        
2043        @Override
2044        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2045                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCodeSystem, myCode, myTarget);
2046        }
2047
2048        /**
2049         * Gets the value(s) for <b>codeSystem</b> ().
2050         * creating it if it does
2051         * not exist. Will not return <code>null</code>.
2052         *
2053     * <p>
2054     * <b>Definition:</b>
2055     * An absolute URI that identifies the Code System (if the source is a value set that crosses more than one code system)
2056     * </p> 
2057         */
2058        public UriDt getCodeSystemElement() {  
2059                if (myCodeSystem == null) {
2060                        myCodeSystem = new UriDt();
2061                }
2062                return myCodeSystem;
2063        }
2064
2065        
2066        /**
2067         * Gets the value(s) for <b>codeSystem</b> ().
2068         * creating it if it does
2069         * not exist. Will not return <code>null</code>.
2070         *
2071     * <p>
2072     * <b>Definition:</b>
2073     * An absolute URI that identifies the Code System (if the source is a value set that crosses more than one code system)
2074     * </p> 
2075         */
2076        public String getCodeSystem() {  
2077                return getCodeSystemElement().getValue();
2078        }
2079
2080        /**
2081         * Sets the value(s) for <b>codeSystem</b> ()
2082         *
2083     * <p>
2084     * <b>Definition:</b>
2085     * An absolute URI that identifies the Code System (if the source is a value set that crosses more than one code system)
2086     * </p> 
2087         */
2088        public Element setCodeSystem(UriDt theValue) {
2089                myCodeSystem = theValue;
2090                return this;
2091        }
2092        
2093        
2094
2095        /**
2096         * Sets the value for <b>codeSystem</b> ()
2097         *
2098     * <p>
2099     * <b>Definition:</b>
2100     * An absolute URI that identifies the Code System (if the source is a value set that crosses more than one code system)
2101     * </p> 
2102         */
2103        public Element setCodeSystem( String theUri) {
2104                myCodeSystem = new UriDt(theUri); 
2105                return this; 
2106        }
2107
2108 
2109        /**
2110         * Gets the value(s) for <b>code</b> ().
2111         * creating it if it does
2112         * not exist. Will not return <code>null</code>.
2113         *
2114     * <p>
2115     * <b>Definition:</b>
2116     * Identity (code or path) or the element/item being mapped
2117     * </p> 
2118         */
2119        public CodeDt getCodeElement() {  
2120                if (myCode == null) {
2121                        myCode = new CodeDt();
2122                }
2123                return myCode;
2124        }
2125
2126        
2127        /**
2128         * Gets the value(s) for <b>code</b> ().
2129         * creating it if it does
2130         * not exist. Will not return <code>null</code>.
2131         *
2132     * <p>
2133     * <b>Definition:</b>
2134     * Identity (code or path) or the element/item being mapped
2135     * </p> 
2136         */
2137        public String getCode() {  
2138                return getCodeElement().getValue();
2139        }
2140
2141        /**
2142         * Sets the value(s) for <b>code</b> ()
2143         *
2144     * <p>
2145     * <b>Definition:</b>
2146     * Identity (code or path) or the element/item being mapped
2147     * </p> 
2148         */
2149        public Element setCode(CodeDt theValue) {
2150                myCode = theValue;
2151                return this;
2152        }
2153        
2154        
2155
2156        /**
2157         * Sets the value for <b>code</b> ()
2158         *
2159     * <p>
2160     * <b>Definition:</b>
2161     * Identity (code or path) or the element/item being mapped
2162     * </p> 
2163         */
2164        public Element setCode( String theCode) {
2165                myCode = new CodeDt(theCode); 
2166                return this; 
2167        }
2168
2169 
2170        /**
2171         * Gets the value(s) for <b>target</b> ().
2172         * creating it if it does
2173         * not exist. Will not return <code>null</code>.
2174         *
2175     * <p>
2176     * <b>Definition:</b>
2177     * A concept from the target value set that this concept maps to
2178     * </p> 
2179         */
2180        public java.util.List<ElementTarget> getTarget() {  
2181                if (myTarget == null) {
2182                        myTarget = new java.util.ArrayList<ElementTarget>();
2183                }
2184                return myTarget;
2185        }
2186
2187        /**
2188         * Sets the value(s) for <b>target</b> ()
2189         *
2190     * <p>
2191     * <b>Definition:</b>
2192     * A concept from the target value set that this concept maps to
2193     * </p> 
2194         */
2195        public Element setTarget(java.util.List<ElementTarget> theValue) {
2196                myTarget = theValue;
2197                return this;
2198        }
2199        
2200        
2201
2202        /**
2203         * Adds and returns a new value for <b>target</b> ()
2204         *
2205     * <p>
2206     * <b>Definition:</b>
2207     * A concept from the target value set that this concept maps to
2208     * </p> 
2209         */
2210        public ElementTarget addTarget() {
2211                ElementTarget newType = new ElementTarget();
2212                getTarget().add(newType);
2213                return newType; 
2214        }
2215
2216        /**
2217         * Adds a given new value for <b>target</b> ()
2218         *
2219         * <p>
2220         * <b>Definition:</b>
2221         * A concept from the target value set that this concept maps to
2222         * </p>
2223         * @param theValue The target to add (must not be <code>null</code>)
2224         */
2225        public Element addTarget(ElementTarget theValue) {
2226                if (theValue == null) {
2227                        throw new NullPointerException("theValue must not be null");
2228                }
2229                getTarget().add(theValue);
2230                return this;
2231        }
2232
2233        /**
2234         * Gets the first repetition for <b>target</b> (),
2235         * creating it if it does not already exist.
2236         *
2237     * <p>
2238     * <b>Definition:</b>
2239     * A concept from the target value set that this concept maps to
2240     * </p> 
2241         */
2242        public ElementTarget getTargetFirstRep() {
2243                if (getTarget().isEmpty()) {
2244                        return addTarget();
2245                }
2246                return getTarget().get(0); 
2247        }
2248  
2249
2250
2251        }
2252
2253        /**
2254         * Block class for child element: <b>ConceptMap.element.target</b> ()
2255         *
2256     * <p>
2257     * <b>Definition:</b>
2258     * A concept from the target value set that this concept maps to
2259     * </p> 
2260         */
2261        @Block()        
2262        public static class ElementTarget 
2263            extends  BaseIdentifiableElement        implements IResourceBlock {
2264        
2265        @Child(name="codeSystem", type=UriDt.class, order=0, min=0, max=1, summary=false, modifier=false)       
2266        @Description(
2267                shortDefinition="",
2268                formalDefinition="An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems)"
2269        )
2270        private UriDt myCodeSystem;
2271        
2272        @Child(name="code", type=CodeDt.class, order=1, min=0, max=1, summary=false, modifier=false)    
2273        @Description(
2274                shortDefinition="",
2275                formalDefinition="Identity (code or path) or the element/item that the map refers to"
2276        )
2277        private CodeDt myCode;
2278        
2279        @Child(name="equivalence", type=CodeDt.class, order=2, min=1, max=1, summary=false, modifier=false)     
2280        @Description(
2281                shortDefinition="",
2282                formalDefinition="The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)"
2283        )
2284        private BoundCodeDt<ConceptMapEquivalenceEnum> myEquivalence;
2285        
2286        @Child(name="comments", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)      
2287        @Description(
2288                shortDefinition="",
2289                formalDefinition="A description of status/issues in mapping that conveys additional information not represented in  the structured data"
2290        )
2291        private StringDt myComments;
2292        
2293        @Child(name="dependsOn", order=4, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
2294        @Description(
2295                shortDefinition="",
2296                formalDefinition="A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value"
2297        )
2298        private java.util.List<ElementTargetDependsOn> myDependsOn;
2299        
2300        @Child(name="product", type=ElementTargetDependsOn.class, order=5, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
2301        @Description(
2302                shortDefinition="",
2303                formalDefinition="A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on"
2304        )
2305        private java.util.List<ElementTargetDependsOn> myProduct;
2306        
2307
2308        @Override
2309        public boolean isEmpty() {
2310                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCodeSystem,  myCode,  myEquivalence,  myComments,  myDependsOn,  myProduct);
2311        }
2312        
2313        @Override
2314        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2315                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCodeSystem, myCode, myEquivalence, myComments, myDependsOn, myProduct);
2316        }
2317
2318        /**
2319         * Gets the value(s) for <b>codeSystem</b> ().
2320         * creating it if it does
2321         * not exist. Will not return <code>null</code>.
2322         *
2323     * <p>
2324     * <b>Definition:</b>
2325     * An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems)
2326     * </p> 
2327         */
2328        public UriDt getCodeSystemElement() {  
2329                if (myCodeSystem == null) {
2330                        myCodeSystem = new UriDt();
2331                }
2332                return myCodeSystem;
2333        }
2334
2335        
2336        /**
2337         * Gets the value(s) for <b>codeSystem</b> ().
2338         * creating it if it does
2339         * not exist. Will not return <code>null</code>.
2340         *
2341     * <p>
2342     * <b>Definition:</b>
2343     * An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems)
2344     * </p> 
2345         */
2346        public String getCodeSystem() {  
2347                return getCodeSystemElement().getValue();
2348        }
2349
2350        /**
2351         * Sets the value(s) for <b>codeSystem</b> ()
2352         *
2353     * <p>
2354     * <b>Definition:</b>
2355     * An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems)
2356     * </p> 
2357         */
2358        public ElementTarget setCodeSystem(UriDt theValue) {
2359                myCodeSystem = theValue;
2360                return this;
2361        }
2362        
2363        
2364
2365        /**
2366         * Sets the value for <b>codeSystem</b> ()
2367         *
2368     * <p>
2369     * <b>Definition:</b>
2370     * An absolute URI that identifies the code system of the target code (if the target is a value set that cross code systems)
2371     * </p> 
2372         */
2373        public ElementTarget setCodeSystem( String theUri) {
2374                myCodeSystem = new UriDt(theUri); 
2375                return this; 
2376        }
2377
2378 
2379        /**
2380         * Gets the value(s) for <b>code</b> ().
2381         * creating it if it does
2382         * not exist. Will not return <code>null</code>.
2383         *
2384     * <p>
2385     * <b>Definition:</b>
2386     * Identity (code or path) or the element/item that the map refers to
2387     * </p> 
2388         */
2389        public CodeDt getCodeElement() {  
2390                if (myCode == null) {
2391                        myCode = new CodeDt();
2392                }
2393                return myCode;
2394        }
2395
2396        
2397        /**
2398         * Gets the value(s) for <b>code</b> ().
2399         * creating it if it does
2400         * not exist. Will not return <code>null</code>.
2401         *
2402     * <p>
2403     * <b>Definition:</b>
2404     * Identity (code or path) or the element/item that the map refers to
2405     * </p> 
2406         */
2407        public String getCode() {  
2408                return getCodeElement().getValue();
2409        }
2410
2411        /**
2412         * Sets the value(s) for <b>code</b> ()
2413         *
2414     * <p>
2415     * <b>Definition:</b>
2416     * Identity (code or path) or the element/item that the map refers to
2417     * </p> 
2418         */
2419        public ElementTarget setCode(CodeDt theValue) {
2420                myCode = theValue;
2421                return this;
2422        }
2423        
2424        
2425
2426        /**
2427         * Sets the value for <b>code</b> ()
2428         *
2429     * <p>
2430     * <b>Definition:</b>
2431     * Identity (code or path) or the element/item that the map refers to
2432     * </p> 
2433         */
2434        public ElementTarget setCode( String theCode) {
2435                myCode = new CodeDt(theCode); 
2436                return this; 
2437        }
2438
2439 
2440        /**
2441         * Gets the value(s) for <b>equivalence</b> ().
2442         * creating it if it does
2443         * not exist. Will not return <code>null</code>.
2444         *
2445     * <p>
2446     * <b>Definition:</b>
2447     * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)
2448     * </p> 
2449         */
2450        public BoundCodeDt<ConceptMapEquivalenceEnum> getEquivalenceElement() {  
2451                if (myEquivalence == null) {
2452                        myEquivalence = new BoundCodeDt<ConceptMapEquivalenceEnum>(ConceptMapEquivalenceEnum.VALUESET_BINDER);
2453                }
2454                return myEquivalence;
2455        }
2456
2457        
2458        /**
2459         * Gets the value(s) for <b>equivalence</b> ().
2460         * creating it if it does
2461         * not exist. Will not return <code>null</code>.
2462         *
2463     * <p>
2464     * <b>Definition:</b>
2465     * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)
2466     * </p> 
2467         */
2468        public String getEquivalence() {  
2469                return getEquivalenceElement().getValue();
2470        }
2471
2472        /**
2473         * Sets the value(s) for <b>equivalence</b> ()
2474         *
2475     * <p>
2476     * <b>Definition:</b>
2477     * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)
2478     * </p> 
2479         */
2480        public ElementTarget setEquivalence(BoundCodeDt<ConceptMapEquivalenceEnum> theValue) {
2481                myEquivalence = theValue;
2482                return this;
2483        }
2484        
2485        
2486
2487        /**
2488         * Sets the value(s) for <b>equivalence</b> ()
2489         *
2490     * <p>
2491     * <b>Definition:</b>
2492     * The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)
2493     * </p> 
2494         */
2495        public ElementTarget setEquivalence(ConceptMapEquivalenceEnum theValue) {
2496                setEquivalence(new BoundCodeDt<ConceptMapEquivalenceEnum>(ConceptMapEquivalenceEnum.VALUESET_BINDER, theValue));
2497                
2498/*
2499                getEquivalenceElement().setValueAsEnum(theValue);
2500*/
2501                return this;
2502        }
2503
2504  
2505        /**
2506         * Gets the value(s) for <b>comments</b> ().
2507         * creating it if it does
2508         * not exist. Will not return <code>null</code>.
2509         *
2510     * <p>
2511     * <b>Definition:</b>
2512     * A description of status/issues in mapping that conveys additional information not represented in  the structured data
2513     * </p> 
2514         */
2515        public StringDt getCommentsElement() {  
2516                if (myComments == null) {
2517                        myComments = new StringDt();
2518                }
2519                return myComments;
2520        }
2521
2522        
2523        /**
2524         * Gets the value(s) for <b>comments</b> ().
2525         * creating it if it does
2526         * not exist. Will not return <code>null</code>.
2527         *
2528     * <p>
2529     * <b>Definition:</b>
2530     * A description of status/issues in mapping that conveys additional information not represented in  the structured data
2531     * </p> 
2532         */
2533        public String getComments() {  
2534                return getCommentsElement().getValue();
2535        }
2536
2537        /**
2538         * Sets the value(s) for <b>comments</b> ()
2539         *
2540     * <p>
2541     * <b>Definition:</b>
2542     * A description of status/issues in mapping that conveys additional information not represented in  the structured data
2543     * </p> 
2544         */
2545        public ElementTarget setComments(StringDt theValue) {
2546                myComments = theValue;
2547                return this;
2548        }
2549        
2550        
2551
2552        /**
2553         * Sets the value for <b>comments</b> ()
2554         *
2555     * <p>
2556     * <b>Definition:</b>
2557     * A description of status/issues in mapping that conveys additional information not represented in  the structured data
2558     * </p> 
2559         */
2560        public ElementTarget setComments( String theString) {
2561                myComments = new StringDt(theString); 
2562                return this; 
2563        }
2564
2565 
2566        /**
2567         * Gets the value(s) for <b>dependsOn</b> ().
2568         * creating it if it does
2569         * not exist. Will not return <code>null</code>.
2570         *
2571     * <p>
2572     * <b>Definition:</b>
2573     * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2574     * </p> 
2575         */
2576        public java.util.List<ElementTargetDependsOn> getDependsOn() {  
2577                if (myDependsOn == null) {
2578                        myDependsOn = new java.util.ArrayList<ElementTargetDependsOn>();
2579                }
2580                return myDependsOn;
2581        }
2582
2583        /**
2584         * Sets the value(s) for <b>dependsOn</b> ()
2585         *
2586     * <p>
2587     * <b>Definition:</b>
2588     * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2589     * </p> 
2590         */
2591        public ElementTarget setDependsOn(java.util.List<ElementTargetDependsOn> theValue) {
2592                myDependsOn = theValue;
2593                return this;
2594        }
2595        
2596        
2597
2598        /**
2599         * Adds and returns a new value for <b>dependsOn</b> ()
2600         *
2601     * <p>
2602     * <b>Definition:</b>
2603     * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2604     * </p> 
2605         */
2606        public ElementTargetDependsOn addDependsOn() {
2607                ElementTargetDependsOn newType = new ElementTargetDependsOn();
2608                getDependsOn().add(newType);
2609                return newType; 
2610        }
2611
2612        /**
2613         * Adds a given new value for <b>dependsOn</b> ()
2614         *
2615         * <p>
2616         * <b>Definition:</b>
2617         * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2618         * </p>
2619         * @param theValue The dependsOn to add (must not be <code>null</code>)
2620         */
2621        public ElementTarget addDependsOn(ElementTargetDependsOn theValue) {
2622                if (theValue == null) {
2623                        throw new NullPointerException("theValue must not be null");
2624                }
2625                getDependsOn().add(theValue);
2626                return this;
2627        }
2628
2629        /**
2630         * Gets the first repetition for <b>dependsOn</b> (),
2631         * creating it if it does not already exist.
2632         *
2633     * <p>
2634     * <b>Definition:</b>
2635     * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2636     * </p> 
2637         */
2638        public ElementTargetDependsOn getDependsOnFirstRep() {
2639                if (getDependsOn().isEmpty()) {
2640                        return addDependsOn();
2641                }
2642                return getDependsOn().get(0); 
2643        }
2644  
2645        /**
2646         * Gets the value(s) for <b>product</b> ().
2647         * creating it if it does
2648         * not exist. Will not return <code>null</code>.
2649         *
2650     * <p>
2651     * <b>Definition:</b>
2652     * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on
2653     * </p> 
2654         */
2655        public java.util.List<ElementTargetDependsOn> getProduct() {  
2656                if (myProduct == null) {
2657                        myProduct = new java.util.ArrayList<ElementTargetDependsOn>();
2658                }
2659                return myProduct;
2660        }
2661
2662        /**
2663         * Sets the value(s) for <b>product</b> ()
2664         *
2665     * <p>
2666     * <b>Definition:</b>
2667     * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on
2668     * </p> 
2669         */
2670        public ElementTarget setProduct(java.util.List<ElementTargetDependsOn> theValue) {
2671                myProduct = theValue;
2672                return this;
2673        }
2674        
2675        
2676
2677        /**
2678         * Adds and returns a new value for <b>product</b> ()
2679         *
2680     * <p>
2681     * <b>Definition:</b>
2682     * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on
2683     * </p> 
2684         */
2685        public ElementTargetDependsOn addProduct() {
2686                ElementTargetDependsOn newType = new ElementTargetDependsOn();
2687                getProduct().add(newType);
2688                return newType; 
2689        }
2690
2691        /**
2692         * Adds a given new value for <b>product</b> ()
2693         *
2694         * <p>
2695         * <b>Definition:</b>
2696         * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on
2697         * </p>
2698         * @param theValue The product to add (must not be <code>null</code>)
2699         */
2700        public ElementTarget addProduct(ElementTargetDependsOn theValue) {
2701                if (theValue == null) {
2702                        throw new NullPointerException("theValue must not be null");
2703                }
2704                getProduct().add(theValue);
2705                return this;
2706        }
2707
2708        /**
2709         * Gets the first repetition for <b>product</b> (),
2710         * creating it if it does not already exist.
2711         *
2712     * <p>
2713     * <b>Definition:</b>
2714     * A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on
2715     * </p> 
2716         */
2717        public ElementTargetDependsOn getProductFirstRep() {
2718                if (getProduct().isEmpty()) {
2719                        return addProduct();
2720                }
2721                return getProduct().get(0); 
2722        }
2723  
2724
2725
2726        }
2727
2728        /**
2729         * Block class for child element: <b>ConceptMap.element.target.dependsOn</b> ()
2730         *
2731     * <p>
2732     * <b>Definition:</b>
2733     * A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value
2734     * </p> 
2735         */
2736        @Block()        
2737        public static class ElementTargetDependsOn 
2738            extends  BaseIdentifiableElement        implements IResourceBlock {
2739        
2740        @Child(name="element", type=UriDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
2741        @Description(
2742                shortDefinition="",
2743                formalDefinition="A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. HL7 v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition"
2744        )
2745        private UriDt myElement;
2746        
2747        @Child(name="codeSystem", type=UriDt.class, order=1, min=1, max=1, summary=false, modifier=false)       
2748        @Description(
2749                shortDefinition="",
2750                formalDefinition="An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)"
2751        )
2752        private UriDt myCodeSystem;
2753        
2754        @Child(name="code", type=StringDt.class, order=2, min=1, max=1, summary=false, modifier=false)  
2755        @Description(
2756                shortDefinition="",
2757                formalDefinition="Identity (code or path) or the element/item/ValueSet that the map depends on / refers to"
2758        )
2759        private StringDt myCode;
2760        
2761
2762        @Override
2763        public boolean isEmpty() {
2764                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myElement,  myCodeSystem,  myCode);
2765        }
2766        
2767        @Override
2768        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2769                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myElement, myCodeSystem, myCode);
2770        }
2771
2772        /**
2773         * Gets the value(s) for <b>element</b> ().
2774         * creating it if it does
2775         * not exist. Will not return <code>null</code>.
2776         *
2777     * <p>
2778     * <b>Definition:</b>
2779     * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. HL7 v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition
2780     * </p> 
2781         */
2782        public UriDt getElementElement() {  
2783                if (myElement == null) {
2784                        myElement = new UriDt();
2785                }
2786                return myElement;
2787        }
2788
2789        
2790        /**
2791         * Gets the value(s) for <b>element</b> ().
2792         * creating it if it does
2793         * not exist. Will not return <code>null</code>.
2794         *
2795     * <p>
2796     * <b>Definition:</b>
2797     * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. HL7 v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition
2798     * </p> 
2799         */
2800        public String getElement() {  
2801                return getElementElement().getValue();
2802        }
2803
2804        /**
2805         * Sets the value(s) for <b>element</b> ()
2806         *
2807     * <p>
2808     * <b>Definition:</b>
2809     * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. HL7 v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition
2810     * </p> 
2811         */
2812        public ElementTargetDependsOn setElement(UriDt theValue) {
2813                myElement = theValue;
2814                return this;
2815        }
2816        
2817        
2818
2819        /**
2820         * Sets the value for <b>element</b> ()
2821         *
2822     * <p>
2823     * <b>Definition:</b>
2824     * A reference to a specific concept that holds a coded value. This can be an element in a FHIR resource, or a specific reference to a data element in a different specification (e.g. HL7 v2) or a general reference to a kind of data field, or a reference to a value set with an appropriately narrow definition
2825     * </p> 
2826         */
2827        public ElementTargetDependsOn setElement( String theUri) {
2828                myElement = new UriDt(theUri); 
2829                return this; 
2830        }
2831
2832 
2833        /**
2834         * Gets the value(s) for <b>codeSystem</b> ().
2835         * creating it if it does
2836         * not exist. Will not return <code>null</code>.
2837         *
2838     * <p>
2839     * <b>Definition:</b>
2840     * An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)
2841     * </p> 
2842         */
2843        public UriDt getCodeSystemElement() {  
2844                if (myCodeSystem == null) {
2845                        myCodeSystem = new UriDt();
2846                }
2847                return myCodeSystem;
2848        }
2849
2850        
2851        /**
2852         * Gets the value(s) for <b>codeSystem</b> ().
2853         * creating it if it does
2854         * not exist. Will not return <code>null</code>.
2855         *
2856     * <p>
2857     * <b>Definition:</b>
2858     * An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)
2859     * </p> 
2860         */
2861        public String getCodeSystem() {  
2862                return getCodeSystemElement().getValue();
2863        }
2864
2865        /**
2866         * Sets the value(s) for <b>codeSystem</b> ()
2867         *
2868     * <p>
2869     * <b>Definition:</b>
2870     * An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)
2871     * </p> 
2872         */
2873        public ElementTargetDependsOn setCodeSystem(UriDt theValue) {
2874                myCodeSystem = theValue;
2875                return this;
2876        }
2877        
2878        
2879
2880        /**
2881         * Sets the value for <b>codeSystem</b> ()
2882         *
2883     * <p>
2884     * <b>Definition:</b>
2885     * An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)
2886     * </p> 
2887         */
2888        public ElementTargetDependsOn setCodeSystem( String theUri) {
2889                myCodeSystem = new UriDt(theUri); 
2890                return this; 
2891        }
2892
2893 
2894        /**
2895         * Gets the value(s) for <b>code</b> ().
2896         * creating it if it does
2897         * not exist. Will not return <code>null</code>.
2898         *
2899     * <p>
2900     * <b>Definition:</b>
2901     * Identity (code or path) or the element/item/ValueSet that the map depends on / refers to
2902     * </p> 
2903         */
2904        public StringDt getCodeElement() {  
2905                if (myCode == null) {
2906                        myCode = new StringDt();
2907                }
2908                return myCode;
2909        }
2910
2911        
2912        /**
2913         * Gets the value(s) for <b>code</b> ().
2914         * creating it if it does
2915         * not exist. Will not return <code>null</code>.
2916         *
2917     * <p>
2918     * <b>Definition:</b>
2919     * Identity (code or path) or the element/item/ValueSet that the map depends on / refers to
2920     * </p> 
2921         */
2922        public String getCode() {  
2923                return getCodeElement().getValue();
2924        }
2925
2926        /**
2927         * Sets the value(s) for <b>code</b> ()
2928         *
2929     * <p>
2930     * <b>Definition:</b>
2931     * Identity (code or path) or the element/item/ValueSet that the map depends on / refers to
2932     * </p> 
2933         */
2934        public ElementTargetDependsOn setCode(StringDt theValue) {
2935                myCode = theValue;
2936                return this;
2937        }
2938        
2939        
2940
2941        /**
2942         * Sets the value for <b>code</b> ()
2943         *
2944     * <p>
2945     * <b>Definition:</b>
2946     * Identity (code or path) or the element/item/ValueSet that the map depends on / refers to
2947     * </p> 
2948         */
2949        public ElementTargetDependsOn setCode( String theString) {
2950                myCode = new StringDt(theString); 
2951                return this; 
2952        }
2953
2954 
2955
2956
2957        }
2958
2959
2960
2961
2962
2963
2964    @Override
2965    public String getResourceName() {
2966        return "ConceptMap";
2967    }
2968    
2969    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
2970        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
2971    }
2972
2973
2974}