001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
042import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
043import ca.uhn.fhir.model.dstu2.resource.Appointment;
044import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
045import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
048import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
049import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
057import ca.uhn.fhir.model.dstu2.resource.BodySite;
058import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
059import ca.uhn.fhir.model.dstu2.resource.CarePlan;
060import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
063import ca.uhn.fhir.model.dstu2.resource.Claim;
064import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
065import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
066import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
067import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
068import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
069import ca.uhn.fhir.model.dstu2.composite.CodingDt;
070import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
071import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
072import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
073import ca.uhn.fhir.model.dstu2.resource.Composition;
074import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
075import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
076import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
077import ca.uhn.fhir.model.dstu2.resource.Condition;
078import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
079import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
082import ca.uhn.fhir.model.dstu2.resource.Conformance;
083import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
085import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
086import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
087import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
088import ca.uhn.fhir.model.dstu2.resource.Contract;
089import ca.uhn.fhir.model.dstu2.resource.Coverage;
090import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
091import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
092import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
093import ca.uhn.fhir.model.dstu2.resource.Device;
094import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
095import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
096import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
097import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
098import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
101import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
102import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
103import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
105import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
106import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
108import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
109import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
110import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
111import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
112import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
113import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
114import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
115import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
116import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
117import ca.uhn.fhir.model.dstu2.resource.Encounter;
118import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
119import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
120import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
121import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
122import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
123import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
124import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
125import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
126import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
127import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
128import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
129import ca.uhn.fhir.model.dstu2.resource.Goal;
130import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
131import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
132import ca.uhn.fhir.model.dstu2.resource.Group;
133import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
134import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
135import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
136import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
137import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
138import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
139import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
140import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
141import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
143import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
144import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
145import ca.uhn.fhir.model.dstu2.resource.Immunization;
146import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
147import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
148import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
149import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
150import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
152import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
153import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
154import ca.uhn.fhir.model.dstu2.resource.Location;
155import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
156import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
157import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
158import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
159import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
160import ca.uhn.fhir.model.dstu2.resource.Media;
161import ca.uhn.fhir.model.dstu2.resource.Medication;
162import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
163import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
164import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
165import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
166import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
167import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
168import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
169import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
170import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
171import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
172import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
175import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
176import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
177import ca.uhn.fhir.model.dstu2.resource.Observation;
178import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
179import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
180import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
181import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
182import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
183import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
184import ca.uhn.fhir.model.dstu2.resource.Order;
185import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.Organization;
187import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
188import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
189import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
190import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
191import ca.uhn.fhir.model.dstu2.resource.Patient;
192import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
193import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
194import ca.uhn.fhir.model.dstu2.resource.Person;
195import ca.uhn.fhir.model.dstu2.resource.Practitioner;
196import ca.uhn.fhir.model.dstu2.resource.Procedure;
197import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
198import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
199import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
200import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
201import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
202import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
203import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
204import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
205import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
206import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
207import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
208import ca.uhn.fhir.model.dstu2.composite.RangeDt;
209import ca.uhn.fhir.model.dstu2.composite.RatioDt;
210import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
211import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
212import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
213import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
214import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
216import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
217import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
218import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
219import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
220import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
221import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
222import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
223import ca.uhn.fhir.model.dstu2.resource.Schedule;
224import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
225import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
226import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
227import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
228import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
229import ca.uhn.fhir.model.dstu2.resource.Slot;
230import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.Specimen;
232import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
233import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
234import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
235import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
236import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
237import ca.uhn.fhir.model.dstu2.resource.Substance;
238import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
239import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
240import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
241import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
242import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
243import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
244import ca.uhn.fhir.model.dstu2.composite.TimingDt;
245import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
247import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
249import ca.uhn.fhir.model.dstu2.resource.ValueSet;
250import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
251import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
252import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
253import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
254import ca.uhn.fhir.model.api.IResource;
255import ca.uhn.fhir.model.dstu2.composite.AgeDt;
256import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
257import ca.uhn.fhir.model.dstu2.composite.DurationDt;
258import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
259import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
260import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
261import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
262import ca.uhn.fhir.model.primitive.Base64BinaryDt;
263import ca.uhn.fhir.model.primitive.BooleanDt;
264import ca.uhn.fhir.model.primitive.BoundCodeDt;
265import ca.uhn.fhir.model.primitive.CodeDt;
266import ca.uhn.fhir.model.primitive.DateDt;
267import ca.uhn.fhir.model.primitive.DateTimeDt;
268import ca.uhn.fhir.model.primitive.DecimalDt;
269import ca.uhn.fhir.model.primitive.IdDt;
270import ca.uhn.fhir.model.primitive.InstantDt;
271import ca.uhn.fhir.model.primitive.IntegerDt;
272import ca.uhn.fhir.model.primitive.OidDt;
273import ca.uhn.fhir.model.primitive.PositiveIntDt;
274import ca.uhn.fhir.model.primitive.StringDt;
275import ca.uhn.fhir.model.primitive.TimeDt;
276import ca.uhn.fhir.model.primitive.UnsignedIntDt;
277import ca.uhn.fhir.model.primitive.UriDt;
278
279
280/**
281 * HAPI/FHIR <b>MedicationAdministration</b> Resource
282 * (clinical.medication)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * 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
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * 
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/MedicationAdministration">http://hl7.org/fhir/profiles/MedicationAdministration</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="MedicationAdministration", profile="http://hl7.org/fhir/profiles/MedicationAdministration", id="medicationadministration")
301public class MedicationAdministration extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>device</b>
306         * <p>
307         * Description: <b>Return administrations with this administration device identity</b><br>
308         * Type: <b>reference</b><br>
309         * Path: <b>MedicationAdministration.device</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="device", path="MedicationAdministration.device", description="Return administrations with this administration device identity", type="reference" , providesMembershipIn={
313 @Compartment(name="Practitioner")      }
314 )
315        public static final String SP_DEVICE = "device";
316
317        /**
318         * <b>Fluent Client</b> search parameter constant for <b>device</b>
319         * <p>
320         * Description: <b>Return administrations with this administration device identity</b><br>
321         * Type: <b>reference</b><br>
322         * Path: <b>MedicationAdministration.device</b><br>
323         * </p>
324         */
325        public static final ReferenceClientParam DEVICE = new ReferenceClientParam(SP_DEVICE);
326
327        /**
328         * Search parameter constant for <b>encounter</b>
329         * <p>
330         * Description: <b>Return administrations that share this encounter</b><br>
331         * Type: <b>reference</b><br>
332         * Path: <b>MedicationAdministration.encounter</b><br>
333         * </p>
334         */
335        @SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter", description="Return administrations that share this encounter", type="reference" , providesMembershipIn={
336 @Compartment(name="Encounter")         }
337 )
338        public static final String SP_ENCOUNTER = "encounter";
339
340        /**
341         * <b>Fluent Client</b> search parameter constant for <b>encounter</b>
342         * <p>
343         * Description: <b>Return administrations that share this encounter</b><br>
344         * Type: <b>reference</b><br>
345         * Path: <b>MedicationAdministration.encounter</b><br>
346         * </p>
347         */
348        public static final ReferenceClientParam ENCOUNTER = new ReferenceClientParam(SP_ENCOUNTER);
349
350        /**
351         * Search parameter constant for <b>identifier</b>
352         * <p>
353         * Description: <b>Return administrations with this external identifier</b><br>
354         * Type: <b>token</b><br>
355         * Path: <b>MedicationAdministration.identifier</b><br>
356         * </p>
357         */
358        @SearchParamDefinition(name="identifier", path="MedicationAdministration.identifier", description="Return administrations with this external identifier", type="token"  )
359        public static final String SP_IDENTIFIER = "identifier";
360
361        /**
362         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
363         * <p>
364         * Description: <b>Return administrations with this external identifier</b><br>
365         * Type: <b>token</b><br>
366         * Path: <b>MedicationAdministration.identifier</b><br>
367         * </p>
368         */
369        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
370
371        /**
372         * Search parameter constant for <b>medication</b>
373         * <p>
374         * Description: <b>Return administrations of this medication resource</b><br>
375         * Type: <b>reference</b><br>
376         * Path: <b>MedicationAdministration.medicationReference</b><br>
377         * </p>
378         */
379        @SearchParamDefinition(name="medication", path="MedicationAdministration.medicationReference", description="Return administrations of this medication resource", type="reference"  )
380        public static final String SP_MEDICATION = "medication";
381
382        /**
383         * <b>Fluent Client</b> search parameter constant for <b>medication</b>
384         * <p>
385         * Description: <b>Return administrations of this medication resource</b><br>
386         * Type: <b>reference</b><br>
387         * Path: <b>MedicationAdministration.medicationReference</b><br>
388         * </p>
389         */
390        public static final ReferenceClientParam MEDICATION = new ReferenceClientParam(SP_MEDICATION);
391
392        /**
393         * Search parameter constant for <b>code</b>
394         * <p>
395         * Description: <b>Return administrations of this medication code</b><br>
396         * Type: <b>token</b><br>
397         * Path: <b>MedicationAdministration.medicationCodeableConcept</b><br>
398         * </p>
399         */
400        @SearchParamDefinition(name="code", path="MedicationAdministration.medicationCodeableConcept", description="Return administrations of this medication code", type="token"  )
401        public static final String SP_CODE = "code";
402
403        /**
404         * <b>Fluent Client</b> search parameter constant for <b>code</b>
405         * <p>
406         * Description: <b>Return administrations of this medication code</b><br>
407         * Type: <b>token</b><br>
408         * Path: <b>MedicationAdministration.medicationCodeableConcept</b><br>
409         * </p>
410         */
411        public static final TokenClientParam CODE = new TokenClientParam(SP_CODE);
412
413        /**
414         * Search parameter constant for <b>notgiven</b>
415         * <p>
416         * Description: <b>Administrations that were not made</b><br>
417         * Type: <b>token</b><br>
418         * Path: <b>MedicationAdministration.wasNotGiven</b><br>
419         * </p>
420         */
421        @SearchParamDefinition(name="notgiven", path="MedicationAdministration.wasNotGiven", description="Administrations that were not made", type="token"  )
422        public static final String SP_NOTGIVEN = "notgiven";
423
424        /**
425         * <b>Fluent Client</b> search parameter constant for <b>notgiven</b>
426         * <p>
427         * Description: <b>Administrations that were not made</b><br>
428         * Type: <b>token</b><br>
429         * Path: <b>MedicationAdministration.wasNotGiven</b><br>
430         * </p>
431         */
432        public static final TokenClientParam NOTGIVEN = new TokenClientParam(SP_NOTGIVEN);
433
434        /**
435         * Search parameter constant for <b>patient</b>
436         * <p>
437         * Description: <b>The identity of a patient to list administrations  for</b><br>
438         * Type: <b>reference</b><br>
439         * Path: <b>MedicationAdministration.patient</b><br>
440         * </p>
441         */
442        @SearchParamDefinition(name="patient", path="MedicationAdministration.patient", description="The identity of a patient to list administrations  for", type="reference" , providesMembershipIn={
443 @Compartment(name="Patient")   }
444 )
445        public static final String SP_PATIENT = "patient";
446
447        /**
448         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
449         * <p>
450         * Description: <b>The identity of a patient to list administrations  for</b><br>
451         * Type: <b>reference</b><br>
452         * Path: <b>MedicationAdministration.patient</b><br>
453         * </p>
454         */
455        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
456
457        /**
458         * Search parameter constant for <b>prescription</b>
459         * <p>
460         * Description: <b>The identity of a prescription to list administrations from</b><br>
461         * Type: <b>reference</b><br>
462         * Path: <b>MedicationAdministration.prescription</b><br>
463         * </p>
464         */
465        @SearchParamDefinition(name="prescription", path="MedicationAdministration.prescription", description="The identity of a prescription to list administrations from", type="reference"  )
466        public static final String SP_PRESCRIPTION = "prescription";
467
468        /**
469         * <b>Fluent Client</b> search parameter constant for <b>prescription</b>
470         * <p>
471         * Description: <b>The identity of a prescription to list administrations from</b><br>
472         * Type: <b>reference</b><br>
473         * Path: <b>MedicationAdministration.prescription</b><br>
474         * </p>
475         */
476        public static final ReferenceClientParam PRESCRIPTION = new ReferenceClientParam(SP_PRESCRIPTION);
477
478        /**
479         * Search parameter constant for <b>status</b>
480         * <p>
481         * Description: <b>MedicationAdministration event status (for example one of active/paused/completed/nullified)</b><br>
482         * Type: <b>token</b><br>
483         * Path: <b>MedicationAdministration.status</b><br>
484         * </p>
485         */
486        @SearchParamDefinition(name="status", path="MedicationAdministration.status", description="MedicationAdministration event status (for example one of active/paused/completed/nullified)", type="token"  )
487        public static final String SP_STATUS = "status";
488
489        /**
490         * <b>Fluent Client</b> search parameter constant for <b>status</b>
491         * <p>
492         * Description: <b>MedicationAdministration event status (for example one of active/paused/completed/nullified)</b><br>
493         * Type: <b>token</b><br>
494         * Path: <b>MedicationAdministration.status</b><br>
495         * </p>
496         */
497        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
498
499        /**
500         * Search parameter constant for <b>effectivetime</b>
501         * <p>
502         * Description: <b>Date administration happened (or did not happen)</b><br>
503         * Type: <b>date</b><br>
504         * Path: <b>MedicationAdministration.effectiveTime[x]</b><br>
505         * </p>
506         */
507        @SearchParamDefinition(name="effectivetime", path="MedicationAdministration.effectiveTime[x]", description="Date administration happened (or did not happen)", type="date"  )
508        public static final String SP_EFFECTIVETIME = "effectivetime";
509
510        /**
511         * <b>Fluent Client</b> search parameter constant for <b>effectivetime</b>
512         * <p>
513         * Description: <b>Date administration happened (or did not happen)</b><br>
514         * Type: <b>date</b><br>
515         * Path: <b>MedicationAdministration.effectiveTime[x]</b><br>
516         * </p>
517         */
518        public static final DateClientParam EFFECTIVETIME = new DateClientParam(SP_EFFECTIVETIME);
519
520        /**
521         * Search parameter constant for <b>practitioner</b>
522         * <p>
523         * Description: <b></b><br>
524         * Type: <b>reference</b><br>
525         * Path: <b>MedicationAdministration.practitioner</b><br>
526         * </p>
527         */
528        @SearchParamDefinition(name="practitioner", path="MedicationAdministration.practitioner", description="", type="reference" , providesMembershipIn={
529 @Compartment(name="RelatedPerson")     }
530 )
531        public static final String SP_PRACTITIONER = "practitioner";
532
533        /**
534         * <b>Fluent Client</b> search parameter constant for <b>practitioner</b>
535         * <p>
536         * Description: <b></b><br>
537         * Type: <b>reference</b><br>
538         * Path: <b>MedicationAdministration.practitioner</b><br>
539         * </p>
540         */
541        public static final ReferenceClientParam PRACTITIONER = new ReferenceClientParam(SP_PRACTITIONER);
542
543
544        /**
545         * Constant for fluent queries to be used to add include statements. Specifies
546         * the path value of "<b>MedicationAdministration:device</b>".
547         */
548        public static final Include INCLUDE_DEVICE = new Include("MedicationAdministration:device");
549
550        /**
551         * Constant for fluent queries to be used to add include statements. Specifies
552         * the path value of "<b>MedicationAdministration:encounter</b>".
553         */
554        public static final Include INCLUDE_ENCOUNTER = new Include("MedicationAdministration:encounter");
555
556        /**
557         * Constant for fluent queries to be used to add include statements. Specifies
558         * the path value of "<b>MedicationAdministration:medication</b>".
559         */
560        public static final Include INCLUDE_MEDICATION = new Include("MedicationAdministration:medication");
561
562        /**
563         * Constant for fluent queries to be used to add include statements. Specifies
564         * the path value of "<b>MedicationAdministration:patient</b>".
565         */
566        public static final Include INCLUDE_PATIENT = new Include("MedicationAdministration:patient");
567
568        /**
569         * Constant for fluent queries to be used to add include statements. Specifies
570         * the path value of "<b>MedicationAdministration:practitioner</b>".
571         */
572        public static final Include INCLUDE_PRACTITIONER = new Include("MedicationAdministration:practitioner");
573
574        /**
575         * Constant for fluent queries to be used to add include statements. Specifies
576         * the path value of "<b>MedicationAdministration:prescription</b>".
577         */
578        public static final Include INCLUDE_PRESCRIPTION = new Include("MedicationAdministration:prescription");
579
580
581        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
582        @Description(
583                shortDefinition="id",
584                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."
585        )
586        private java.util.List<IdentifierDt> myIdentifier;
587        
588        @Child(name="status", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=true)   
589        @Description(
590                shortDefinition="status",
591                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."
592        )
593        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/medication-admin-status")
594        private BoundCodeDt<MedicationAdministrationStatusEnum> myStatus;
595        
596        @Child(name="patient", order=2, min=1, max=1, summary=false, modifier=false, type={
597                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
598        @Description(
599                shortDefinition="who.focus",
600                formalDefinition="The person or animal receiving the medication."
601        )
602        private ResourceReferenceDt myPatient;
603        
604        @Child(name="practitioner", order=3, min=0, max=1, summary=false, modifier=false, type={
605                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class    })
606        @Description(
607                shortDefinition="who.actor",
608                formalDefinition="The individual who was responsible for giving the medication to the patient."
609        )
610        private ResourceReferenceDt myPractitioner;
611        
612        @Child(name="encounter", order=4, min=0, max=1, summary=false, modifier=false, type={
613                ca.uhn.fhir.model.dstu2.resource.Encounter.class        })
614        @Description(
615                shortDefinition="context",
616                formalDefinition="The visit, admission or other contact between patient and health care provider the medication administration was performed as part of."
617        )
618        private ResourceReferenceDt myEncounter;
619        
620        @Child(name="prescription", order=5, min=0, max=1, summary=false, modifier=false, type={
621                ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class  })
622        @Description(
623                shortDefinition="",
624                formalDefinition="The original request, instruction or authority to perform the administration."
625        )
626        private ResourceReferenceDt myPrescription;
627        
628        @Child(name="wasNotGiven", type=BooleanDt.class, order=6, min=0, max=1, summary=false, modifier=true)   
629        @Description(
630                shortDefinition="",
631                formalDefinition="Set this to true if the record is saying that the medication was NOT administered."
632        )
633        private BooleanDt myWasNotGiven;
634        
635        @Child(name="reasonNotGiven", type=CodeableConceptDt.class, order=7, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)     
636        @Description(
637                shortDefinition="",
638                formalDefinition="A code indicating why the administration was not performed."
639        )
640        private java.util.List<CodeableConceptDt> myReasonNotGiven;
641        
642        @Child(name="reasonGiven", type=CodeableConceptDt.class, order=8, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
643        @Description(
644                shortDefinition="",
645                formalDefinition="A code indicating why the medication was given."
646        )
647        private java.util.List<CodeableConceptDt> myReasonGiven;
648        
649        @Child(name="effectiveTime", order=9, min=1, max=1, summary=false, modifier=false, type={
650                DateTimeDt.class,               PeriodDt.class  })
651        @Description(
652                shortDefinition="when.done",
653                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."
654        )
655        private IDatatype myEffectiveTime;
656        
657        @Child(name="medication", order=10, min=1, max=1, summary=false, modifier=false, type={
658                CodeableConceptDt.class,                Medication.class        })
659        @Description(
660                shortDefinition="",
661                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."
662        )
663        private IDatatype myMedication;
664        
665        @Child(name="device", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
666                ca.uhn.fhir.model.dstu2.resource.Device.class   })
667        @Description(
668                shortDefinition="",
669                formalDefinition="The device used in administering the medication to the patient.  For example, a particular infusion pump"
670        )
671        private java.util.List<ResourceReferenceDt> myDevice;
672        
673        @Child(name="note", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
674        @Description(
675                shortDefinition="",
676                formalDefinition="Extra information about the medication administration that is not conveyed by the other attributes."
677        )
678        private StringDt myNote;
679        
680        @Child(name="dosage", order=13, min=0, max=1, summary=false, modifier=false)    
681        @Description(
682                shortDefinition="",
683                formalDefinition="Describes the medication dosage information details e.g. dose, rate, site, route, etc."
684        )
685        private Dosage myDosage;
686        
687
688        @Override
689        public boolean isEmpty() {
690                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myStatus,  myPatient,  myPractitioner,  myEncounter,  myPrescription,  myWasNotGiven,  myReasonNotGiven,  myReasonGiven,  myEffectiveTime,  myMedication,  myDevice,  myNote,  myDosage);
691        }
692        
693        @Override
694        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
695                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myStatus, myPatient, myPractitioner, myEncounter, myPrescription, myWasNotGiven, myReasonNotGiven, myReasonGiven, myEffectiveTime, myMedication, myDevice, myNote, myDosage);
696        }
697
698        /**
699         * Gets the value(s) for <b>identifier</b> (id).
700         * creating it if it does
701         * not exist. Will not return <code>null</code>.
702         *
703     * <p>
704     * <b>Definition:</b>
705     * 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.
706     * </p> 
707         */
708        public java.util.List<IdentifierDt> getIdentifier() {  
709                if (myIdentifier == null) {
710                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
711                }
712                return myIdentifier;
713        }
714
715        /**
716         * Sets the value(s) for <b>identifier</b> (id)
717         *
718     * <p>
719     * <b>Definition:</b>
720     * 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.
721     * </p> 
722         */
723        public MedicationAdministration setIdentifier(java.util.List<IdentifierDt> theValue) {
724                myIdentifier = theValue;
725                return this;
726        }
727        
728        
729
730        /**
731         * Adds and returns a new value for <b>identifier</b> (id)
732         *
733     * <p>
734     * <b>Definition:</b>
735     * 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.
736     * </p> 
737         */
738        public IdentifierDt addIdentifier() {
739                IdentifierDt newType = new IdentifierDt();
740                getIdentifier().add(newType);
741                return newType; 
742        }
743
744        /**
745         * Adds a given new value 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         * @param theValue The identifier to add (must not be <code>null</code>)
752         */
753        public MedicationAdministration addIdentifier(IdentifierDt theValue) {
754                if (theValue == null) {
755                        throw new NullPointerException("theValue must not be null");
756                }
757                getIdentifier().add(theValue);
758                return this;
759        }
760
761        /**
762         * Gets the first repetition for <b>identifier</b> (id),
763         * creating it if it does not already exist.
764         *
765     * <p>
766     * <b>Definition:</b>
767     * 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.
768     * </p> 
769         */
770        public IdentifierDt getIdentifierFirstRep() {
771                if (getIdentifier().isEmpty()) {
772                        return addIdentifier();
773                }
774                return getIdentifier().get(0); 
775        }
776  
777        /**
778         * Gets the value(s) for <b>status</b> (status).
779         * creating it if it does
780         * not exist. Will not return <code>null</code>.
781         *
782     * <p>
783     * <b>Definition:</b>
784     * 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.
785     * </p> 
786         */
787        public BoundCodeDt<MedicationAdministrationStatusEnum> getStatusElement() {  
788                if (myStatus == null) {
789                        myStatus = new BoundCodeDt<MedicationAdministrationStatusEnum>(MedicationAdministrationStatusEnum.VALUESET_BINDER);
790                }
791                return myStatus;
792        }
793
794        
795        /**
796         * Gets the value(s) for <b>status</b> (status).
797         * creating it if it does
798         * not exist. This method may return <code>null</code>.
799         *
800     * <p>
801     * <b>Definition:</b>
802     * 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.
803     * </p> 
804         */
805        public String getStatus() {  
806                return getStatusElement().getValue();
807        }
808
809        /**
810         * Sets the value(s) for <b>status</b> (status)
811         *
812     * <p>
813     * <b>Definition:</b>
814     * 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.
815     * </p> 
816         */
817        public MedicationAdministration setStatus(BoundCodeDt<MedicationAdministrationStatusEnum> theValue) {
818                myStatus = theValue;
819                return this;
820        }
821        
822        
823
824        /**
825         * Sets the value(s) for <b>status</b> (status)
826         *
827     * <p>
828     * <b>Definition:</b>
829     * 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.
830     * </p> 
831         */
832        public MedicationAdministration setStatus(MedicationAdministrationStatusEnum theValue) {
833                setStatus(new BoundCodeDt<MedicationAdministrationStatusEnum>(MedicationAdministrationStatusEnum.VALUESET_BINDER, theValue));
834                
835/*
836                getStatusElement().setValueAsEnum(theValue);
837*/
838                return this;
839        }
840
841  
842        /**
843         * Gets the value(s) for <b>patient</b> (who.focus).
844         * creating it if it does
845         * not exist. Will not return <code>null</code>.
846         *
847     * <p>
848     * <b>Definition:</b>
849     * The person or animal receiving the medication.
850     * </p> 
851         */
852        public ResourceReferenceDt getPatient() {  
853                if (myPatient == null) {
854                        myPatient = new ResourceReferenceDt();
855                }
856                return myPatient;
857        }
858
859        /**
860         * Sets the value(s) for <b>patient</b> (who.focus)
861         *
862     * <p>
863     * <b>Definition:</b>
864     * The person or animal receiving the medication.
865     * </p> 
866         */
867        public MedicationAdministration setPatient(ResourceReferenceDt theValue) {
868                myPatient = theValue;
869                return this;
870        }
871        
872        
873
874  
875        /**
876         * Gets the value(s) for <b>practitioner</b> (who.actor).
877         * creating it if it does
878         * not exist. Will not return <code>null</code>.
879         *
880     * <p>
881     * <b>Definition:</b>
882     * The individual who was responsible for giving the medication to the patient.
883     * </p> 
884         */
885        public ResourceReferenceDt getPractitioner() {  
886                if (myPractitioner == null) {
887                        myPractitioner = new ResourceReferenceDt();
888                }
889                return myPractitioner;
890        }
891
892        /**
893         * Sets the value(s) for <b>practitioner</b> (who.actor)
894         *
895     * <p>
896     * <b>Definition:</b>
897     * The individual who was responsible for giving the medication to the patient.
898     * </p> 
899         */
900        public MedicationAdministration setPractitioner(ResourceReferenceDt theValue) {
901                myPractitioner = theValue;
902                return this;
903        }
904        
905        
906
907  
908        /**
909         * Gets the value(s) for <b>encounter</b> (context).
910         * creating it if it does
911         * not exist. Will not return <code>null</code>.
912         *
913     * <p>
914     * <b>Definition:</b>
915     * The visit, admission or other contact between patient and health care provider the medication administration was performed as part of.
916     * </p> 
917         */
918        public ResourceReferenceDt getEncounter() {  
919                if (myEncounter == null) {
920                        myEncounter = new ResourceReferenceDt();
921                }
922                return myEncounter;
923        }
924
925        /**
926         * Sets the value(s) for <b>encounter</b> (context)
927         *
928     * <p>
929     * <b>Definition:</b>
930     * The visit, admission or other contact between patient and health care provider the medication administration was performed as part of.
931     * </p> 
932         */
933        public MedicationAdministration setEncounter(ResourceReferenceDt theValue) {
934                myEncounter = theValue;
935                return this;
936        }
937        
938        
939
940  
941        /**
942         * Gets the value(s) for <b>prescription</b> ().
943         * creating it if it does
944         * not exist. Will not return <code>null</code>.
945         *
946     * <p>
947     * <b>Definition:</b>
948     * The original request, instruction or authority to perform the administration.
949     * </p> 
950         */
951        public ResourceReferenceDt getPrescription() {  
952                if (myPrescription == null) {
953                        myPrescription = new ResourceReferenceDt();
954                }
955                return myPrescription;
956        }
957
958        /**
959         * Sets the value(s) for <b>prescription</b> ()
960         *
961     * <p>
962     * <b>Definition:</b>
963     * The original request, instruction or authority to perform the administration.
964     * </p> 
965         */
966        public MedicationAdministration setPrescription(ResourceReferenceDt theValue) {
967                myPrescription = theValue;
968                return this;
969        }
970        
971        
972
973  
974        /**
975         * Gets the value(s) for <b>wasNotGiven</b> ().
976         * creating it if it does
977         * not exist. Will not return <code>null</code>.
978         *
979     * <p>
980     * <b>Definition:</b>
981     * Set this to true if the record is saying that the medication was NOT administered.
982     * </p> 
983         */
984        public BooleanDt getWasNotGivenElement() {  
985                if (myWasNotGiven == null) {
986                        myWasNotGiven = new BooleanDt();
987                }
988                return myWasNotGiven;
989        }
990
991        
992        /**
993         * Gets the value(s) for <b>wasNotGiven</b> ().
994         * creating it if it does
995         * not exist. This method may return <code>null</code>.
996         *
997     * <p>
998     * <b>Definition:</b>
999     * Set this to true if the record is saying that the medication was NOT administered.
1000     * </p> 
1001         */
1002        public Boolean getWasNotGiven() {  
1003                return getWasNotGivenElement().getValue();
1004        }
1005
1006        /**
1007         * Sets the value(s) for <b>wasNotGiven</b> ()
1008         *
1009     * <p>
1010     * <b>Definition:</b>
1011     * Set this to true if the record is saying that the medication was NOT administered.
1012     * </p> 
1013         */
1014        public MedicationAdministration setWasNotGiven(BooleanDt theValue) {
1015                myWasNotGiven = theValue;
1016                return this;
1017        }
1018        
1019        
1020
1021        /**
1022         * Sets the value for <b>wasNotGiven</b> ()
1023         *
1024     * <p>
1025     * <b>Definition:</b>
1026     * Set this to true if the record is saying that the medication was NOT administered.
1027     * </p> 
1028         */
1029        public MedicationAdministration setWasNotGiven( boolean theBoolean) {
1030                myWasNotGiven = new BooleanDt(theBoolean); 
1031                return this; 
1032        }
1033
1034 
1035        /**
1036         * Gets the value(s) for <b>reasonNotGiven</b> ().
1037         * creating it if it does
1038         * not exist. Will not return <code>null</code>.
1039         *
1040     * <p>
1041     * <b>Definition:</b>
1042     * A code indicating why the administration was not performed.
1043     * </p> 
1044         */
1045        public java.util.List<CodeableConceptDt> getReasonNotGiven() {  
1046                if (myReasonNotGiven == null) {
1047                        myReasonNotGiven = new java.util.ArrayList<CodeableConceptDt>();
1048                }
1049                return myReasonNotGiven;
1050        }
1051
1052        /**
1053         * Sets the value(s) for <b>reasonNotGiven</b> ()
1054         *
1055     * <p>
1056     * <b>Definition:</b>
1057     * A code indicating why the administration was not performed.
1058     * </p> 
1059         */
1060        public MedicationAdministration setReasonNotGiven(java.util.List<CodeableConceptDt> theValue) {
1061                myReasonNotGiven = theValue;
1062                return this;
1063        }
1064        
1065        
1066
1067        /**
1068         * Adds and returns a new value for <b>reasonNotGiven</b> ()
1069         *
1070     * <p>
1071     * <b>Definition:</b>
1072     * A code indicating why the administration was not performed.
1073     * </p> 
1074         */
1075        public CodeableConceptDt addReasonNotGiven() {
1076                CodeableConceptDt newType = new CodeableConceptDt();
1077                getReasonNotGiven().add(newType);
1078                return newType; 
1079        }
1080
1081        /**
1082         * Adds a given new value for <b>reasonNotGiven</b> ()
1083         *
1084         * <p>
1085         * <b>Definition:</b>
1086         * A code indicating why the administration was not performed.
1087         * </p>
1088         * @param theValue The reasonNotGiven to add (must not be <code>null</code>)
1089         */
1090        public MedicationAdministration addReasonNotGiven(CodeableConceptDt theValue) {
1091                if (theValue == null) {
1092                        throw new NullPointerException("theValue must not be null");
1093                }
1094                getReasonNotGiven().add(theValue);
1095                return this;
1096        }
1097
1098        /**
1099         * Gets the first repetition for <b>reasonNotGiven</b> (),
1100         * creating it if it does not already exist.
1101         *
1102     * <p>
1103     * <b>Definition:</b>
1104     * A code indicating why the administration was not performed.
1105     * </p> 
1106         */
1107        public CodeableConceptDt getReasonNotGivenFirstRep() {
1108                if (getReasonNotGiven().isEmpty()) {
1109                        return addReasonNotGiven();
1110                }
1111                return getReasonNotGiven().get(0); 
1112        }
1113  
1114        /**
1115         * Gets the value(s) for <b>reasonGiven</b> ().
1116         * creating it if it does
1117         * not exist. Will not return <code>null</code>.
1118         *
1119     * <p>
1120     * <b>Definition:</b>
1121     * A code indicating why the medication was given.
1122     * </p> 
1123         */
1124        public java.util.List<CodeableConceptDt> getReasonGiven() {  
1125                if (myReasonGiven == null) {
1126                        myReasonGiven = new java.util.ArrayList<CodeableConceptDt>();
1127                }
1128                return myReasonGiven;
1129        }
1130
1131        /**
1132         * Sets the value(s) for <b>reasonGiven</b> ()
1133         *
1134     * <p>
1135     * <b>Definition:</b>
1136     * A code indicating why the medication was given.
1137     * </p> 
1138         */
1139        public MedicationAdministration setReasonGiven(java.util.List<CodeableConceptDt> theValue) {
1140                myReasonGiven = theValue;
1141                return this;
1142        }
1143        
1144        
1145
1146        /**
1147         * Adds and returns a new value for <b>reasonGiven</b> ()
1148         *
1149     * <p>
1150     * <b>Definition:</b>
1151     * A code indicating why the medication was given.
1152     * </p> 
1153         */
1154        public CodeableConceptDt addReasonGiven() {
1155                CodeableConceptDt newType = new CodeableConceptDt();
1156                getReasonGiven().add(newType);
1157                return newType; 
1158        }
1159
1160        /**
1161         * Adds a given new value for <b>reasonGiven</b> ()
1162         *
1163         * <p>
1164         * <b>Definition:</b>
1165         * A code indicating why the medication was given.
1166         * </p>
1167         * @param theValue The reasonGiven to add (must not be <code>null</code>)
1168         */
1169        public MedicationAdministration addReasonGiven(CodeableConceptDt theValue) {
1170                if (theValue == null) {
1171                        throw new NullPointerException("theValue must not be null");
1172                }
1173                getReasonGiven().add(theValue);
1174                return this;
1175        }
1176
1177        /**
1178         * Gets the first repetition for <b>reasonGiven</b> (),
1179         * creating it if it does not already exist.
1180         *
1181     * <p>
1182     * <b>Definition:</b>
1183     * A code indicating why the medication was given.
1184     * </p> 
1185         */
1186        public CodeableConceptDt getReasonGivenFirstRep() {
1187                if (getReasonGiven().isEmpty()) {
1188                        return addReasonGiven();
1189                }
1190                return getReasonGiven().get(0); 
1191        }
1192  
1193        /**
1194         * Gets the value(s) for <b>effectiveTime[x]</b> (when.done).
1195         * creating it if it does
1196         * not exist. Will not return <code>null</code>.
1197         *
1198     * <p>
1199     * <b>Definition:</b>
1200     * 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.
1201     * </p> 
1202         */
1203        public IDatatype getEffectiveTime() {  
1204                return myEffectiveTime;
1205        }
1206
1207        /**
1208         * Sets the value(s) for <b>effectiveTime[x]</b> (when.done)
1209         *
1210     * <p>
1211     * <b>Definition:</b>
1212     * 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.
1213     * </p> 
1214         */
1215        public MedicationAdministration setEffectiveTime(IDatatype theValue) {
1216                myEffectiveTime = theValue;
1217                return this;
1218        }
1219        
1220        
1221
1222  
1223        /**
1224         * Gets the value(s) for <b>medication[x]</b> ().
1225         * creating it if it does
1226         * not exist. Will not return <code>null</code>.
1227         *
1228     * <p>
1229     * <b>Definition:</b>
1230     * 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.
1231     * </p> 
1232         */
1233        public IDatatype getMedication() {  
1234                return myMedication;
1235        }
1236
1237        /**
1238         * Sets the value(s) for <b>medication[x]</b> ()
1239         *
1240     * <p>
1241     * <b>Definition:</b>
1242     * 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.
1243     * </p> 
1244         */
1245        public MedicationAdministration setMedication(IDatatype theValue) {
1246                myMedication = theValue;
1247                return this;
1248        }
1249        
1250        
1251
1252  
1253        /**
1254         * Gets the value(s) for <b>device</b> ().
1255         * creating it if it does
1256         * not exist. Will not return <code>null</code>.
1257         *
1258     * <p>
1259     * <b>Definition:</b>
1260     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1261     * </p> 
1262         */
1263        public java.util.List<ResourceReferenceDt> getDevice() {  
1264                if (myDevice == null) {
1265                        myDevice = new java.util.ArrayList<ResourceReferenceDt>();
1266                }
1267                return myDevice;
1268        }
1269
1270        /**
1271         * Sets the value(s) for <b>device</b> ()
1272         *
1273     * <p>
1274     * <b>Definition:</b>
1275     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1276     * </p> 
1277         */
1278        public MedicationAdministration setDevice(java.util.List<ResourceReferenceDt> theValue) {
1279                myDevice = theValue;
1280                return this;
1281        }
1282        
1283        
1284
1285        /**
1286         * Adds and returns a new value for <b>device</b> ()
1287         *
1288     * <p>
1289     * <b>Definition:</b>
1290     * The device used in administering the medication to the patient.  For example, a particular infusion pump
1291     * </p> 
1292         */
1293        public ResourceReferenceDt addDevice() {
1294                ResourceReferenceDt newType = new ResourceReferenceDt();
1295                getDevice().add(newType);
1296                return newType; 
1297        }
1298  
1299        /**
1300         * Gets the value(s) for <b>note</b> ().
1301         * creating it if it does
1302         * not exist. Will not return <code>null</code>.
1303         *
1304     * <p>
1305     * <b>Definition:</b>
1306     * Extra information about the medication administration that is not conveyed by the other attributes.
1307     * </p> 
1308         */
1309        public StringDt getNoteElement() {  
1310                if (myNote == null) {
1311                        myNote = new StringDt();
1312                }
1313                return myNote;
1314        }
1315
1316        
1317        /**
1318         * Gets the value(s) for <b>note</b> ().
1319         * creating it if it does
1320         * not exist. This method may return <code>null</code>.
1321         *
1322     * <p>
1323     * <b>Definition:</b>
1324     * Extra information about the medication administration that is not conveyed by the other attributes.
1325     * </p> 
1326         */
1327        public String getNote() {  
1328                return getNoteElement().getValue();
1329        }
1330
1331        /**
1332         * Sets the value(s) for <b>note</b> ()
1333         *
1334     * <p>
1335     * <b>Definition:</b>
1336     * Extra information about the medication administration that is not conveyed by the other attributes.
1337     * </p> 
1338         */
1339        public MedicationAdministration setNote(StringDt theValue) {
1340                myNote = theValue;
1341                return this;
1342        }
1343        
1344        
1345
1346        /**
1347         * Sets the value for <b>note</b> ()
1348         *
1349     * <p>
1350     * <b>Definition:</b>
1351     * Extra information about the medication administration that is not conveyed by the other attributes.
1352     * </p> 
1353         */
1354        public MedicationAdministration setNote( String theString) {
1355                myNote = new StringDt(theString); 
1356                return this; 
1357        }
1358
1359 
1360        /**
1361         * Gets the value(s) for <b>dosage</b> ().
1362         * creating it if it does
1363         * not exist. Will not return <code>null</code>.
1364         *
1365     * <p>
1366     * <b>Definition:</b>
1367     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1368     * </p> 
1369         */
1370        public Dosage getDosage() {  
1371                if (myDosage == null) {
1372                        myDosage = new Dosage();
1373                }
1374                return myDosage;
1375        }
1376
1377        /**
1378         * Sets the value(s) for <b>dosage</b> ()
1379         *
1380     * <p>
1381     * <b>Definition:</b>
1382     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1383     * </p> 
1384         */
1385        public MedicationAdministration setDosage(Dosage theValue) {
1386                myDosage = theValue;
1387                return this;
1388        }
1389        
1390        
1391
1392  
1393        /**
1394         * Block class for child element: <b>MedicationAdministration.dosage</b> ()
1395         *
1396     * <p>
1397     * <b>Definition:</b>
1398     * Describes the medication dosage information details e.g. dose, rate, site, route, etc.
1399     * </p> 
1400         */
1401        @Block()        
1402        public static class Dosage 
1403            extends  BaseIdentifiableElement        implements IResourceBlock {
1404        
1405        @Child(name="text", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1406        @Description(
1407                shortDefinition="",
1408                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."
1409        )
1410        private StringDt myText;
1411        
1412        @Child(name="site", order=1, min=0, max=1, summary=false, modifier=false, type={
1413                CodeableConceptDt.class,                BodySite.class  })
1414        @Description(
1415                shortDefinition="",
1416                formalDefinition="A coded specification of the anatomic site where the medication first entered the body.  For example, \"left arm\""
1417        )
1418        private IDatatype mySite;
1419        
1420        @Child(name="route", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=false, modifier=false)        
1421        @Description(
1422                shortDefinition="",
1423                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."
1424        )
1425        private CodeableConceptDt myRoute;
1426        
1427        @Child(name="method", type=CodeableConceptDt.class, order=3, min=0, max=1, summary=false, modifier=false)       
1428        @Description(
1429                shortDefinition="",
1430                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."
1431        )
1432        private CodeableConceptDt myMethod;
1433        
1434        @Child(name="quantity", type=SimpleQuantityDt.class, order=4, min=0, max=1, summary=false, modifier=false)      
1435        @Description(
1436                shortDefinition="",
1437                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."
1438        )
1439        private SimpleQuantityDt myQuantity;
1440        
1441        @Child(name="rate", order=5, min=0, max=1, summary=false, modifier=false, type={
1442                RatioDt.class,          RangeDt.class   })
1443        @Description(
1444                shortDefinition="",
1445                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."
1446        )
1447        private IDatatype myRate;
1448        
1449
1450        @Override
1451        public boolean isEmpty() {
1452                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myText,  mySite,  myRoute,  myMethod,  myQuantity,  myRate);
1453        }
1454        
1455        @Override
1456        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1457                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myText, mySite, myRoute, myMethod, myQuantity, myRate);
1458        }
1459
1460        /**
1461         * Gets the value(s) for <b>text</b> ().
1462         * creating it if it does
1463         * not exist. Will not return <code>null</code>.
1464         *
1465     * <p>
1466     * <b>Definition:</b>
1467     * 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.
1468     * </p> 
1469         */
1470        public StringDt getTextElement() {  
1471                if (myText == null) {
1472                        myText = new StringDt();
1473                }
1474                return myText;
1475        }
1476
1477        
1478        /**
1479         * Gets the value(s) for <b>text</b> ().
1480         * creating it if it does
1481         * not exist. This method may return <code>null</code>.
1482         *
1483     * <p>
1484     * <b>Definition:</b>
1485     * 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.
1486     * </p> 
1487         */
1488        public String getText() {  
1489                return getTextElement().getValue();
1490        }
1491
1492        /**
1493         * Sets the value(s) for <b>text</b> ()
1494         *
1495     * <p>
1496     * <b>Definition:</b>
1497     * 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.
1498     * </p> 
1499         */
1500        public Dosage setText(StringDt theValue) {
1501                myText = theValue;
1502                return this;
1503        }
1504        
1505        
1506
1507        /**
1508         * Sets the value for <b>text</b> ()
1509         *
1510     * <p>
1511     * <b>Definition:</b>
1512     * 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.
1513     * </p> 
1514         */
1515        public Dosage setText( String theString) {
1516                myText = new StringDt(theString); 
1517                return this; 
1518        }
1519
1520 
1521        /**
1522         * Gets the value(s) for <b>site[x]</b> ().
1523         * creating it if it does
1524         * not exist. Will not return <code>null</code>.
1525         *
1526     * <p>
1527     * <b>Definition:</b>
1528     * A coded specification of the anatomic site where the medication first entered the body.  For example, \&quot;left arm\&quot;
1529     * </p> 
1530         */
1531        public IDatatype getSite() {  
1532                return mySite;
1533        }
1534
1535        /**
1536         * Sets the value(s) for <b>site[x]</b> ()
1537         *
1538     * <p>
1539     * <b>Definition:</b>
1540     * A coded specification of the anatomic site where the medication first entered the body.  For example, \&quot;left arm\&quot;
1541     * </p> 
1542         */
1543        public Dosage setSite(IDatatype theValue) {
1544                mySite = theValue;
1545                return this;
1546        }
1547        
1548        
1549
1550  
1551        /**
1552         * Gets the value(s) for <b>route</b> ().
1553         * creating it if it does
1554         * not exist. Will not return <code>null</code>.
1555         *
1556     * <p>
1557     * <b>Definition:</b>
1558     * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient.  For example, topical, intravenous, etc.
1559     * </p> 
1560         */
1561        public CodeableConceptDt getRoute() {  
1562                if (myRoute == null) {
1563                        myRoute = new CodeableConceptDt();
1564                }
1565                return myRoute;
1566        }
1567
1568        /**
1569         * Sets the value(s) for <b>route</b> ()
1570         *
1571     * <p>
1572     * <b>Definition:</b>
1573     * A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient.  For example, topical, intravenous, etc.
1574     * </p> 
1575         */
1576        public Dosage setRoute(CodeableConceptDt theValue) {
1577                myRoute = theValue;
1578                return this;
1579        }
1580        
1581        
1582
1583  
1584        /**
1585         * Gets the value(s) for <b>method</b> ().
1586         * creating it if it does
1587         * not exist. Will not return <code>null</code>.
1588         *
1589     * <p>
1590     * <b>Definition:</b>
1591     * 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.
1592     * </p> 
1593         */
1594        public CodeableConceptDt getMethod() {  
1595                if (myMethod == null) {
1596                        myMethod = new CodeableConceptDt();
1597                }
1598                return myMethod;
1599        }
1600
1601        /**
1602         * Sets the value(s) for <b>method</b> ()
1603         *
1604     * <p>
1605     * <b>Definition:</b>
1606     * 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.
1607     * </p> 
1608         */
1609        public Dosage setMethod(CodeableConceptDt theValue) {
1610                myMethod = theValue;
1611                return this;
1612        }
1613        
1614        
1615
1616  
1617        /**
1618         * Gets the value(s) for <b>quantity</b> ().
1619         * creating it if it does
1620         * not exist. Will not return <code>null</code>.
1621         *
1622     * <p>
1623     * <b>Definition:</b>
1624     * 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.
1625     * </p> 
1626         */
1627        public SimpleQuantityDt getQuantity() {  
1628                if (myQuantity == null) {
1629                        myQuantity = new SimpleQuantityDt();
1630                }
1631                return myQuantity;
1632        }
1633
1634        /**
1635         * Sets the value(s) for <b>quantity</b> ()
1636         *
1637     * <p>
1638     * <b>Definition:</b>
1639     * 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.
1640     * </p> 
1641         */
1642        public Dosage setQuantity(SimpleQuantityDt theValue) {
1643                myQuantity = theValue;
1644                return this;
1645        }
1646        
1647        
1648
1649  
1650        /**
1651         * Gets the value(s) for <b>rate[x]</b> ().
1652         * creating it if it does
1653         * not exist. Will not return <code>null</code>.
1654         *
1655     * <p>
1656     * <b>Definition:</b>
1657     * 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.
1658     * </p> 
1659         */
1660        public IDatatype getRate() {  
1661                return myRate;
1662        }
1663
1664        /**
1665         * Sets the value(s) for <b>rate[x]</b> ()
1666         *
1667     * <p>
1668     * <b>Definition:</b>
1669     * 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.
1670     * </p> 
1671         */
1672        public Dosage setRate(IDatatype theValue) {
1673                myRate = theValue;
1674                return this;
1675        }
1676        
1677        
1678
1679  
1680
1681
1682        }
1683
1684
1685
1686
1687    @Override
1688    public String getResourceName() {
1689        return "MedicationAdministration";
1690    }
1691    
1692    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1693        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1694    }
1695
1696
1697}