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