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>MedicationAdministration</b> Resource
320 * (clinical.medication)
321 *
322 * <p>
323 * <b>Definition:</b>
324 * Describes the event of a patient consuming or otherwise being administered a medication.  This may be as simple as swallowing a tablet or it may be a long running infusion.  Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner
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/MedicationAdministration">http://hl7.org/fhir/profiles/MedicationAdministration</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="MedicationAdministration", profile="http://hl7.org/fhir/profiles/MedicationAdministration", id="medicationadministration")
339public class MedicationAdministration extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>device</b>
344         * <p>
345         * Description: <b>Return administrations with this administration device identity</b><br>
346         * Type: <b>reference</b><br>
347         * Path: <b>MedicationAdministration.device</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="device", path="MedicationAdministration.device", description="Return administrations with this administration device identity", type="reference"  )
351        public static final String SP_DEVICE = "device";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>device</b>
355         * <p>
356         * Description: <b>Return administrations with this administration device identity</b><br>
357         * Type: <b>reference</b><br>
358         * Path: <b>MedicationAdministration.device</b><br>
359         * </p>
360         */
361        public static final ReferenceClientParam DEVICE = new ReferenceClientParam(SP_DEVICE);
362
363        /**
364         * Search parameter constant for <b>encounter</b>
365         * <p>
366         * Description: <b>Return administrations that share this encounter</b><br>
367         * Type: <b>reference</b><br>
368         * Path: <b>MedicationAdministration.encounter</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter", description="Return administrations that share this encounter", type="reference"  )
372        public static final String SP_ENCOUNTER = "encounter";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
376         * <p>
377         * Description: <b>Return administrations that share this encounter</b><br>
378         * Type: <b>reference</b><br>
379         * Path: <b>MedicationAdministration.encounter</b><br>
380         * </p>
381         */
382        public static final ReferenceClientParam ENCOUNTER = new ReferenceClientParam(SP_ENCOUNTER);
383
384        /**
385         * Search parameter constant for <b>identifier</b>
386         * <p>
387         * Description: <b>Return administrations with this external identifier</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>MedicationAdministration.identifier</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="identifier", path="MedicationAdministration.identifier", description="Return administrations with this external identifier", type="token"  )
393        public static final String SP_IDENTIFIER = "identifier";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
397         * <p>
398         * Description: <b>Return administrations with this external identifier</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>MedicationAdministration.identifier</b><br>
401         * </p>
402         */
403        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
404
405        /**
406         * Search parameter constant for <b>medication</b>
407         * <p>
408         * Description: <b>Return administrations of this medication resource</b><br>
409         * Type: <b>reference</b><br>
410         * Path: <b>MedicationAdministration.medicationReference</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="medication", path="MedicationAdministration.medicationReference", description="Return administrations of this medication resource", type="reference"  )
414        public static final String SP_MEDICATION = "medication";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>medication</b>
418         * <p>
419         * Description: <b>Return administrations of this medication resource</b><br>
420         * Type: <b>reference</b><br>
421         * Path: <b>MedicationAdministration.medicationReference</b><br>
422         * </p>
423         */
424        public static final ReferenceClientParam MEDICATION = new ReferenceClientParam(SP_MEDICATION);
425
426        /**
427         * Search parameter constant for <b>code</b>
428         * <p>
429         * Description: <b>Return administrations of this medication code</b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>MedicationAdministration.medicationCodeableConcept</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="code", path="MedicationAdministration.medicationCodeableConcept", description="Return administrations of this medication code", type="token"  )
435        public static final String SP_CODE = "code";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>code</b>
439         * <p>
440         * Description: <b>Return administrations of this medication code</b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>MedicationAdministration.medicationCodeableConcept</b><br>
443         * </p>
444         */
445        public static final TokenClientParam CODE = new TokenClientParam(SP_CODE);
446
447        /**
448         * Search parameter constant for <b>notgiven</b>
449         * <p>
450         * Description: <b>Administrations that were not made</b><br>
451         * Type: <b>token</b><br>
452         * Path: <b>MedicationAdministration.wasNotGiven</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="notgiven", path="MedicationAdministration.wasNotGiven", description="Administrations that were not made", type="token"  )
456        public static final String SP_NOTGIVEN = "notgiven";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>notgiven</b>
460         * <p>
461         * Description: <b>Administrations that were not made</b><br>
462         * Type: <b>token</b><br>
463         * Path: <b>MedicationAdministration.wasNotGiven</b><br>
464         * </p>
465         */
466        public static final TokenClientParam NOTGIVEN = new TokenClientParam(SP_NOTGIVEN);
467
468        /**
469         * Search parameter constant for <b>patient</b>
470         * <p>
471         * Description: <b>The identity of a patient to list administrations  for</b><br>
472         * Type: <b>reference</b><br>
473         * Path: <b>MedicationAdministration.patient</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="patient", path="MedicationAdministration.patient", description="The identity of a patient to list administrations  for", type="reference"  )
477        public static final String SP_PATIENT = "patient";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
481         * <p>
482         * Description: <b>The identity of a patient to list administrations  for</b><br>
483         * Type: <b>reference</b><br>
484         * Path: <b>MedicationAdministration.patient</b><br>
485         * </p>
486         */
487        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
488
489        /**
490         * Search parameter constant for <b>prescription</b>
491         * <p>
492         * Description: <b>The identity of a prescription to list administrations from</b><br>
493         * Type: <b>reference</b><br>
494         * Path: <b>MedicationAdministration.prescription</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="prescription", path="MedicationAdministration.prescription", description="The identity of a prescription to list administrations from", type="reference"  )
498        public static final String SP_PRESCRIPTION = "prescription";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>prescription</b>
502         * <p>
503         * Description: <b>The identity of a prescription to list administrations from</b><br>
504         * Type: <b>reference</b><br>
505         * Path: <b>MedicationAdministration.prescription</b><br>
506         * </p>
507         */
508        public static final ReferenceClientParam PRESCRIPTION = new ReferenceClientParam(SP_PRESCRIPTION);
509
510        /**
511         * Search parameter constant for <b>status</b>
512         * <p>
513         * Description: <b>MedicationAdministration event status (for example one of active/paused/completed/nullified)</b><br>
514         * Type: <b>token</b><br>
515         * Path: <b>MedicationAdministration.status</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="status", path="MedicationAdministration.status", description="MedicationAdministration event status (for example one of active/paused/completed/nullified)", type="token"  )
519        public static final String SP_STATUS = "status";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>status</b>
523         * <p>
524         * Description: <b>MedicationAdministration event status (for example one of active/paused/completed/nullified)</b><br>
525         * Type: <b>token</b><br>
526         * Path: <b>MedicationAdministration.status</b><br>
527         * </p>
528         */
529        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
530
531        /**
532         * Search parameter constant for <b>effectivetime</b>
533         * <p>
534         * Description: <b>Date administration happened (or did not happen)</b><br>
535         * Type: <b>date</b><br>
536         * Path: <b>MedicationAdministration.effectiveTime[x]</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="effectivetime", path="MedicationAdministration.effectiveTime[x]", description="Date administration happened (or did not happen)", type="date"  )
540        public static final String SP_EFFECTIVETIME = "effectivetime";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>effectivetime</b>
544         * <p>
545         * Description: <b>Date administration happened (or did not happen)</b><br>
546         * Type: <b>date</b><br>
547         * Path: <b>MedicationAdministration.effectiveTime[x]</b><br>
548         * </p>
549         */
550        public static final DateClientParam EFFECTIVETIME = new DateClientParam(SP_EFFECTIVETIME);
551
552        /**
553         * Search parameter constant for <b>practitioner</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>reference</b><br>
557         * Path: <b>MedicationAdministration.practitioner</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="practitioner", path="MedicationAdministration.practitioner", description="", type="reference"  )
561        public static final String SP_PRACTITIONER = "practitioner";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>practitioner</b>
565         * <p>
566         * Description: <b></b><br>
567         * Type: <b>reference</b><br>
568         * Path: <b>MedicationAdministration.practitioner</b><br>
569         * </p>
570         */
571        public static final ReferenceClientParam PRACTITIONER = new ReferenceClientParam(SP_PRACTITIONER);
572
573
574        /**
575         * Constant for fluent queries to be used to add include statements. Specifies
576         * the path value of "<b>MedicationAdministration:device</b>".
577         */
578        public static final Include INCLUDE_DEVICE = new Include("MedicationAdministration:device");
579
580        /**
581         * Constant for fluent queries to be used to add include statements. Specifies
582         * the path value of "<b>MedicationAdministration:encounter</b>".
583         */
584        public static final Include INCLUDE_ENCOUNTER = new Include("MedicationAdministration:encounter");
585
586        /**
587         * Constant for fluent queries to be used to add include statements. Specifies
588         * the path value of "<b>MedicationAdministration:medication</b>".
589         */
590        public static final Include INCLUDE_MEDICATION = new Include("MedicationAdministration:medication");
591
592        /**
593         * Constant for fluent queries to be used to add include statements. Specifies
594         * the path value of "<b>MedicationAdministration:patient</b>".
595         */
596        public static final Include INCLUDE_PATIENT = new Include("MedicationAdministration:patient");
597
598        /**
599         * Constant for fluent queries to be used to add include statements. Specifies
600         * the path value of "<b>MedicationAdministration:practitioner</b>".
601         */
602        public static final Include INCLUDE_PRACTITIONER = new Include("MedicationAdministration:practitioner");
603
604        /**
605         * Constant for fluent queries to be used to add include statements. Specifies
606         * the path value of "<b>MedicationAdministration:prescription</b>".
607         */
608        public static final Include INCLUDE_PRESCRIPTION = new Include("MedicationAdministration:prescription");
609
610
611        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
612        @Description(
613                shortDefinition="id",
614                formalDefinition="External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated."
615        )
616        private java.util.List<IdentifierDt> myIdentifier;
617        
618        @Child(name="status", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=true)   
619        @Description(
620                shortDefinition="status",
621                formalDefinition="Will generally be set to show that the administration has been completed.  For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way."
622        )
623        private BoundCodeDt<MedicationAdministrationStatusEnum> myStatus;
624        
625        @Child(name="patient", order=2, min=1, max=1, summary=false, modifier=false, type={
626                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
627        @Description(
628                shortDefinition="who.focus",
629                formalDefinition="The person or animal receiving the medication."
630        )
631        private ResourceReferenceDt myPatient;
632        
633        @Child(name="practitioner", order=3, min=0, max=1, summary=false, modifier=false, type={
634                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class    })
635        @Description(
636                shortDefinition="who.actor",
637                formalDefinition="The individual who was responsible for giving the medication to the patient."
638        )
639        private ResourceReferenceDt myPractitioner;
640        
641        @Child(name="encounter", order=4, min=0, max=1, summary=false, modifier=false, type={
642                ca.uhn.fhir.model.dstu2.resource.Encounter.class        })
643        @Description(
644                shortDefinition="context",
645                formalDefinition="The visit, admission or other contact between patient and health care provider the medication administration was performed as part of."
646        )
647        private ResourceReferenceDt myEncounter;
648        
649        @Child(name="prescription", order=5, min=0, max=1, summary=false, modifier=false, type={
650                ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class  })
651        @Description(
652                shortDefinition="",
653                formalDefinition="The original request, instruction or authority to perform the administration."
654        )
655        private ResourceReferenceDt myPrescription;
656        
657        @Child(name="wasNotGiven", type=BooleanDt.class, order=6, min=0, max=1, summary=false, modifier=true)   
658        @Description(
659                shortDefinition="",
660                formalDefinition="Set this to true if the record is saying that the medication was NOT administered."
661        )
662        private BooleanDt myWasNotGiven;
663        
664        @Child(name="reasonNotGiven", type=CodeableConceptDt.class, order=7, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
665        @Description(
666                shortDefinition="",
667                formalDefinition="A code indicating why the administration was not performed."
668        )
669        private java.util.List<CodeableConceptDt> myReasonNotGiven;
670        
671        @Child(name="reasonGiven", type=CodeableConceptDt.class, order=8, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
672        @Description(
673                shortDefinition="",
674                formalDefinition="A code indicating why the medication was given."
675        )
676        private java.util.List<CodeableConceptDt> myReasonGiven;
677        
678        @Child(name="effectiveTime", order=9, min=1, max=1, summary=false, modifier=false, type={
679                DateTimeDt.class,               PeriodDt.class  })
680        @Description(
681                shortDefinition="when.done",
682                formalDefinition="A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate."
683        )
684        private IDatatype myEffectiveTime;
685        
686        @Child(name="medication", order=10, min=1, max=1, summary=false, modifier=false, type={
687                CodeableConceptDt.class,                Medication.class        })
688        @Description(
689                shortDefinition="",
690                formalDefinition="Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications."
691        )
692        private IDatatype myMedication;
693        
694        @Child(name="device", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
695                ca.uhn.fhir.model.dstu2.resource.Device.class   })
696        @Description(
697                shortDefinition="",
698                formalDefinition="The device used in administering the medication to the patient.  For example, a particular infusion pump"
699        )
700        private java.util.List<ResourceReferenceDt> myDevice;
701        
702        @Child(name="note", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
703        @Description(
704                shortDefinition="",
705                formalDefinition="Extra information about the medication administration that is not conveyed by the other attributes."
706        )
707        private StringDt myNote;
708        
709        @Child(name="dosage", order=13, min=0, max=1, summary=false, modifier=false)    
710        @Description(
711                shortDefinition="",
712                formalDefinition="Describes the medication dosage information details e.g. dose, rate, site, route, etc."
713        )
714        private Dosage myDosage;
715        
716
717        @Override
718        public boolean isEmpty() {
719                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myStatus,  myPatient,  myPractitioner,  myEncounter,  myPrescription,  myWasNotGiven,  myReasonNotGiven,  myReasonGiven,  myEffectiveTime,  myMedication,  myDevice,  myNote,  myDosage);
720        }
721        
722        @Override
723        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
724                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myStatus, myPatient, myPractitioner, myEncounter, myPrescription, myWasNotGiven, myReasonNotGiven, myReasonGiven, myEffectiveTime, myMedication, myDevice, myNote, myDosage);
725        }
726
727        /**
728         * Gets the value(s) for <b>identifier</b> (id).
729         * creating it if it does
730         * not exist. Will not return <code>null</code>.
731         *
732     * <p>
733     * <b>Definition:</b>
734     * External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated.
735     * </p> 
736         */
737        public java.util.List<IdentifierDt> getIdentifier() {  
738                if (myIdentifier == null) {
739                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
740                }
741                return myIdentifier;
742        }
743
744        /**
745         * Sets the value(s) for <b>identifier</b> (id)
746         *
747     * <p>
748     * <b>Definition:</b>
749     * External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated.
750     * </p> 
751         */
752        public MedicationAdministration setIdentifier(java.util.List<IdentifierDt> theValue) {
753                myIdentifier = theValue;
754                return this;
755        }
756        
757        
758
759        /**
760         * Adds and returns a new value for <b>identifier</b> (id)
761         *
762     * <p>
763     * <b>Definition:</b>
764     * External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated.
765     * </p> 
766         */
767        public IdentifierDt addIdentifier() {
768                IdentifierDt newType = new IdentifierDt();
769                getIdentifier().add(newType);
770                return newType; 
771        }
772
773        /**
774         * Adds a given new value for <b>identifier</b> (id)
775         *
776         * <p>
777         * <b>Definition:</b>
778         * External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated.
779         * </p>
780         * @param theValue The identifier to add (must not be <code>null</code>)
781         */
782        public MedicationAdministration addIdentifier(IdentifierDt theValue) {
783                if (theValue == null) {
784                        throw new NullPointerException("theValue must not be null");
785                }
786                getIdentifier().add(theValue);
787                return this;
788        }
789
790        /**
791         * Gets the first repetition for <b>identifier</b> (id),
792         * creating it if it does not already exist.
793         *
794     * <p>
795     * <b>Definition:</b>
796     * External identifier - FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource.  The identifier here is one that would be used by another non-FHIR system - for example an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event.  Particularly important if these records have to be updated.
797     * </p> 
798         */
799        public IdentifierDt getIdentifierFirstRep() {
800                if (getIdentifier().isEmpty()) {
801                        return addIdentifier();
802                }
803                return getIdentifier().get(0); 
804        }
805  
806        /**
807         * Gets the value(s) for <b>status</b> (status).
808         * creating it if it does
809         * not exist. Will not return <code>null</code>.
810         *
811     * <p>
812     * <b>Definition:</b>
813     * Will generally be set to show that the administration has been completed.  For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.
814     * </p> 
815         */
816        public BoundCodeDt<MedicationAdministrationStatusEnum> getStatusElement() {  
817                if (myStatus == null) {
818                        myStatus = new BoundCodeDt<MedicationAdministrationStatusEnum>(MedicationAdministrationStatusEnum.VALUESET_BINDER);
819                }
820                return myStatus;
821        }
822
823        
824        /**
825         * Gets the value(s) for <b>status</b> (status).
826         * creating it if it does
827         * not exist. Will not return <code>null</code>.
828         *
829     * <p>
830     * <b>Definition:</b>
831     * Will generally be set to show that the administration has been completed.  For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.
832     * </p> 
833         */
834        public String getStatus() {  
835                return getStatusElement().getValue();
836        }
837
838        /**
839         * Sets the value(s) for <b>status</b> (status)
840         *
841     * <p>
842     * <b>Definition:</b>
843     * Will generally be set to show that the administration has been completed.  For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.
844     * </p> 
845         */
846        public MedicationAdministration setStatus(BoundCodeDt<MedicationAdministrationStatusEnum> theValue) {
847                myStatus = theValue;
848                return this;
849        }
850        
851        
852
853        /**
854         * Sets the value(s) for <b>status</b> (status)
855         *
856     * <p>
857     * <b>Definition:</b>
858     * Will generally be set to show that the administration has been completed.  For some long running administrations such as infusions it is possible for an administration to be started but not completed or it may be paused while some other process is under way.
859     * </p> 
860         */
861        public MedicationAdministration setStatus(MedicationAdministrationStatusEnum theValue) {
862                setStatus(new BoundCodeDt<MedicationAdministrationStatusEnum>(MedicationAdministrationStatusEnum.VALUESET_BINDER, theValue));
863                
864/*
865                getStatusElement().setValueAsEnum(theValue);
866*/
867                return this;
868        }
869
870  
871        /**
872         * Gets the value(s) for <b>patient</b> (who.focus).
873         * creating it if it does
874         * not exist. Will not return <code>null</code>.
875         *
876     * <p>
877     * <b>Definition:</b>
878     * The person or animal receiving the medication.
879     * </p> 
880         */
881        public ResourceReferenceDt getPatient() {  
882                if (myPatient == null) {
883                        myPatient = new ResourceReferenceDt();
884                }
885                return myPatient;
886        }
887
888        /**
889         * Sets the value(s) for <b>patient</b> (who.focus)
890         *
891     * <p>
892     * <b>Definition:</b>
893     * The person or animal receiving the medication.
894     * </p> 
895         */
896        public MedicationAdministration setPatient(ResourceReferenceDt theValue) {
897                myPatient = theValue;
898                return this;
899        }
900        
901        
902
903  
904        /**
905         * Gets the value(s) for <b>practitioner</b> (who.actor).
906         * creating it if it does
907         * not exist. Will not return <code>null</code>.
908         *
909     * <p>
910     * <b>Definition:</b>
911     * The individual who was responsible for giving the medication to the patient.
912     * </p> 
913         */
914        public ResourceReferenceDt getPractitioner() {  
915                if (myPractitioner == null) {
916                        myPractitioner = new ResourceReferenceDt();
917                }
918                return myPractitioner;
919        }
920
921        /**
922         * Sets the value(s) for <b>practitioner</b> (who.actor)
923         *
924     * <p>
925     * <b>Definition:</b>
926     * The individual who was responsible for giving the medication to the patient.
927     * </p> 
928         */
929        public MedicationAdministration setPractitioner(ResourceReferenceDt theValue) {
930                myPractitioner = theValue;
931                return this;
932        }
933        
934        
935
936  
937        /**
938         * Gets the value(s) for <b>encounter</b> (context).
939         * creating it if it does
940         * not exist. Will not return <code>null</code>.
941         *
942     * <p>
943     * <b>Definition:</b>
944     * The visit, admission or other contact between patient and health care provider the medication administration was performed as part of.
945     * </p> 
946         */
947        public ResourceReferenceDt getEncounter() {  
948                if (myEncounter == null) {
949                        myEncounter = new ResourceReferenceDt();
950                }
951                return myEncounter;
952        }
953
954        /**
955         * Sets the value(s) for <b>encounter</b> (context)
956         *
957     * <p>
958     * <b>Definition:</b>
959     * The visit, admission or other contact between patient and health care provider the medication administration was performed as part of.
960     * </p> 
961         */
962        public MedicationAdministration setEncounter(ResourceReferenceDt theValue) {
963                myEncounter = theValue;
964                return this;
965        }
966        
967        
968
969  
970        /**
971         * Gets the value(s) for <b>prescription</b> ().
972         * creating it if it does
973         * not exist. Will not return <code>null</code>.
974         *
975     * <p>
976     * <b>Definition:</b>
977     * The original request, instruction or authority to perform the administration.
978     * </p> 
979         */
980        public ResourceReferenceDt getPrescription() {  
981                if (myPrescription == null) {
982                        myPrescription = new ResourceReferenceDt();
983                }
984                return myPrescription;
985        }
986
987        /**
988         * Sets the value(s) for <b>prescription</b> ()
989         *
990     * <p>
991     * <b>Definition:</b>
992     * The original request, instruction or authority to perform the administration.
993     * </p> 
994         */
995        public MedicationAdministration setPrescription(ResourceReferenceDt theValue) {
996                myPrescription = theValue;
997                return this;
998        }
999        
1000        
1001
1002  
1003        /**
1004         * Gets the value(s) for <b>wasNotGiven</b> ().
1005         * creating it if it does
1006         * not exist. Will not return <code>null</code>.
1007         *
1008     * <p>
1009     * <b>Definition:</b>
1010     * Set this to true if the record is saying that the medication was NOT administered.
1011     * </p> 
1012         */
1013        public BooleanDt getWasNotGivenElement() {  
1014                if (myWasNotGiven == null) {
1015                        myWasNotGiven = new BooleanDt();
1016                }
1017                return myWasNotGiven;
1018        }
1019
1020        
1021        /**
1022         * Gets the value(s) for <b>wasNotGiven</b> ().
1023         * creating it if it does
1024         * not exist. Will not return <code>null</code>.
1025         *
1026     * <p>
1027     * <b>Definition:</b>
1028     * Set this to true if the record is saying that the medication was NOT administered.
1029     * </p> 
1030         */
1031        public Boolean getWasNotGiven() {  
1032                return getWasNotGivenElement().getValue();
1033        }
1034
1035        /**
1036         * Sets the value(s) for <b>wasNotGiven</b> ()
1037         *
1038     * <p>
1039     * <b>Definition:</b>
1040     * Set this to true if the record is saying that the medication was NOT administered.
1041     * </p> 
1042         */
1043        public MedicationAdministration setWasNotGiven(BooleanDt theValue) {
1044                myWasNotGiven = theValue;
1045                return this;
1046        }
1047        
1048        
1049
1050        /**
1051         * Sets the value for <b>wasNotGiven</b> ()
1052         *
1053     * <p>
1054     * <b>Definition:</b>
1055     * Set this to true if the record is saying that the medication was NOT administered.
1056     * </p> 
1057         */
1058        public MedicationAdministration setWasNotGiven( boolean theBoolean) {
1059                myWasNotGiven = new BooleanDt(theBoolean); 
1060                return this; 
1061        }
1062
1063 
1064        /**
1065         * Gets the value(s) for <b>reasonNotGiven</b> ().
1066         * creating it if it does
1067         * not exist. Will not return <code>null</code>.
1068         *
1069     * <p>
1070     * <b>Definition:</b>
1071     * A code indicating why the administration was not performed.
1072     * </p> 
1073         */
1074        public java.util.List<CodeableConceptDt> getReasonNotGiven() {  
1075                if (myReasonNotGiven == null) {
1076                        myReasonNotGiven = new java.util.ArrayList<CodeableConceptDt>();
1077                }
1078                return myReasonNotGiven;
1079        }
1080
1081        /**
1082         * Sets the value(s) for <b>reasonNotGiven</b> ()
1083         *
1084     * <p>
1085     * <b>Definition:</b>
1086     * A code indicating why the administration was not performed.
1087     * </p> 
1088         */
1089        public MedicationAdministration setReasonNotGiven(java.util.List<CodeableConceptDt> theValue) {
1090                myReasonNotGiven = theValue;
1091                return this;
1092        }
1093        
1094        
1095
1096        /**
1097         * Adds and returns a new value for <b>reasonNotGiven</b> ()
1098         *
1099     * <p>
1100     * <b>Definition:</b>
1101     * A code indicating why the administration was not performed.
1102     * </p> 
1103         */
1104        public CodeableConceptDt addReasonNotGiven() {
1105                CodeableConceptDt newType = new CodeableConceptDt();
1106                getReasonNotGiven().add(newType);
1107                return newType; 
1108        }
1109
1110        /**
1111         * Adds a given new value for <b>reasonNotGiven</b> ()
1112         *
1113         * <p>
1114         * <b>Definition:</b>
1115         * A code indicating why the administration was not performed.
1116         * </p>
1117         * @param theValue The reasonNotGiven to add (must not be <code>null</code>)
1118         */
1119        public MedicationAdministration addReasonNotGiven(CodeableConceptDt theValue) {
1120                if (theValue == null) {
1121                        throw new NullPointerException("theValue must not be null");
1122                }
1123                getReasonNotGiven().add(theValue);
1124                return this;
1125        }
1126
1127        /**
1128         * Gets the first repetition for <b>reasonNotGiven</b> (),
1129         * creating it if it does not already exist.
1130         *
1131     * <p>
1132     * <b>Definition:</b>
1133     * A code indicating why the administration was not performed.
1134     * </p> 
1135         */
1136        public CodeableConceptDt getReasonNotGivenFirstRep() {
1137                if (getReasonNotGiven().isEmpty()) {
1138                        return addReasonNotGiven();
1139                }
1140                return getReasonNotGiven().get(0); 
1141        }
1142  
1143        /**
1144         * Gets the value(s) for <b>reasonGiven</b> ().
1145         * creating it if it does
1146         * not exist. Will not return <code>null</code>.
1147         *
1148     * <p>
1149     * <b>Definition:</b>
1150     * A code indicating why the medication was given.
1151     * </p> 
1152         */
1153        public java.util.List<CodeableConceptDt> getReasonGiven() {  
1154                if (myReasonGiven == null) {
1155                        myReasonGiven = new java.util.ArrayList<CodeableConceptDt>();
1156                }
1157                return myReasonGiven;
1158        }
1159
1160        /**
1161         * Sets the value(s) for <b>reasonGiven</b> ()
1162         *
1163     * <p>
1164     * <b>Definition:</b>
1165     * A code indicating why the medication was given.
1166     * </p> 
1167         */
1168        public MedicationAdministration setReasonGiven(java.util.List<CodeableConceptDt> theValue) {
1169                myReasonGiven = theValue;
1170                return this;
1171        }
1172        
1173        
1174
1175        /**
1176         * Adds and returns a new value for <b>reasonGiven</b> ()
1177         *
1178     * <p>
1179     * <b>Definition:</b>
1180     * A code indicating why the medication was given.
1181     * </p> 
1182         */
1183        public CodeableConceptDt addReasonGiven() {
1184                CodeableConceptDt newType = new CodeableConceptDt();
1185                getReasonGiven().add(newType);
1186                return newType; 
1187        }
1188
1189        /**
1190         * Adds a given new value for <b>reasonGiven</b> ()
1191         *
1192         * <p>
1193         * <b>Definition:</b>
1194         * A code indicating why the medication was given.
1195         * </p>
1196         * @param theValue The reasonGiven to add (must not be <code>null</code>)
1197         */
1198        public MedicationAdministration addReasonGiven(CodeableConceptDt theValue) {
1199                if (theValue == null) {
1200                        throw new NullPointerException("theValue must not be null");
1201                }
1202                getReasonGiven().add(theValue);
1203                return this;
1204        }
1205
1206        /**
1207         * Gets the first repetition for <b>reasonGiven</b> (),
1208         * creating it if it does not already exist.
1209         *
1210     * <p>
1211     * <b>Definition:</b>
1212     * A code indicating why the medication was given.
1213     * </p> 
1214         */
1215        public CodeableConceptDt getReasonGivenFirstRep() {
1216                if (getReasonGiven().isEmpty()) {
1217                        return addReasonGiven();
1218                }
1219                return getReasonGiven().get(0); 
1220        }
1221  
1222        /**
1223         * Gets the value(s) for <b>effectiveTime[x]</b> (when.done).
1224         * creating it if it does
1225         * not exist. Will not return <code>null</code>.
1226         *
1227     * <p>
1228     * <b>Definition:</b>
1229     * A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.
1230     * </p> 
1231         */
1232        public IDatatype getEffectiveTime() {  
1233                return myEffectiveTime;
1234        }
1235
1236        /**
1237         * Sets the value(s) for <b>effectiveTime[x]</b> (when.done)
1238         *
1239     * <p>
1240     * <b>Definition:</b>
1241     * A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate.
1242     * </p> 
1243         */
1244        public MedicationAdministration setEffectiveTime(IDatatype theValue) {
1245                myEffectiveTime = theValue;
1246                return this;
1247        }
1248        
1249        
1250
1251  
1252        /**
1253         * Gets the value(s) for <b>medication[x]</b> ().
1254         * creating it if it does
1255         * not exist. Will not return <code>null</code>.
1256         *
1257     * <p>
1258     * <b>Definition:</b>
1259     * Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.
1260     * </p> 
1261         */
1262        public IDatatype getMedication() {  
1263                return myMedication;
1264        }
1265
1266        /**
1267         * Sets the value(s) for <b>medication[x]</b> ()
1268         *
1269     * <p>
1270     * <b>Definition:</b>
1271     * Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.
1272     * </p> 
1273         */
1274        public MedicationAdministration setMedication(IDatatype theValue) {
1275                myMedication = theValue;
1276                return this;
1277        }
1278        
1279        
1280
1281  
1282        /**
1283         * Gets the value(s) for <b>device</b> ().
1284         * creating it if it does
1285         * not exist. Will not return <code>null</code>.
1286         *
1287     * <p>
1288     * <b>Definition:</b>
1289     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1290     * </p> 
1291         */
1292        public java.util.List<ResourceReferenceDt> getDevice() {  
1293                if (myDevice == null) {
1294                        myDevice = new java.util.ArrayList<ResourceReferenceDt>();
1295                }
1296                return myDevice;
1297        }
1298
1299        /**
1300         * Sets the value(s) for <b>device</b> ()
1301         *
1302     * <p>
1303     * <b>Definition:</b>
1304     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1305     * </p> 
1306         */
1307        public MedicationAdministration setDevice(java.util.List<ResourceReferenceDt> theValue) {
1308                myDevice = theValue;
1309                return this;
1310        }
1311        
1312        
1313
1314        /**
1315         * Adds and returns a new value for <b>device</b> ()
1316         *
1317     * <p>
1318     * <b>Definition:</b>
1319     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1320     * </p> 
1321         */
1322        public ResourceReferenceDt addDevice() {
1323                ResourceReferenceDt newType = new ResourceReferenceDt();
1324                getDevice().add(newType);
1325                return newType; 
1326        }
1327  
1328        /**
1329         * Gets the value(s) for <b>note</b> ().
1330         * creating it if it does
1331         * not exist. Will not return <code>null</code>.
1332         *
1333     * <p>
1334     * <b>Definition:</b>
1335     * Extra information about the medication administration that is not conveyed by the other attributes.
1336     * </p> 
1337         */
1338        public StringDt getNoteElement() {  
1339                if (myNote == null) {
1340                        myNote = new StringDt();
1341                }
1342                return myNote;
1343        }
1344
1345        
1346        /**
1347         * Gets the value(s) for <b>note</b> ().
1348         * creating it if it does
1349         * not exist. Will not return <code>null</code>.
1350         *
1351     * <p>
1352     * <b>Definition:</b>
1353     * Extra information about the medication administration that is not conveyed by the other attributes.
1354     * </p> 
1355         */
1356        public String getNote() {  
1357                return getNoteElement().getValue();
1358        }
1359
1360        /**
1361         * Sets the value(s) for <b>note</b> ()
1362         *
1363     * <p>
1364     * <b>Definition:</b>
1365     * Extra information about the medication administration that is not conveyed by the other attributes.
1366     * </p> 
1367         */
1368        public MedicationAdministration setNote(StringDt theValue) {
1369                myNote = theValue;
1370                return this;
1371        }
1372        
1373        
1374
1375        /**
1376         * Sets the value for <b>note</b> ()
1377         *
1378     * <p>
1379     * <b>Definition:</b>
1380     * Extra information about the medication administration that is not conveyed by the other attributes.
1381     * </p> 
1382         */
1383        public MedicationAdministration setNote( String theString) {
1384                myNote = new StringDt(theString); 
1385                return this; 
1386        }
1387
1388 
1389        /**
1390         * Gets the value(s) for <b>dosage</b> ().
1391         * creating it if it does
1392         * not exist. Will not return <code>null</code>.
1393         *
1394     * <p>
1395     * <b>Definition:</b>
1396     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1397     * </p> 
1398         */
1399        public Dosage getDosage() {  
1400                if (myDosage == null) {
1401                        myDosage = new Dosage();
1402                }
1403                return myDosage;
1404        }
1405
1406        /**
1407         * Sets the value(s) for <b>dosage</b> ()
1408         *
1409     * <p>
1410     * <b>Definition:</b>
1411     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1412     * </p> 
1413         */
1414        public MedicationAdministration setDosage(Dosage theValue) {
1415                myDosage = theValue;
1416                return this;
1417        }
1418        
1419        
1420
1421  
1422        /**
1423         * Block class for child element: <b>MedicationAdministration.dosage</b> ()
1424         *
1425     * <p>
1426     * <b>Definition:</b>
1427     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1428     * </p> 
1429         */
1430        @Block()        
1431        public static class Dosage 
1432            extends  BaseIdentifiableElement        implements IResourceBlock {
1433        
1434        @Child(name="text", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1435        @Description(
1436                shortDefinition="",
1437                formalDefinition="Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication."
1438        )
1439        private StringDt myText;
1440        
1441        @Child(name="site", order=1, min=0, max=1, summary=false, modifier=false, type={
1442                CodeableConceptDt.class,                BodySite.class  })
1443        @Description(
1444                shortDefinition="",
1445                formalDefinition="A coded specification of the anatomic site where the medication first entered the body.  For example, \"left arm\""
1446        )
1447        private IDatatype mySite;
1448        
1449        @Child(name="route", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=false, modifier=false)        
1450        @Description(
1451                shortDefinition="",
1452                formalDefinition="A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient.  For example, topical, intravenous, etc."
1453        )
1454        private CodeableConceptDt myRoute;
1455        
1456        @Child(name="method", type=CodeableConceptDt.class, order=3, min=0, max=1, summary=false, modifier=false)       
1457        @Description(
1458                shortDefinition="",
1459                formalDefinition="A coded value indicating the method by which the medication is intended to be or was introduced into or on the body.  This attribute will most often NOT be populated.  It is most commonly used for injections.  For example, Slow Push, Deep IV."
1460        )
1461        private CodeableConceptDt myMethod;
1462        
1463        @Child(name="quantity", type=SimpleQuantityDt.class, order=4, min=0, max=1, summary=false, modifier=false)      
1464        @Description(
1465                shortDefinition="",
1466                formalDefinition="The amount of the medication given at one administration event.   Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection."
1467        )
1468        private SimpleQuantityDt myQuantity;
1469        
1470        @Child(name="rate", order=5, min=0, max=1, summary=false, modifier=false, type={
1471                RatioDt.class,          RangeDt.class   })
1472        @Description(
1473                shortDefinition="",
1474                formalDefinition="Identifies the speed with which the medication was or will be introduced into the patient.  Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr.  May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours.  Currently we do not specify a default of '1' in the denominator, but this is being discussed.  Other examples:  200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours."
1475        )
1476        private IDatatype myRate;
1477        
1478
1479        @Override
1480        public boolean isEmpty() {
1481                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myText,  mySite,  myRoute,  myMethod,  myQuantity,  myRate);
1482        }
1483        
1484        @Override
1485        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1486                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myText, mySite, myRoute, myMethod, myQuantity, myRate);
1487        }
1488
1489        /**
1490         * Gets the value(s) for <b>text</b> ().
1491         * creating it if it does
1492         * not exist. Will not return <code>null</code>.
1493         *
1494     * <p>
1495     * <b>Definition:</b>
1496     * Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.
1497     * </p> 
1498         */
1499        public StringDt getTextElement() {  
1500                if (myText == null) {
1501                        myText = new StringDt();
1502                }
1503                return myText;
1504        }
1505
1506        
1507        /**
1508         * Gets the value(s) for <b>text</b> ().
1509         * creating it if it does
1510         * not exist. Will not return <code>null</code>.
1511         *
1512     * <p>
1513     * <b>Definition:</b>
1514     * Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.
1515     * </p> 
1516         */
1517        public String getText() {  
1518                return getTextElement().getValue();
1519        }
1520
1521        /**
1522         * Sets the value(s) for <b>text</b> ()
1523         *
1524     * <p>
1525     * <b>Definition:</b>
1526     * Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.
1527     * </p> 
1528         */
1529        public Dosage setText(StringDt theValue) {
1530                myText = theValue;
1531                return this;
1532        }
1533        
1534        
1535
1536        /**
1537         * Sets the value for <b>text</b> ()
1538         *
1539     * <p>
1540     * <b>Definition:</b>
1541     * Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.
1542     * </p> 
1543         */
1544        public Dosage setText( String theString) {
1545                myText = new StringDt(theString); 
1546                return this; 
1547        }
1548
1549 
1550        /**
1551         * Gets the value(s) for <b>site[x]</b> ().
1552         * creating it if it does
1553         * not exist. Will not return <code>null</code>.
1554         *
1555     * <p>
1556     * <b>Definition:</b>
1557     * A coded specification of the anatomic site where the medication first entered the body.  For example, \&quot;left arm\&quot;
1558     * </p> 
1559         */
1560        public IDatatype getSite() {  
1561                return mySite;
1562        }
1563
1564        /**
1565         * Sets the value(s) for <b>site[x]</b> ()
1566         *
1567     * <p>
1568     * <b>Definition:</b>
1569     * A coded specification of the anatomic site where the medication first entered the body.  For example, \&quot;left arm\&quot;
1570     * </p> 
1571         */
1572        public Dosage setSite(IDatatype theValue) {
1573                mySite = theValue;
1574                return this;
1575        }
1576        
1577        
1578
1579  
1580        /**
1581         * Gets the value(s) for <b>route</b> ().
1582         * creating it if it does
1583         * not exist. Will not return <code>null</code>.
1584         *
1585     * <p>
1586     * <b>Definition:</b>
1587     * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient.  For example, topical, intravenous, etc.
1588     * </p> 
1589         */
1590        public CodeableConceptDt getRoute() {  
1591                if (myRoute == null) {
1592                        myRoute = new CodeableConceptDt();
1593                }
1594                return myRoute;
1595        }
1596
1597        /**
1598         * Sets the value(s) for <b>route</b> ()
1599         *
1600     * <p>
1601     * <b>Definition:</b>
1602     * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient.  For example, topical, intravenous, etc.
1603     * </p> 
1604         */
1605        public Dosage setRoute(CodeableConceptDt theValue) {
1606                myRoute = theValue;
1607                return this;
1608        }
1609        
1610        
1611
1612  
1613        /**
1614         * Gets the value(s) for <b>method</b> ().
1615         * creating it if it does
1616         * not exist. Will not return <code>null</code>.
1617         *
1618     * <p>
1619     * <b>Definition:</b>
1620     * A coded value indicating the method by which the medication is intended to be or was introduced into or on the body.  This attribute will most often NOT be populated.  It is most commonly used for injections.  For example, Slow Push, Deep IV.
1621     * </p> 
1622         */
1623        public CodeableConceptDt getMethod() {  
1624                if (myMethod == null) {
1625                        myMethod = new CodeableConceptDt();
1626                }
1627                return myMethod;
1628        }
1629
1630        /**
1631         * Sets the value(s) for <b>method</b> ()
1632         *
1633     * <p>
1634     * <b>Definition:</b>
1635     * A coded value indicating the method by which the medication is intended to be or was introduced into or on the body.  This attribute will most often NOT be populated.  It is most commonly used for injections.  For example, Slow Push, Deep IV.
1636     * </p> 
1637         */
1638        public Dosage setMethod(CodeableConceptDt theValue) {
1639                myMethod = theValue;
1640                return this;
1641        }
1642        
1643        
1644
1645  
1646        /**
1647         * Gets the value(s) for <b>quantity</b> ().
1648         * creating it if it does
1649         * not exist. Will not return <code>null</code>.
1650         *
1651     * <p>
1652     * <b>Definition:</b>
1653     * The amount of the medication given at one administration event.   Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.
1654     * </p> 
1655         */
1656        public SimpleQuantityDt getQuantity() {  
1657                if (myQuantity == null) {
1658                        myQuantity = new SimpleQuantityDt();
1659                }
1660                return myQuantity;
1661        }
1662
1663        /**
1664         * Sets the value(s) for <b>quantity</b> ()
1665         *
1666     * <p>
1667     * <b>Definition:</b>
1668     * The amount of the medication given at one administration event.   Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.
1669     * </p> 
1670         */
1671        public Dosage setQuantity(SimpleQuantityDt theValue) {
1672                myQuantity = theValue;
1673                return this;
1674        }
1675        
1676        
1677
1678  
1679        /**
1680         * Gets the value(s) for <b>rate[x]</b> ().
1681         * creating it if it does
1682         * not exist. Will not return <code>null</code>.
1683         *
1684     * <p>
1685     * <b>Definition:</b>
1686     * Identifies the speed with which the medication was or will be introduced into the patient.  Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr.  May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours.  Currently we do not specify a default of '1' in the denominator, but this is being discussed.  Other examples:  200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.
1687     * </p> 
1688         */
1689        public IDatatype getRate() {  
1690                return myRate;
1691        }
1692
1693        /**
1694         * Sets the value(s) for <b>rate[x]</b> ()
1695         *
1696     * <p>
1697     * <b>Definition:</b>
1698     * Identifies the speed with which the medication was or will be introduced into the patient.  Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr.  May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours.  Currently we do not specify a default of '1' in the denominator, but this is being discussed.  Other examples:  200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.
1699     * </p> 
1700         */
1701        public Dosage setRate(IDatatype theValue) {
1702                myRate = theValue;
1703                return this;
1704        }
1705        
1706        
1707
1708  
1709
1710
1711        }
1712
1713
1714
1715
1716    @Override
1717    public String getResourceName() {
1718        return "MedicationAdministration";
1719    }
1720    
1721    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1722        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1723    }
1724
1725
1726}