001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.valueset.AnimalSpeciesEnum;
042import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
043import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
044import ca.uhn.fhir.model.dstu2.resource.Appointment;
045import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
048import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
049import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
057import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
058import ca.uhn.fhir.model.dstu2.resource.BodySite;
059import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
060import ca.uhn.fhir.model.dstu2.resource.CarePlan;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityCategoryEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
063import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
064import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
065import ca.uhn.fhir.model.dstu2.resource.Claim;
066import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
067import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
068import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
069import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
070import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
071import ca.uhn.fhir.model.dstu2.composite.CodingDt;
072import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
073import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
074import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
075import ca.uhn.fhir.model.dstu2.resource.Composition;
076import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
077import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
078import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
079import ca.uhn.fhir.model.dstu2.resource.Condition;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
082import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
083import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConditionsCodesEnum;
085import ca.uhn.fhir.model.dstu2.resource.Conformance;
086import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
087import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
088import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
089import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
090import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
091import ca.uhn.fhir.model.dstu2.resource.Contract;
092import ca.uhn.fhir.model.dstu2.valueset.ContractActionCodesEnum;
093import ca.uhn.fhir.model.dstu2.valueset.ContractActorRoleCodesEnum;
094import ca.uhn.fhir.model.dstu2.valueset.ContractSubtypeCodesEnum;
095import ca.uhn.fhir.model.dstu2.valueset.ContractTermTypeCodesEnum;
096import ca.uhn.fhir.model.dstu2.valueset.ContractTypeCodesEnum;
097import ca.uhn.fhir.model.dstu2.resource.Coverage;
098import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
101import ca.uhn.fhir.model.dstu2.resource.Device;
102import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
103import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
105import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
106import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
108import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
109import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
110import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
111import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
112import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
113import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
114import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
115import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
116import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
117import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
118import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
119import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
120import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
121import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
122import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
123import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
124import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
125import ca.uhn.fhir.model.dstu2.resource.Encounter;
126import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
127import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
128import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
129import ca.uhn.fhir.model.dstu2.valueset.EncounterTypeEnum;
130import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
131import ca.uhn.fhir.model.dstu2.valueset.EnteralFormulaTypeCodesEnum;
132import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
133import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
134import ca.uhn.fhir.model.dstu2.valueset.ExceptionCodesEnum;
135import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
136import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
137import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
138import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
139import ca.uhn.fhir.model.dstu2.valueset.FlagCategoryCodesEnum;
140import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
141import ca.uhn.fhir.model.dstu2.valueset.FluidConsistencyTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.resource.Goal;
143import ca.uhn.fhir.model.dstu2.valueset.GoalCategoryEnum;
144import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
145import ca.uhn.fhir.model.dstu2.valueset.GoalStartEventEnum;
146import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
147import ca.uhn.fhir.model.dstu2.valueset.GoalStatusReasonEnum;
148import ca.uhn.fhir.model.dstu2.resource.Group;
149import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
150import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
152import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
153import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
154import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
155import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
156import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
157import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
158import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
159import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
160import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
161import ca.uhn.fhir.model.dstu2.resource.Immunization;
162import ca.uhn.fhir.model.dstu2.valueset.ImmunizationReasonCodesEnum;
163import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationDateCriterionCodesEnum;
164import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationStatusCodesEnum;
165import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRouteCodesEnum;
166import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
167import ca.uhn.fhir.model.dstu2.valueset.InterventionCodesEnum;
168import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
169import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
170import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
171import ca.uhn.fhir.model.dstu2.valueset.LateralityEnum;
172import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
175import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
176import ca.uhn.fhir.model.dstu2.resource.Location;
177import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
178import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
179import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
180import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
181import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
182import ca.uhn.fhir.model.dstu2.resource.Media;
183import ca.uhn.fhir.model.dstu2.resource.Medication;
184import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
185import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
187import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
188import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
189import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
190import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
191import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
192import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
193import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
194import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
195import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
196import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
197import ca.uhn.fhir.model.dstu2.valueset.NutrientModifierCodesEnum;
198import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
199import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
200import ca.uhn.fhir.model.dstu2.resource.Observation;
201import ca.uhn.fhir.model.dstu2.valueset.ObservationCategoryCodesEnum;
202import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
203import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
204import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
205import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
206import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
207import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
208import ca.uhn.fhir.model.dstu2.resource.Order;
209import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
210import ca.uhn.fhir.model.dstu2.resource.Organization;
211import ca.uhn.fhir.model.dstu2.valueset.OrganizationTypeEnum;
212import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
213import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
214import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
216import ca.uhn.fhir.model.dstu2.resource.Patient;
217import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
218import ca.uhn.fhir.model.dstu2.valueset.PaymentStatusCodesEnum;
219import ca.uhn.fhir.model.dstu2.valueset.PaymentTypeCodesEnum;
220import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
221import ca.uhn.fhir.model.dstu2.resource.Person;
222import ca.uhn.fhir.model.dstu2.resource.Practitioner;
223import ca.uhn.fhir.model.dstu2.valueset.PractitionerRoleEnum;
224import ca.uhn.fhir.model.dstu2.valueset.PractitionerSpecialtyEnum;
225import ca.uhn.fhir.model.dstu2.valueset.PriorityCodesEnum;
226import ca.uhn.fhir.model.dstu2.resource.Procedure;
227import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
228import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
229import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
230import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
232import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
233import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
234import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
235import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
236import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
237import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
238import ca.uhn.fhir.model.dstu2.composite.RangeDt;
239import ca.uhn.fhir.model.dstu2.composite.RatioDt;
240import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
241import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
242import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
243import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
244import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
245import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
247import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
249import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
250import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
251import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
252import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
253import ca.uhn.fhir.model.dstu2.resource.Schedule;
254import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
255import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
256import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
257import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
258import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
259import ca.uhn.fhir.model.dstu2.resource.Slot;
260import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
261import ca.uhn.fhir.model.dstu2.resource.Specimen;
262import ca.uhn.fhir.model.dstu2.valueset.SpecimenCollectionMethodEnum;
263import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
264import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
265import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
266import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
267import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
268import ca.uhn.fhir.model.dstu2.valueset.SubscriptionTagEnum;
269import ca.uhn.fhir.model.dstu2.resource.Substance;
270import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
271import ca.uhn.fhir.model.dstu2.valueset.SupplementTypeCodesEnum;
272import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
273import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
274import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestReasonEnum;
275import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
276import ca.uhn.fhir.model.dstu2.valueset.SurfaceCodesEnum;
277import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
278import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
279import ca.uhn.fhir.model.dstu2.valueset.TextureModifiedFoodTypeCodesEnum;
280import ca.uhn.fhir.model.dstu2.valueset.TextureModifierCodesEnum;
281import ca.uhn.fhir.model.dstu2.composite.TimingDt;
282import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
283import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
284import ca.uhn.fhir.model.dstu2.valueset.UDICodesEnum;
285import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
286import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
287import ca.uhn.fhir.model.dstu2.resource.ValueSet;
288import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
289import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
290import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
291import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
292import ca.uhn.fhir.model.api.IResource;
293import ca.uhn.fhir.model.dstu2.composite.AgeDt;
294import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
295import ca.uhn.fhir.model.dstu2.composite.DurationDt;
296import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
297import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
298import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
299import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
300import ca.uhn.fhir.model.primitive.Base64BinaryDt;
301import ca.uhn.fhir.model.primitive.BooleanDt;
302import ca.uhn.fhir.model.primitive.BoundCodeDt;
303import ca.uhn.fhir.model.primitive.CodeDt;
304import ca.uhn.fhir.model.primitive.DateDt;
305import ca.uhn.fhir.model.primitive.DateTimeDt;
306import ca.uhn.fhir.model.primitive.DecimalDt;
307import ca.uhn.fhir.model.primitive.IdDt;
308import ca.uhn.fhir.model.primitive.InstantDt;
309import ca.uhn.fhir.model.primitive.IntegerDt;
310import ca.uhn.fhir.model.primitive.OidDt;
311import ca.uhn.fhir.model.primitive.PositiveIntDt;
312import ca.uhn.fhir.model.primitive.StringDt;
313import ca.uhn.fhir.model.primitive.TimeDt;
314import ca.uhn.fhir.model.primitive.UnsignedIntDt;
315import ca.uhn.fhir.model.primitive.UriDt;
316
317
318/**
319 * HAPI/FHIR <b>ReferralRequest</b> Resource
320 * (clinical.careprovision)
321 *
322 * <p>
323 * <b>Definition:</b>
324 * Used to record and send details about a request for referral service or transfer of a patient to the care of another provider or provider organization.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/ReferralRequest">http://hl7.org/fhir/profiles/ReferralRequest</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="ReferralRequest", profile="http://hl7.org/fhir/profiles/ReferralRequest", id="referralrequest")
339public class ReferralRequest extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>status</b>
344         * <p>
345         * Description: <b>The status of the referral</b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>ReferralRequest.status</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="status", path="ReferralRequest.status", description="The status of the referral", type="token"  )
351        public static final String SP_STATUS = "status";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>status</b>
355         * <p>
356         * Description: <b>The status of the referral</b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>ReferralRequest.status</b><br>
359         * </p>
360         */
361        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
362
363        /**
364         * Search parameter constant for <b>date</b>
365         * <p>
366         * Description: <b>Creation or activation date</b><br>
367         * Type: <b>date</b><br>
368         * Path: <b>ReferralRequest.date</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="date", path="ReferralRequest.date", description="Creation or activation date", type="date"  )
372        public static final String SP_DATE = "date";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>date</b>
376         * <p>
377         * Description: <b>Creation or activation date</b><br>
378         * Type: <b>date</b><br>
379         * Path: <b>ReferralRequest.date</b><br>
380         * </p>
381         */
382        public static final DateClientParam DATE = new DateClientParam(SP_DATE);
383
384        /**
385         * Search parameter constant for <b>type</b>
386         * <p>
387         * Description: <b>The type of the referral</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>ReferralRequest.type</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="type", path="ReferralRequest.type", description="The type of the referral", type="token"  )
393        public static final String SP_TYPE = "type";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>type</b>
397         * <p>
398         * Description: <b>The type of the referral</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>ReferralRequest.type</b><br>
401         * </p>
402         */
403        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
404
405        /**
406         * Search parameter constant for <b>specialty</b>
407         * <p>
408         * Description: <b>The specialty that the referral is for</b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>ReferralRequest.specialty</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="specialty", path="ReferralRequest.specialty", description="The specialty that the referral is for", type="token"  )
414        public static final String SP_SPECIALTY = "specialty";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>specialty</b>
418         * <p>
419         * Description: <b>The specialty that the referral is for</b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>ReferralRequest.specialty</b><br>
422         * </p>
423         */
424        public static final TokenClientParam SPECIALTY = new TokenClientParam(SP_SPECIALTY);
425
426        /**
427         * Search parameter constant for <b>priority</b>
428         * <p>
429         * Description: <b>The priority assigned to the referral</b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>ReferralRequest.priority</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="priority", path="ReferralRequest.priority", description="The priority assigned to the referral", type="token"  )
435        public static final String SP_PRIORITY = "priority";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>priority</b>
439         * <p>
440         * Description: <b>The priority assigned to the referral</b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>ReferralRequest.priority</b><br>
443         * </p>
444         */
445        public static final TokenClientParam PRIORITY = new TokenClientParam(SP_PRIORITY);
446
447        /**
448         * Search parameter constant for <b>recipient</b>
449         * <p>
450         * Description: <b>The person that the referral was sent to</b><br>
451         * Type: <b>reference</b><br>
452         * Path: <b>ReferralRequest.recipient</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="recipient", path="ReferralRequest.recipient", description="The person that the referral was sent to", type="reference"  )
456        public static final String SP_RECIPIENT = "recipient";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>recipient</b>
460         * <p>
461         * Description: <b>The person that the referral was sent to</b><br>
462         * Type: <b>reference</b><br>
463         * Path: <b>ReferralRequest.recipient</b><br>
464         * </p>
465         */
466        public static final ReferenceClientParam RECIPIENT = new ReferenceClientParam(SP_RECIPIENT);
467
468        /**
469         * Search parameter constant for <b>patient</b>
470         * <p>
471         * Description: <b>Who the referral is about</b><br>
472         * Type: <b>reference</b><br>
473         * Path: <b>ReferralRequest.patient</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="patient", path="ReferralRequest.patient", description="Who the referral is about", type="reference"  )
477        public static final String SP_PATIENT = "patient";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
481         * <p>
482         * Description: <b>Who the referral is about</b><br>
483         * Type: <b>reference</b><br>
484         * Path: <b>ReferralRequest.patient</b><br>
485         * </p>
486         */
487        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
488
489        /**
490         * Search parameter constant for <b>requester</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>reference</b><br>
494         * Path: <b>ReferralRequest.requester</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="requester", path="ReferralRequest.requester", description="", type="reference"  )
498        public static final String SP_REQUESTER = "requester";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>requester</b>
502         * <p>
503         * Description: <b></b><br>
504         * Type: <b>reference</b><br>
505         * Path: <b>ReferralRequest.requester</b><br>
506         * </p>
507         */
508        public static final ReferenceClientParam REQUESTER = new ReferenceClientParam(SP_REQUESTER);
509
510
511        /**
512         * Constant for fluent queries to be used to add include statements. Specifies
513         * the path value of "<b>ReferralRequest:patient</b>".
514         */
515        public static final Include INCLUDE_PATIENT = new Include("ReferralRequest:patient");
516
517        /**
518         * Constant for fluent queries to be used to add include statements. Specifies
519         * the path value of "<b>ReferralRequest:recipient</b>".
520         */
521        public static final Include INCLUDE_RECIPIENT = new Include("ReferralRequest:recipient");
522
523        /**
524         * Constant for fluent queries to be used to add include statements. Specifies
525         * the path value of "<b>ReferralRequest:requester</b>".
526         */
527        public static final Include INCLUDE_REQUESTER = new Include("ReferralRequest:requester");
528
529
530        @Child(name="status", type=CodeDt.class, order=0, min=1, max=1, summary=true, modifier=true)    
531        @Description(
532                shortDefinition="status",
533                formalDefinition="The workflow status of the referral or transfer of care request"
534        )
535        private BoundCodeDt<ReferralStatusEnum> myStatus;
536        
537        @Child(name="identifier", type=IdentifierDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
538        @Description(
539                shortDefinition="id",
540                formalDefinition="Business identifier that uniquely identifies the referral/care transfer request instance"
541        )
542        private java.util.List<IdentifierDt> myIdentifier;
543        
544        @Child(name="date", type=DateTimeDt.class, order=2, min=0, max=1, summary=true, modifier=false) 
545        @Description(
546                shortDefinition="when.init",
547                formalDefinition="Date/DateTime of creation for draft requests and date of activation for active requests"
548        )
549        private DateTimeDt myDate;
550        
551        @Child(name="type", type=CodeableConceptDt.class, order=3, min=0, max=1, summary=true, modifier=false)  
552        @Description(
553                shortDefinition="class",
554                formalDefinition="An indication of the type of referral (or where applicable the type of transfer of care) request"
555        )
556        private CodeableConceptDt myType;
557        
558        @Child(name="specialty", type=CodeableConceptDt.class, order=4, min=0, max=1, summary=false, modifier=false)    
559        @Description(
560                shortDefinition="",
561                formalDefinition="Indication of the clinical domain or discipline to which the referral or transfer of care request is sent.  For example: Cardiology Gastroenterology Diabetology"
562        )
563        private CodeableConceptDt mySpecialty;
564        
565        @Child(name="priority", type=CodeableConceptDt.class, order=5, min=0, max=1, summary=true, modifier=false)      
566        @Description(
567                shortDefinition="grade",
568                formalDefinition="An indication of the urgency of referral (or where applicable the type of transfer of care) request"
569        )
570        private CodeableConceptDt myPriority;
571        
572        @Child(name="patient", order=6, min=0, max=1, summary=true, modifier=false, type={
573                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
574        @Description(
575                shortDefinition="who.focus",
576                formalDefinition="The patient who is the subject of a referral or transfer of care request"
577        )
578        private ResourceReferenceDt myPatient;
579        
580        @Child(name="requester", order=7, min=0, max=1, summary=true, modifier=false, type={
581                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class,            ca.uhn.fhir.model.dstu2.resource.Patient.class  })
582        @Description(
583                shortDefinition="who.author",
584                formalDefinition="The healthcare provider or provider organization who/which initiated the referral/transfer of care request. Can also be  Patient (a self referral)"
585        )
586        private ResourceReferenceDt myRequester;
587        
588        @Child(name="recipient", order=8, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false, type={
589                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class     })
590        @Description(
591                shortDefinition="who.actor",
592                formalDefinition="The healthcare provider(s) or provider organization(s) who/which is to receive the referral/transfer of care request"
593        )
594        private java.util.List<ResourceReferenceDt> myRecipient;
595        
596        @Child(name="encounter", order=9, min=0, max=1, summary=false, modifier=false, type={
597                ca.uhn.fhir.model.dstu2.resource.Encounter.class        })
598        @Description(
599                shortDefinition="context",
600                formalDefinition="The encounter at which the request for referral or transfer of care is initiated"
601        )
602        private ResourceReferenceDt myEncounter;
603        
604        @Child(name="dateSent", type=DateTimeDt.class, order=10, min=0, max=1, summary=true, modifier=false)    
605        @Description(
606                shortDefinition="when.init",
607                formalDefinition="Date/DateTime the request for referral or transfer of care is sent by the author"
608        )
609        private DateTimeDt myDateSent;
610        
611        @Child(name="reason", type=CodeableConceptDt.class, order=11, min=0, max=1, summary=true, modifier=false)       
612        @Description(
613                shortDefinition="why",
614                formalDefinition="Description of clinical condition indicating why referral/transfer of care is requested.  For example:  Pathological Anomalies, Disabled (physical or mental),  Behavioral Management"
615        )
616        private CodeableConceptDt myReason;
617        
618        @Child(name="description", type=StringDt.class, order=12, min=0, max=1, summary=false, modifier=false)  
619        @Description(
620                shortDefinition="",
621                formalDefinition="The reason element gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary"
622        )
623        private StringDt myDescription;
624        
625        @Child(name="serviceRequested", type=CodeableConceptDt.class, order=13, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)   
626        @Description(
627                shortDefinition="what",
628                formalDefinition="The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion"
629        )
630        private java.util.List<CodeableConceptDt> myServiceRequested;
631        
632        @Child(name="supportingInformation", order=14, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false, type={
633                IResource.class })
634        @Description(
635                shortDefinition="",
636                formalDefinition="Any additional (administrative, financial or clinical) information required to support request for referral or transfer of care.  For example: Presenting problems/chief complaints Medical History Family History Alerts Allergy/Intolerance and Adverse Reactions Medications Observations/Assessments (may include cognitive and fundtional assessments) Diagnostic Reports Care Plan"
637        )
638        private java.util.List<ResourceReferenceDt> mySupportingInformation;
639        
640        @Child(name="fulfillmentTime", type=PeriodDt.class, order=15, min=0, max=1, summary=true, modifier=false)       
641        @Description(
642                shortDefinition="when.planned",
643                formalDefinition="The period of time within which the services identified in the referral/transfer of care is specified or required to occur"
644        )
645        private PeriodDt myFulfillmentTime;
646        
647
648        @Override
649        public boolean isEmpty() {
650                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myStatus,  myIdentifier,  myDate,  myType,  mySpecialty,  myPriority,  myPatient,  myRequester,  myRecipient,  myEncounter,  myDateSent,  myReason,  myDescription,  myServiceRequested,  mySupportingInformation,  myFulfillmentTime);
651        }
652        
653        @Override
654        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
655                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myStatus, myIdentifier, myDate, myType, mySpecialty, myPriority, myPatient, myRequester, myRecipient, myEncounter, myDateSent, myReason, myDescription, myServiceRequested, mySupportingInformation, myFulfillmentTime);
656        }
657
658        /**
659         * Gets the value(s) for <b>status</b> (status).
660         * creating it if it does
661         * not exist. Will not return <code>null</code>.
662         *
663     * <p>
664     * <b>Definition:</b>
665     * The workflow status of the referral or transfer of care request
666     * </p> 
667         */
668        public BoundCodeDt<ReferralStatusEnum> getStatusElement() {  
669                if (myStatus == null) {
670                        myStatus = new BoundCodeDt<ReferralStatusEnum>(ReferralStatusEnum.VALUESET_BINDER);
671                }
672                return myStatus;
673        }
674
675        
676        /**
677         * Gets the value(s) for <b>status</b> (status).
678         * creating it if it does
679         * not exist. Will not return <code>null</code>.
680         *
681     * <p>
682     * <b>Definition:</b>
683     * The workflow status of the referral or transfer of care request
684     * </p> 
685         */
686        public String getStatus() {  
687                return getStatusElement().getValue();
688        }
689
690        /**
691         * Sets the value(s) for <b>status</b> (status)
692         *
693     * <p>
694     * <b>Definition:</b>
695     * The workflow status of the referral or transfer of care request
696     * </p> 
697         */
698        public ReferralRequest setStatus(BoundCodeDt<ReferralStatusEnum> theValue) {
699                myStatus = theValue;
700                return this;
701        }
702        
703        
704
705        /**
706         * Sets the value(s) for <b>status</b> (status)
707         *
708     * <p>
709     * <b>Definition:</b>
710     * The workflow status of the referral or transfer of care request
711     * </p> 
712         */
713        public ReferralRequest setStatus(ReferralStatusEnum theValue) {
714                setStatus(new BoundCodeDt<ReferralStatusEnum>(ReferralStatusEnum.VALUESET_BINDER, theValue));
715                
716/*
717                getStatusElement().setValueAsEnum(theValue);
718*/
719                return this;
720        }
721
722  
723        /**
724         * Gets the value(s) for <b>identifier</b> (id).
725         * creating it if it does
726         * not exist. Will not return <code>null</code>.
727         *
728     * <p>
729     * <b>Definition:</b>
730     * Business identifier that uniquely identifies the referral/care transfer request instance
731     * </p> 
732         */
733        public java.util.List<IdentifierDt> getIdentifier() {  
734                if (myIdentifier == null) {
735                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
736                }
737                return myIdentifier;
738        }
739
740        /**
741         * Sets the value(s) for <b>identifier</b> (id)
742         *
743     * <p>
744     * <b>Definition:</b>
745     * Business identifier that uniquely identifies the referral/care transfer request instance
746     * </p> 
747         */
748        public ReferralRequest setIdentifier(java.util.List<IdentifierDt> theValue) {
749                myIdentifier = theValue;
750                return this;
751        }
752        
753        
754
755        /**
756         * Adds and returns a new value for <b>identifier</b> (id)
757         *
758     * <p>
759     * <b>Definition:</b>
760     * Business identifier that uniquely identifies the referral/care transfer request instance
761     * </p> 
762         */
763        public IdentifierDt addIdentifier() {
764                IdentifierDt newType = new IdentifierDt();
765                getIdentifier().add(newType);
766                return newType; 
767        }
768
769        /**
770         * Adds a given new value for <b>identifier</b> (id)
771         *
772         * <p>
773         * <b>Definition:</b>
774         * Business identifier that uniquely identifies the referral/care transfer request instance
775         * </p>
776         * @param theValue The identifier to add (must not be <code>null</code>)
777         */
778        public ReferralRequest addIdentifier(IdentifierDt theValue) {
779                if (theValue == null) {
780                        throw new NullPointerException("theValue must not be null");
781                }
782                getIdentifier().add(theValue);
783                return this;
784        }
785
786        /**
787         * Gets the first repetition for <b>identifier</b> (id),
788         * creating it if it does not already exist.
789         *
790     * <p>
791     * <b>Definition:</b>
792     * Business identifier that uniquely identifies the referral/care transfer request instance
793     * </p> 
794         */
795        public IdentifierDt getIdentifierFirstRep() {
796                if (getIdentifier().isEmpty()) {
797                        return addIdentifier();
798                }
799                return getIdentifier().get(0); 
800        }
801  
802        /**
803         * Gets the value(s) for <b>date</b> (when.init).
804         * creating it if it does
805         * not exist. Will not return <code>null</code>.
806         *
807     * <p>
808     * <b>Definition:</b>
809     * Date/DateTime of creation for draft requests and date of activation for active requests
810     * </p> 
811         */
812        public DateTimeDt getDateElement() {  
813                if (myDate == null) {
814                        myDate = new DateTimeDt();
815                }
816                return myDate;
817        }
818
819        
820        /**
821         * Gets the value(s) for <b>date</b> (when.init).
822         * creating it if it does
823         * not exist. Will not return <code>null</code>.
824         *
825     * <p>
826     * <b>Definition:</b>
827     * Date/DateTime of creation for draft requests and date of activation for active requests
828     * </p> 
829         */
830        public Date getDate() {  
831                return getDateElement().getValue();
832        }
833
834        /**
835         * Sets the value(s) for <b>date</b> (when.init)
836         *
837     * <p>
838     * <b>Definition:</b>
839     * Date/DateTime of creation for draft requests and date of activation for active requests
840     * </p> 
841         */
842        public ReferralRequest setDate(DateTimeDt theValue) {
843                myDate = theValue;
844                return this;
845        }
846        
847        
848
849        /**
850         * Sets the value for <b>date</b> (when.init)
851         *
852     * <p>
853     * <b>Definition:</b>
854     * Date/DateTime of creation for draft requests and date of activation for active requests
855     * </p> 
856         */
857        public ReferralRequest setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
858                myDate = new DateTimeDt(theDate, thePrecision); 
859                return this; 
860        }
861
862        /**
863         * Sets the value for <b>date</b> (when.init)
864         *
865     * <p>
866     * <b>Definition:</b>
867     * Date/DateTime of creation for draft requests and date of activation for active requests
868     * </p> 
869         */
870        public ReferralRequest setDateWithSecondsPrecision( Date theDate) {
871                myDate = new DateTimeDt(theDate); 
872                return this; 
873        }
874
875 
876        /**
877         * Gets the value(s) for <b>type</b> (class).
878         * creating it if it does
879         * not exist. Will not return <code>null</code>.
880         *
881     * <p>
882     * <b>Definition:</b>
883     * An indication of the type of referral (or where applicable the type of transfer of care) request
884     * </p> 
885         */
886        public CodeableConceptDt getType() {  
887                if (myType == null) {
888                        myType = new CodeableConceptDt();
889                }
890                return myType;
891        }
892
893        /**
894         * Sets the value(s) for <b>type</b> (class)
895         *
896     * <p>
897     * <b>Definition:</b>
898     * An indication of the type of referral (or where applicable the type of transfer of care) request
899     * </p> 
900         */
901        public ReferralRequest setType(CodeableConceptDt theValue) {
902                myType = theValue;
903                return this;
904        }
905        
906        
907
908  
909        /**
910         * Gets the value(s) for <b>specialty</b> ().
911         * creating it if it does
912         * not exist. Will not return <code>null</code>.
913         *
914     * <p>
915     * <b>Definition:</b>
916     * Indication of the clinical domain or discipline to which the referral or transfer of care request is sent.  For example: Cardiology Gastroenterology Diabetology
917     * </p> 
918         */
919        public CodeableConceptDt getSpecialty() {  
920                if (mySpecialty == null) {
921                        mySpecialty = new CodeableConceptDt();
922                }
923                return mySpecialty;
924        }
925
926        /**
927         * Sets the value(s) for <b>specialty</b> ()
928         *
929     * <p>
930     * <b>Definition:</b>
931     * Indication of the clinical domain or discipline to which the referral or transfer of care request is sent.  For example: Cardiology Gastroenterology Diabetology
932     * </p> 
933         */
934        public ReferralRequest setSpecialty(CodeableConceptDt theValue) {
935                mySpecialty = theValue;
936                return this;
937        }
938        
939        
940
941  
942        /**
943         * Gets the value(s) for <b>priority</b> (grade).
944         * creating it if it does
945         * not exist. Will not return <code>null</code>.
946         *
947     * <p>
948     * <b>Definition:</b>
949     * An indication of the urgency of referral (or where applicable the type of transfer of care) request
950     * </p> 
951         */
952        public CodeableConceptDt getPriority() {  
953                if (myPriority == null) {
954                        myPriority = new CodeableConceptDt();
955                }
956                return myPriority;
957        }
958
959        /**
960         * Sets the value(s) for <b>priority</b> (grade)
961         *
962     * <p>
963     * <b>Definition:</b>
964     * An indication of the urgency of referral (or where applicable the type of transfer of care) request
965     * </p> 
966         */
967        public ReferralRequest setPriority(CodeableConceptDt theValue) {
968                myPriority = theValue;
969                return this;
970        }
971        
972        
973
974  
975        /**
976         * Gets the value(s) for <b>patient</b> (who.focus).
977         * creating it if it does
978         * not exist. Will not return <code>null</code>.
979         *
980     * <p>
981     * <b>Definition:</b>
982     * The patient who is the subject of a referral or transfer of care request
983     * </p> 
984         */
985        public ResourceReferenceDt getPatient() {  
986                if (myPatient == null) {
987                        myPatient = new ResourceReferenceDt();
988                }
989                return myPatient;
990        }
991
992        /**
993         * Sets the value(s) for <b>patient</b> (who.focus)
994         *
995     * <p>
996     * <b>Definition:</b>
997     * The patient who is the subject of a referral or transfer of care request
998     * </p> 
999         */
1000        public ReferralRequest setPatient(ResourceReferenceDt theValue) {
1001                myPatient = theValue;
1002                return this;
1003        }
1004        
1005        
1006
1007  
1008        /**
1009         * Gets the value(s) for <b>requester</b> (who.author).
1010         * creating it if it does
1011         * not exist. Will not return <code>null</code>.
1012         *
1013     * <p>
1014     * <b>Definition:</b>
1015     * The healthcare provider or provider organization who/which initiated the referral/transfer of care request. Can also be  Patient (a self referral)
1016     * </p> 
1017         */
1018        public ResourceReferenceDt getRequester() {  
1019                if (myRequester == null) {
1020                        myRequester = new ResourceReferenceDt();
1021                }
1022                return myRequester;
1023        }
1024
1025        /**
1026         * Sets the value(s) for <b>requester</b> (who.author)
1027         *
1028     * <p>
1029     * <b>Definition:</b>
1030     * The healthcare provider or provider organization who/which initiated the referral/transfer of care request. Can also be  Patient (a self referral)
1031     * </p> 
1032         */
1033        public ReferralRequest setRequester(ResourceReferenceDt theValue) {
1034                myRequester = theValue;
1035                return this;
1036        }
1037        
1038        
1039
1040  
1041        /**
1042         * Gets the value(s) for <b>recipient</b> (who.actor).
1043         * creating it if it does
1044         * not exist. Will not return <code>null</code>.
1045         *
1046     * <p>
1047     * <b>Definition:</b>
1048     * The healthcare provider(s) or provider organization(s) who/which is to receive the referral/transfer of care request
1049     * </p> 
1050         */
1051        public java.util.List<ResourceReferenceDt> getRecipient() {  
1052                if (myRecipient == null) {
1053                        myRecipient = new java.util.ArrayList<ResourceReferenceDt>();
1054                }
1055                return myRecipient;
1056        }
1057
1058        /**
1059         * Sets the value(s) for <b>recipient</b> (who.actor)
1060         *
1061     * <p>
1062     * <b>Definition:</b>
1063     * The healthcare provider(s) or provider organization(s) who/which is to receive the referral/transfer of care request
1064     * </p> 
1065         */
1066        public ReferralRequest setRecipient(java.util.List<ResourceReferenceDt> theValue) {
1067                myRecipient = theValue;
1068                return this;
1069        }
1070        
1071        
1072
1073        /**
1074         * Adds and returns a new value for <b>recipient</b> (who.actor)
1075         *
1076     * <p>
1077     * <b>Definition:</b>
1078     * The healthcare provider(s) or provider organization(s) who/which is to receive the referral/transfer of care request
1079     * </p> 
1080         */
1081        public ResourceReferenceDt addRecipient() {
1082                ResourceReferenceDt newType = new ResourceReferenceDt();
1083                getRecipient().add(newType);
1084                return newType; 
1085        }
1086  
1087        /**
1088         * Gets the value(s) for <b>encounter</b> (context).
1089         * creating it if it does
1090         * not exist. Will not return <code>null</code>.
1091         *
1092     * <p>
1093     * <b>Definition:</b>
1094     * The encounter at which the request for referral or transfer of care is initiated
1095     * </p> 
1096         */
1097        public ResourceReferenceDt getEncounter() {  
1098                if (myEncounter == null) {
1099                        myEncounter = new ResourceReferenceDt();
1100                }
1101                return myEncounter;
1102        }
1103
1104        /**
1105         * Sets the value(s) for <b>encounter</b> (context)
1106         *
1107     * <p>
1108     * <b>Definition:</b>
1109     * The encounter at which the request for referral or transfer of care is initiated
1110     * </p> 
1111         */
1112        public ReferralRequest setEncounter(ResourceReferenceDt theValue) {
1113                myEncounter = theValue;
1114                return this;
1115        }
1116        
1117        
1118
1119  
1120        /**
1121         * Gets the value(s) for <b>dateSent</b> (when.init).
1122         * creating it if it does
1123         * not exist. Will not return <code>null</code>.
1124         *
1125     * <p>
1126     * <b>Definition:</b>
1127     * Date/DateTime the request for referral or transfer of care is sent by the author
1128     * </p> 
1129         */
1130        public DateTimeDt getDateSentElement() {  
1131                if (myDateSent == null) {
1132                        myDateSent = new DateTimeDt();
1133                }
1134                return myDateSent;
1135        }
1136
1137        
1138        /**
1139         * Gets the value(s) for <b>dateSent</b> (when.init).
1140         * creating it if it does
1141         * not exist. Will not return <code>null</code>.
1142         *
1143     * <p>
1144     * <b>Definition:</b>
1145     * Date/DateTime the request for referral or transfer of care is sent by the author
1146     * </p> 
1147         */
1148        public Date getDateSent() {  
1149                return getDateSentElement().getValue();
1150        }
1151
1152        /**
1153         * Sets the value(s) for <b>dateSent</b> (when.init)
1154         *
1155     * <p>
1156     * <b>Definition:</b>
1157     * Date/DateTime the request for referral or transfer of care is sent by the author
1158     * </p> 
1159         */
1160        public ReferralRequest setDateSent(DateTimeDt theValue) {
1161                myDateSent = theValue;
1162                return this;
1163        }
1164        
1165        
1166
1167        /**
1168         * Sets the value for <b>dateSent</b> (when.init)
1169         *
1170     * <p>
1171     * <b>Definition:</b>
1172     * Date/DateTime the request for referral or transfer of care is sent by the author
1173     * </p> 
1174         */
1175        public ReferralRequest setDateSent( Date theDate,  TemporalPrecisionEnum thePrecision) {
1176                myDateSent = new DateTimeDt(theDate, thePrecision); 
1177                return this; 
1178        }
1179
1180        /**
1181         * Sets the value for <b>dateSent</b> (when.init)
1182         *
1183     * <p>
1184     * <b>Definition:</b>
1185     * Date/DateTime the request for referral or transfer of care is sent by the author
1186     * </p> 
1187         */
1188        public ReferralRequest setDateSentWithSecondsPrecision( Date theDate) {
1189                myDateSent = new DateTimeDt(theDate); 
1190                return this; 
1191        }
1192
1193 
1194        /**
1195         * Gets the value(s) for <b>reason</b> (why).
1196         * creating it if it does
1197         * not exist. Will not return <code>null</code>.
1198         *
1199     * <p>
1200     * <b>Definition:</b>
1201     * Description of clinical condition indicating why referral/transfer of care is requested.  For example:  Pathological Anomalies, Disabled (physical or mental),  Behavioral Management
1202     * </p> 
1203         */
1204        public CodeableConceptDt getReason() {  
1205                if (myReason == null) {
1206                        myReason = new CodeableConceptDt();
1207                }
1208                return myReason;
1209        }
1210
1211        /**
1212         * Sets the value(s) for <b>reason</b> (why)
1213         *
1214     * <p>
1215     * <b>Definition:</b>
1216     * Description of clinical condition indicating why referral/transfer of care is requested.  For example:  Pathological Anomalies, Disabled (physical or mental),  Behavioral Management
1217     * </p> 
1218         */
1219        public ReferralRequest setReason(CodeableConceptDt theValue) {
1220                myReason = theValue;
1221                return this;
1222        }
1223        
1224        
1225
1226  
1227        /**
1228         * Gets the value(s) for <b>description</b> ().
1229         * creating it if it does
1230         * not exist. Will not return <code>null</code>.
1231         *
1232     * <p>
1233     * <b>Definition:</b>
1234     * The reason element gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary
1235     * </p> 
1236         */
1237        public StringDt getDescriptionElement() {  
1238                if (myDescription == null) {
1239                        myDescription = new StringDt();
1240                }
1241                return myDescription;
1242        }
1243
1244        
1245        /**
1246         * Gets the value(s) for <b>description</b> ().
1247         * creating it if it does
1248         * not exist. Will not return <code>null</code>.
1249         *
1250     * <p>
1251     * <b>Definition:</b>
1252     * The reason element gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary
1253     * </p> 
1254         */
1255        public String getDescription() {  
1256                return getDescriptionElement().getValue();
1257        }
1258
1259        /**
1260         * Sets the value(s) for <b>description</b> ()
1261         *
1262     * <p>
1263     * <b>Definition:</b>
1264     * The reason element gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary
1265     * </p> 
1266         */
1267        public ReferralRequest setDescription(StringDt theValue) {
1268                myDescription = theValue;
1269                return this;
1270        }
1271        
1272        
1273
1274        /**
1275         * Sets the value for <b>description</b> ()
1276         *
1277     * <p>
1278     * <b>Definition:</b>
1279     * The reason element gives a short description of why the referral is being made, the description expands on this to support a more complete clinical summary
1280     * </p> 
1281         */
1282        public ReferralRequest setDescription( String theString) {
1283                myDescription = new StringDt(theString); 
1284                return this; 
1285        }
1286
1287 
1288        /**
1289         * Gets the value(s) for <b>serviceRequested</b> (what).
1290         * creating it if it does
1291         * not exist. Will not return <code>null</code>.
1292         *
1293     * <p>
1294     * <b>Definition:</b>
1295     * The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion
1296     * </p> 
1297         */
1298        public java.util.List<CodeableConceptDt> getServiceRequested() {  
1299                if (myServiceRequested == null) {
1300                        myServiceRequested = new java.util.ArrayList<CodeableConceptDt>();
1301                }
1302                return myServiceRequested;
1303        }
1304
1305        /**
1306         * Sets the value(s) for <b>serviceRequested</b> (what)
1307         *
1308     * <p>
1309     * <b>Definition:</b>
1310     * The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion
1311     * </p> 
1312         */
1313        public ReferralRequest setServiceRequested(java.util.List<CodeableConceptDt> theValue) {
1314                myServiceRequested = theValue;
1315                return this;
1316        }
1317        
1318        
1319
1320        /**
1321         * Adds and returns a new value for <b>serviceRequested</b> (what)
1322         *
1323     * <p>
1324     * <b>Definition:</b>
1325     * The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion
1326     * </p> 
1327         */
1328        public CodeableConceptDt addServiceRequested() {
1329                CodeableConceptDt newType = new CodeableConceptDt();
1330                getServiceRequested().add(newType);
1331                return newType; 
1332        }
1333
1334        /**
1335         * Adds a given new value for <b>serviceRequested</b> (what)
1336         *
1337         * <p>
1338         * <b>Definition:</b>
1339         * The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion
1340         * </p>
1341         * @param theValue The serviceRequested to add (must not be <code>null</code>)
1342         */
1343        public ReferralRequest addServiceRequested(CodeableConceptDt theValue) {
1344                if (theValue == null) {
1345                        throw new NullPointerException("theValue must not be null");
1346                }
1347                getServiceRequested().add(theValue);
1348                return this;
1349        }
1350
1351        /**
1352         * Gets the first repetition for <b>serviceRequested</b> (what),
1353         * creating it if it does not already exist.
1354         *
1355     * <p>
1356     * <b>Definition:</b>
1357     * The service(s) that is/are requested to be provided to the patient.  For example: cardiac pacemaker insertion
1358     * </p> 
1359         */
1360        public CodeableConceptDt getServiceRequestedFirstRep() {
1361                if (getServiceRequested().isEmpty()) {
1362                        return addServiceRequested();
1363                }
1364                return getServiceRequested().get(0); 
1365        }
1366  
1367        /**
1368         * Gets the value(s) for <b>supportingInformation</b> ().
1369         * creating it if it does
1370         * not exist. Will not return <code>null</code>.
1371         *
1372     * <p>
1373     * <b>Definition:</b>
1374     * Any additional (administrative, financial or clinical) information required to support request for referral or transfer of care.  For example: Presenting problems/chief complaints Medical History Family History Alerts Allergy/Intolerance and Adverse Reactions Medications Observations/Assessments (may include cognitive and fundtional assessments) Diagnostic Reports Care Plan
1375     * </p> 
1376         */
1377        public java.util.List<ResourceReferenceDt> getSupportingInformation() {  
1378                if (mySupportingInformation == null) {
1379                        mySupportingInformation = new java.util.ArrayList<ResourceReferenceDt>();
1380                }
1381                return mySupportingInformation;
1382        }
1383
1384        /**
1385         * Sets the value(s) for <b>supportingInformation</b> ()
1386         *
1387     * <p>
1388     * <b>Definition:</b>
1389     * Any additional (administrative, financial or clinical) information required to support request for referral or transfer of care.  For example: Presenting problems/chief complaints Medical History Family History Alerts Allergy/Intolerance and Adverse Reactions Medications Observations/Assessments (may include cognitive and fundtional assessments) Diagnostic Reports Care Plan
1390     * </p> 
1391         */
1392        public ReferralRequest setSupportingInformation(java.util.List<ResourceReferenceDt> theValue) {
1393                mySupportingInformation = theValue;
1394                return this;
1395        }
1396        
1397        
1398
1399        /**
1400         * Adds and returns a new value for <b>supportingInformation</b> ()
1401         *
1402     * <p>
1403     * <b>Definition:</b>
1404     * Any additional (administrative, financial or clinical) information required to support request for referral or transfer of care.  For example: Presenting problems/chief complaints Medical History Family History Alerts Allergy/Intolerance and Adverse Reactions Medications Observations/Assessments (may include cognitive and fundtional assessments) Diagnostic Reports Care Plan
1405     * </p> 
1406         */
1407        public ResourceReferenceDt addSupportingInformation() {
1408                ResourceReferenceDt newType = new ResourceReferenceDt();
1409                getSupportingInformation().add(newType);
1410                return newType; 
1411        }
1412  
1413        /**
1414         * Gets the value(s) for <b>fulfillmentTime</b> (when.planned).
1415         * creating it if it does
1416         * not exist. Will not return <code>null</code>.
1417         *
1418     * <p>
1419     * <b>Definition:</b>
1420     * The period of time within which the services identified in the referral/transfer of care is specified or required to occur
1421     * </p> 
1422         */
1423        public PeriodDt getFulfillmentTime() {  
1424                if (myFulfillmentTime == null) {
1425                        myFulfillmentTime = new PeriodDt();
1426                }
1427                return myFulfillmentTime;
1428        }
1429
1430        /**
1431         * Sets the value(s) for <b>fulfillmentTime</b> (when.planned)
1432         *
1433     * <p>
1434     * <b>Definition:</b>
1435     * The period of time within which the services identified in the referral/transfer of care is specified or required to occur
1436     * </p> 
1437         */
1438        public ReferralRequest setFulfillmentTime(PeriodDt theValue) {
1439                myFulfillmentTime = theValue;
1440                return this;
1441        }
1442        
1443        
1444
1445  
1446
1447
1448    @Override
1449    public String getResourceName() {
1450        return "ReferralRequest";
1451    }
1452    
1453    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1454        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1455    }
1456
1457
1458}