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>SupplyRequest</b> Resource
282 * ()
283 *
284 * <p>
285 * <b>Definition:</b>
286 * A record of a request for a medication, substance or device used in the healthcare setting.
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/SupplyRequest">http://hl7.org/fhir/profiles/SupplyRequest</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="SupplyRequest", profile="http://hl7.org/fhir/profiles/SupplyRequest", id="supplyrequest")
301public class SupplyRequest extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>kind</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>token</b><br>
309         * Path: <b>SupplyRequest.kind</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="kind", path="SupplyRequest.kind", description="", type="token"  )
313        public static final String SP_KIND = "kind";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>kind</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>token</b><br>
320         * Path: <b>SupplyRequest.kind</b><br>
321         * </p>
322         */
323        public static final TokenClientParam KIND = new TokenClientParam(SP_KIND);
324
325        /**
326         * Search parameter constant for <b>identifier</b>
327         * <p>
328         * Description: <b></b><br>
329         * Type: <b>token</b><br>
330         * Path: <b>SupplyRequest.identifier</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="identifier", path="SupplyRequest.identifier", description="", type="token"  )
334        public static final String SP_IDENTIFIER = "identifier";
335
336        /**
337         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
338         * <p>
339         * Description: <b></b><br>
340         * Type: <b>token</b><br>
341         * Path: <b>SupplyRequest.identifier</b><br>
342         * </p>
343         */
344        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
345
346        /**
347         * Search parameter constant for <b>status</b>
348         * <p>
349         * Description: <b></b><br>
350         * Type: <b>token</b><br>
351         * Path: <b>SupplyRequest.status</b><br>
352         * </p>
353         */
354        @SearchParamDefinition(name="status", path="SupplyRequest.status", description="", type="token"  )
355        public static final String SP_STATUS = "status";
356
357        /**
358         * <b>Fluent Client</b> search parameter constant for <b>status</b>
359         * <p>
360         * Description: <b></b><br>
361         * Type: <b>token</b><br>
362         * Path: <b>SupplyRequest.status</b><br>
363         * </p>
364         */
365        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
366
367        /**
368         * Search parameter constant for <b>patient</b>
369         * <p>
370         * Description: <b></b><br>
371         * Type: <b>reference</b><br>
372         * Path: <b>SupplyRequest.patient</b><br>
373         * </p>
374         */
375        @SearchParamDefinition(name="patient", path="SupplyRequest.patient", description="", type="reference" , providesMembershipIn={
376 @Compartment(name="Patient")   }
377 )
378        public static final String SP_PATIENT = "patient";
379
380        /**
381         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
382         * <p>
383         * Description: <b></b><br>
384         * Type: <b>reference</b><br>
385         * Path: <b>SupplyRequest.patient</b><br>
386         * </p>
387         */
388        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
389
390        /**
391         * Search parameter constant for <b>source</b>
392         * <p>
393         * Description: <b></b><br>
394         * Type: <b>reference</b><br>
395         * Path: <b>SupplyRequest.source</b><br>
396         * </p>
397         */
398        @SearchParamDefinition(name="source", path="SupplyRequest.source", description="", type="reference"  )
399        public static final String SP_SOURCE = "source";
400
401        /**
402         * <b>Fluent Client</b> search parameter constant for <b>source</b>
403         * <p>
404         * Description: <b></b><br>
405         * Type: <b>reference</b><br>
406         * Path: <b>SupplyRequest.source</b><br>
407         * </p>
408         */
409        public static final ReferenceClientParam SOURCE = new ReferenceClientParam(SP_SOURCE);
410
411        /**
412         * Search parameter constant for <b>date</b>
413         * <p>
414         * Description: <b></b><br>
415         * Type: <b>date</b><br>
416         * Path: <b>SupplyRequest.date</b><br>
417         * </p>
418         */
419        @SearchParamDefinition(name="date", path="SupplyRequest.date", description="", type="date"  )
420        public static final String SP_DATE = "date";
421
422        /**
423         * <b>Fluent Client</b> search parameter constant for <b>date</b>
424         * <p>
425         * Description: <b></b><br>
426         * Type: <b>date</b><br>
427         * Path: <b>SupplyRequest.date</b><br>
428         * </p>
429         */
430        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
431
432        /**
433         * Search parameter constant for <b>supplier</b>
434         * <p>
435         * Description: <b></b><br>
436         * Type: <b>reference</b><br>
437         * Path: <b>SupplyRequest.supplier</b><br>
438         * </p>
439         */
440        @SearchParamDefinition(name="supplier", path="SupplyRequest.supplier", description="", type="reference"  )
441        public static final String SP_SUPPLIER = "supplier";
442
443        /**
444         * <b>Fluent Client</b> search parameter constant for <b>supplier</b>
445         * <p>
446         * Description: <b></b><br>
447         * Type: <b>reference</b><br>
448         * Path: <b>SupplyRequest.supplier</b><br>
449         * </p>
450         */
451        public static final ReferenceClientParam SUPPLIER = new ReferenceClientParam(SP_SUPPLIER);
452
453
454        /**
455         * Constant for fluent queries to be used to add include statements. Specifies
456         * the path value of "<b>SupplyRequest:patient</b>".
457         */
458        public static final Include INCLUDE_PATIENT = new Include("SupplyRequest:patient");
459
460        /**
461         * Constant for fluent queries to be used to add include statements. Specifies
462         * the path value of "<b>SupplyRequest:source</b>".
463         */
464        public static final Include INCLUDE_SOURCE = new Include("SupplyRequest:source");
465
466        /**
467         * Constant for fluent queries to be used to add include statements. Specifies
468         * the path value of "<b>SupplyRequest:supplier</b>".
469         */
470        public static final Include INCLUDE_SUPPLIER = new Include("SupplyRequest:supplier");
471
472
473        @Child(name="patient", order=0, min=0, max=1, summary=false, modifier=false, type={
474                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
475        @Description(
476                shortDefinition="",
477                formalDefinition="A link to a resource representing the person whom the ordered item is for"
478        )
479        private ResourceReferenceDt myPatient;
480        
481        @Child(name="source", order=1, min=0, max=1, summary=false, modifier=false, type={
482                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class,            ca.uhn.fhir.model.dstu2.resource.Patient.class  })
483        @Description(
484                shortDefinition="",
485                formalDefinition="The Practitioner , Organization or Patient who initiated this order for the supply"
486        )
487        private ResourceReferenceDt mySource;
488        
489        @Child(name="date", type=DateTimeDt.class, order=2, min=0, max=1, summary=false, modifier=false)        
490        @Description(
491                shortDefinition="",
492                formalDefinition="When the request was made"
493        )
494        private DateTimeDt myDate;
495        
496        @Child(name="identifier", type=IdentifierDt.class, order=3, min=0, max=1, summary=false, modifier=false)        
497        @Description(
498                shortDefinition="",
499                formalDefinition="Unique identifier for this supply request"
500        )
501        private IdentifierDt myIdentifier;
502        
503        @Child(name="status", type=CodeDt.class, order=4, min=0, max=1, summary=false, modifier=true)   
504        @Description(
505                shortDefinition="",
506                formalDefinition="Status of the supply request"
507        )
508        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/supplyrequest-status")
509        private BoundCodeDt<SupplyRequestStatusEnum> myStatus;
510        
511        @Child(name="kind", type=CodeableConceptDt.class, order=5, min=0, max=1, summary=false, modifier=false) 
512        @Description(
513                shortDefinition="",
514                formalDefinition="Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process"
515        )
516        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/valueset-supplyrequest-kind")
517        private CodeableConceptDt myKind;
518        
519        @Child(name="orderedItem", order=6, min=0, max=1, summary=false, modifier=false, type={
520                ca.uhn.fhir.model.dstu2.resource.Medication.class,              ca.uhn.fhir.model.dstu2.resource.Substance.class,               ca.uhn.fhir.model.dstu2.resource.Device.class   })
521        @Description(
522                shortDefinition="",
523                formalDefinition="The item that is requested to be supplied"
524        )
525        private ResourceReferenceDt myOrderedItem;
526        
527        @Child(name="supplier", order=7, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
528                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
529        @Description(
530                shortDefinition="",
531                formalDefinition="Who is intended to fulfill the request"
532        )
533        private java.util.List<ResourceReferenceDt> mySupplier;
534        
535        @Child(name="reason", order=8, min=0, max=1, summary=false, modifier=false, type={
536                CodeableConceptDt.class,                IResource.class })
537        @Description(
538                shortDefinition="",
539                formalDefinition="Why the supply item was requested"
540        )
541        private IDatatype myReason;
542        
543        @Child(name="when", order=9, min=0, max=1, summary=false, modifier=false)       
544        @Description(
545                shortDefinition="",
546                formalDefinition="When the request should be fulfilled"
547        )
548        private When myWhen;
549        
550
551        @Override
552        public boolean isEmpty() {
553                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myPatient,  mySource,  myDate,  myIdentifier,  myStatus,  myKind,  myOrderedItem,  mySupplier,  myReason,  myWhen);
554        }
555        
556        @Override
557        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
558                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPatient, mySource, myDate, myIdentifier, myStatus, myKind, myOrderedItem, mySupplier, myReason, myWhen);
559        }
560
561        /**
562         * Gets the value(s) for <b>patient</b> ().
563         * creating it if it does
564         * not exist. Will not return <code>null</code>.
565         *
566     * <p>
567     * <b>Definition:</b>
568     * A link to a resource representing the person whom the ordered item is for
569     * </p> 
570         */
571        public ResourceReferenceDt getPatient() {  
572                if (myPatient == null) {
573                        myPatient = new ResourceReferenceDt();
574                }
575                return myPatient;
576        }
577
578        /**
579         * Sets the value(s) for <b>patient</b> ()
580         *
581     * <p>
582     * <b>Definition:</b>
583     * A link to a resource representing the person whom the ordered item is for
584     * </p> 
585         */
586        public SupplyRequest setPatient(ResourceReferenceDt theValue) {
587                myPatient = theValue;
588                return this;
589        }
590        
591        
592
593  
594        /**
595         * Gets the value(s) for <b>source</b> ().
596         * creating it if it does
597         * not exist. Will not return <code>null</code>.
598         *
599     * <p>
600     * <b>Definition:</b>
601     * The Practitioner , Organization or Patient who initiated this order for the supply
602     * </p> 
603         */
604        public ResourceReferenceDt getSource() {  
605                if (mySource == null) {
606                        mySource = new ResourceReferenceDt();
607                }
608                return mySource;
609        }
610
611        /**
612         * Sets the value(s) for <b>source</b> ()
613         *
614     * <p>
615     * <b>Definition:</b>
616     * The Practitioner , Organization or Patient who initiated this order for the supply
617     * </p> 
618         */
619        public SupplyRequest setSource(ResourceReferenceDt theValue) {
620                mySource = theValue;
621                return this;
622        }
623        
624        
625
626  
627        /**
628         * Gets the value(s) for <b>date</b> ().
629         * creating it if it does
630         * not exist. Will not return <code>null</code>.
631         *
632     * <p>
633     * <b>Definition:</b>
634     * When the request was made
635     * </p> 
636         */
637        public DateTimeDt getDateElement() {  
638                if (myDate == null) {
639                        myDate = new DateTimeDt();
640                }
641                return myDate;
642        }
643
644        
645        /**
646         * Gets the value(s) for <b>date</b> ().
647         * creating it if it does
648         * not exist. This method may return <code>null</code>.
649         *
650     * <p>
651     * <b>Definition:</b>
652     * When the request was made
653     * </p> 
654         */
655        public Date getDate() {  
656                return getDateElement().getValue();
657        }
658
659        /**
660         * Sets the value(s) for <b>date</b> ()
661         *
662     * <p>
663     * <b>Definition:</b>
664     * When the request was made
665     * </p> 
666         */
667        public SupplyRequest setDate(DateTimeDt theValue) {
668                myDate = theValue;
669                return this;
670        }
671        
672        
673
674        /**
675         * Sets the value for <b>date</b> ()
676         *
677     * <p>
678     * <b>Definition:</b>
679     * When the request was made
680     * </p> 
681         */
682        public SupplyRequest setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
683                myDate = new DateTimeDt(theDate, thePrecision); 
684                return this; 
685        }
686
687        /**
688         * Sets the value for <b>date</b> ()
689         *
690     * <p>
691     * <b>Definition:</b>
692     * When the request was made
693     * </p> 
694         */
695        public SupplyRequest setDateWithSecondsPrecision( Date theDate) {
696                myDate = new DateTimeDt(theDate); 
697                return this; 
698        }
699
700 
701        /**
702         * Gets the value(s) for <b>identifier</b> ().
703         * creating it if it does
704         * not exist. Will not return <code>null</code>.
705         *
706     * <p>
707     * <b>Definition:</b>
708     * Unique identifier for this supply request
709     * </p> 
710         */
711        public IdentifierDt getIdentifier() {  
712                if (myIdentifier == null) {
713                        myIdentifier = new IdentifierDt();
714                }
715                return myIdentifier;
716        }
717
718        /**
719         * Sets the value(s) for <b>identifier</b> ()
720         *
721     * <p>
722     * <b>Definition:</b>
723     * Unique identifier for this supply request
724     * </p> 
725         */
726        public SupplyRequest setIdentifier(IdentifierDt theValue) {
727                myIdentifier = theValue;
728                return this;
729        }
730        
731        
732
733  
734        /**
735         * Gets the value(s) for <b>status</b> ().
736         * creating it if it does
737         * not exist. Will not return <code>null</code>.
738         *
739     * <p>
740     * <b>Definition:</b>
741     * Status of the supply request
742     * </p> 
743         */
744        public BoundCodeDt<SupplyRequestStatusEnum> getStatusElement() {  
745                if (myStatus == null) {
746                        myStatus = new BoundCodeDt<SupplyRequestStatusEnum>(SupplyRequestStatusEnum.VALUESET_BINDER);
747                }
748                return myStatus;
749        }
750
751        
752        /**
753         * Gets the value(s) for <b>status</b> ().
754         * creating it if it does
755         * not exist. This method may return <code>null</code>.
756         *
757     * <p>
758     * <b>Definition:</b>
759     * Status of the supply request
760     * </p> 
761         */
762        public String getStatus() {  
763                return getStatusElement().getValue();
764        }
765
766        /**
767         * Sets the value(s) for <b>status</b> ()
768         *
769     * <p>
770     * <b>Definition:</b>
771     * Status of the supply request
772     * </p> 
773         */
774        public SupplyRequest setStatus(BoundCodeDt<SupplyRequestStatusEnum> theValue) {
775                myStatus = theValue;
776                return this;
777        }
778        
779        
780
781        /**
782         * Sets the value(s) for <b>status</b> ()
783         *
784     * <p>
785     * <b>Definition:</b>
786     * Status of the supply request
787     * </p> 
788         */
789        public SupplyRequest setStatus(SupplyRequestStatusEnum theValue) {
790                setStatus(new BoundCodeDt<SupplyRequestStatusEnum>(SupplyRequestStatusEnum.VALUESET_BINDER, theValue));
791                
792/*
793                getStatusElement().setValueAsEnum(theValue);
794*/
795                return this;
796        }
797
798  
799        /**
800         * Gets the value(s) for <b>kind</b> ().
801         * creating it if it does
802         * not exist. Will not return <code>null</code>.
803         *
804     * <p>
805     * <b>Definition:</b>
806     * Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process
807     * </p> 
808         */
809        public CodeableConceptDt getKind() {  
810                if (myKind == null) {
811                        myKind = new CodeableConceptDt();
812                }
813                return myKind;
814        }
815
816        /**
817         * Sets the value(s) for <b>kind</b> ()
818         *
819     * <p>
820     * <b>Definition:</b>
821     * Category of supply, e.g.  central, non-stock, etc. This is used to support work flows associated with the supply process
822     * </p> 
823         */
824        public SupplyRequest setKind(CodeableConceptDt theValue) {
825                myKind = theValue;
826                return this;
827        }
828        
829        
830
831  
832        /**
833         * Gets the value(s) for <b>orderedItem</b> ().
834         * creating it if it does
835         * not exist. Will not return <code>null</code>.
836         *
837     * <p>
838     * <b>Definition:</b>
839     * The item that is requested to be supplied
840     * </p> 
841         */
842        public ResourceReferenceDt getOrderedItem() {  
843                if (myOrderedItem == null) {
844                        myOrderedItem = new ResourceReferenceDt();
845                }
846                return myOrderedItem;
847        }
848
849        /**
850         * Sets the value(s) for <b>orderedItem</b> ()
851         *
852     * <p>
853     * <b>Definition:</b>
854     * The item that is requested to be supplied
855     * </p> 
856         */
857        public SupplyRequest setOrderedItem(ResourceReferenceDt theValue) {
858                myOrderedItem = theValue;
859                return this;
860        }
861        
862        
863
864  
865        /**
866         * Gets the value(s) for <b>supplier</b> ().
867         * creating it if it does
868         * not exist. Will not return <code>null</code>.
869         *
870     * <p>
871     * <b>Definition:</b>
872     * Who is intended to fulfill the request
873     * </p> 
874         */
875        public java.util.List<ResourceReferenceDt> getSupplier() {  
876                if (mySupplier == null) {
877                        mySupplier = new java.util.ArrayList<ResourceReferenceDt>();
878                }
879                return mySupplier;
880        }
881
882        /**
883         * Sets the value(s) for <b>supplier</b> ()
884         *
885     * <p>
886     * <b>Definition:</b>
887     * Who is intended to fulfill the request
888     * </p> 
889         */
890        public SupplyRequest setSupplier(java.util.List<ResourceReferenceDt> theValue) {
891                mySupplier = theValue;
892                return this;
893        }
894        
895        
896
897        /**
898         * Adds and returns a new value for <b>supplier</b> ()
899         *
900     * <p>
901     * <b>Definition:</b>
902     * Who is intended to fulfill the request
903     * </p> 
904         */
905        public ResourceReferenceDt addSupplier() {
906                ResourceReferenceDt newType = new ResourceReferenceDt();
907                getSupplier().add(newType);
908                return newType; 
909        }
910  
911        /**
912         * Gets the value(s) for <b>reason[x]</b> ().
913         * creating it if it does
914         * not exist. Will not return <code>null</code>.
915         *
916     * <p>
917     * <b>Definition:</b>
918     * Why the supply item was requested
919     * </p> 
920         */
921        public IDatatype getReason() {  
922                return myReason;
923        }
924
925        /**
926         * Sets the value(s) for <b>reason[x]</b> ()
927         *
928     * <p>
929     * <b>Definition:</b>
930     * Why the supply item was requested
931     * </p> 
932         */
933        public SupplyRequest setReason(IDatatype theValue) {
934                myReason = theValue;
935                return this;
936        }
937        
938        
939
940  
941        /**
942         * Gets the value(s) for <b>when</b> ().
943         * creating it if it does
944         * not exist. Will not return <code>null</code>.
945         *
946     * <p>
947     * <b>Definition:</b>
948     * When the request should be fulfilled
949     * </p> 
950         */
951        public When getWhen() {  
952                if (myWhen == null) {
953                        myWhen = new When();
954                }
955                return myWhen;
956        }
957
958        /**
959         * Sets the value(s) for <b>when</b> ()
960         *
961     * <p>
962     * <b>Definition:</b>
963     * When the request should be fulfilled
964     * </p> 
965         */
966        public SupplyRequest setWhen(When theValue) {
967                myWhen = theValue;
968                return this;
969        }
970        
971        
972
973  
974        /**
975         * Block class for child element: <b>SupplyRequest.when</b> ()
976         *
977     * <p>
978     * <b>Definition:</b>
979     * When the request should be fulfilled
980     * </p> 
981         */
982        @Block()        
983        public static class When 
984            extends  BaseIdentifiableElement        implements IResourceBlock {
985        
986        @Child(name="code", type=CodeableConceptDt.class, order=0, min=0, max=1, summary=false, modifier=false) 
987        @Description(
988                shortDefinition="",
989                formalDefinition="Code indicating when the request should be fulfilled."
990        )
991        private CodeableConceptDt myCode;
992        
993        @Child(name="schedule", type=TimingDt.class, order=1, min=0, max=1, summary=false, modifier=false)      
994        @Description(
995                shortDefinition="",
996                formalDefinition="Formal fulfillment schedule"
997        )
998        private TimingDt mySchedule;
999        
1000
1001        @Override
1002        public boolean isEmpty() {
1003                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myCode,  mySchedule);
1004        }
1005        
1006        @Override
1007        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1008                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myCode, mySchedule);
1009        }
1010
1011        /**
1012         * Gets the value(s) for <b>code</b> ().
1013         * creating it if it does
1014         * not exist. Will not return <code>null</code>.
1015         *
1016     * <p>
1017     * <b>Definition:</b>
1018     * Code indicating when the request should be fulfilled.
1019     * </p> 
1020         */
1021        public CodeableConceptDt getCode() {  
1022                if (myCode == null) {
1023                        myCode = new CodeableConceptDt();
1024                }
1025                return myCode;
1026        }
1027
1028        /**
1029         * Sets the value(s) for <b>code</b> ()
1030         *
1031     * <p>
1032     * <b>Definition:</b>
1033     * Code indicating when the request should be fulfilled.
1034     * </p> 
1035         */
1036        public When setCode(CodeableConceptDt theValue) {
1037                myCode = theValue;
1038                return this;
1039        }
1040        
1041        
1042
1043  
1044        /**
1045         * Gets the value(s) for <b>schedule</b> ().
1046         * creating it if it does
1047         * not exist. Will not return <code>null</code>.
1048         *
1049     * <p>
1050     * <b>Definition:</b>
1051     * Formal fulfillment schedule
1052     * </p> 
1053         */
1054        public TimingDt getSchedule() {  
1055                if (mySchedule == null) {
1056                        mySchedule = new TimingDt();
1057                }
1058                return mySchedule;
1059        }
1060
1061        /**
1062         * Sets the value(s) for <b>schedule</b> ()
1063         *
1064     * <p>
1065     * <b>Definition:</b>
1066     * Formal fulfillment schedule
1067     * </p> 
1068         */
1069        public When setSchedule(TimingDt theValue) {
1070                mySchedule = theValue;
1071                return this;
1072        }
1073        
1074        
1075
1076  
1077
1078
1079        }
1080
1081
1082
1083
1084    @Override
1085    public String getResourceName() {
1086        return "SupplyRequest";
1087    }
1088    
1089    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1090        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1091    }
1092
1093
1094}