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>Device</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * This resource identifies an instance of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.  Medical devices includes durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health.  Non-medical devices may include items such as a machine, cellphone, computer, application, etc.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * Allows institutions to track their devices. 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/Device">http://hl7.org/fhir/profiles/Device</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="Device", profile="http://hl7.org/fhir/profiles/Device", id="device")
339public class Device extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>type</b>
344         * <p>
345         * Description: <b>The type of the device</b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>Device.type</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="type", path="Device.type", description="The type of the device", type="token"  )
351        public static final String SP_TYPE = "type";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>type</b>
355         * <p>
356         * Description: <b>The type of the device</b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>Device.type</b><br>
359         * </p>
360         */
361        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
362
363        /**
364         * Search parameter constant for <b>manufacturer</b>
365         * <p>
366         * Description: <b>The manufacturer of the device</b><br>
367         * Type: <b>string</b><br>
368         * Path: <b>Device.manufacturer</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="manufacturer", path="Device.manufacturer", description="The manufacturer of the device", type="string"  )
372        public static final String SP_MANUFACTURER = "manufacturer";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>manufacturer</b>
376         * <p>
377         * Description: <b>The manufacturer of the device</b><br>
378         * Type: <b>string</b><br>
379         * Path: <b>Device.manufacturer</b><br>
380         * </p>
381         */
382        public static final StringClientParam MANUFACTURER = new StringClientParam(SP_MANUFACTURER);
383
384        /**
385         * Search parameter constant for <b>model</b>
386         * <p>
387         * Description: <b>The model of the device</b><br>
388         * Type: <b>string</b><br>
389         * Path: <b>Device.model</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="model", path="Device.model", description="The model of the device", type="string"  )
393        public static final String SP_MODEL = "model";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>model</b>
397         * <p>
398         * Description: <b>The model of the device</b><br>
399         * Type: <b>string</b><br>
400         * Path: <b>Device.model</b><br>
401         * </p>
402         */
403        public static final StringClientParam MODEL = new StringClientParam(SP_MODEL);
404
405        /**
406         * Search parameter constant for <b>organization</b>
407         * <p>
408         * Description: <b>The organization responsible for the device</b><br>
409         * Type: <b>reference</b><br>
410         * Path: <b>Device.owner</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="organization", path="Device.owner", description="The organization responsible for the device", type="reference"  )
414        public static final String SP_ORGANIZATION = "organization";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>organization</b>
418         * <p>
419         * Description: <b>The organization responsible for the device</b><br>
420         * Type: <b>reference</b><br>
421         * Path: <b>Device.owner</b><br>
422         * </p>
423         */
424        public static final ReferenceClientParam ORGANIZATION = new ReferenceClientParam(SP_ORGANIZATION);
425
426        /**
427         * Search parameter constant for <b>identifier</b>
428         * <p>
429         * Description: <b>Instance id from manufacturer, owner, and others</b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>Device.identifier</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="identifier", path="Device.identifier", description="Instance id from manufacturer, owner, and others", type="token"  )
435        public static final String SP_IDENTIFIER = "identifier";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
439         * <p>
440         * Description: <b>Instance id from manufacturer, owner, and others</b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>Device.identifier</b><br>
443         * </p>
444         */
445        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
446
447        /**
448         * Search parameter constant for <b>location</b>
449         * <p>
450         * Description: <b>A location, where the resource is found</b><br>
451         * Type: <b>reference</b><br>
452         * Path: <b>Device.location</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="location", path="Device.location", description="A location, where the resource is found", type="reference"  )
456        public static final String SP_LOCATION = "location";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>location</b>
460         * <p>
461         * Description: <b>A location, where the resource is found</b><br>
462         * Type: <b>reference</b><br>
463         * Path: <b>Device.location</b><br>
464         * </p>
465         */
466        public static final ReferenceClientParam LOCATION = new ReferenceClientParam(SP_LOCATION);
467
468        /**
469         * Search parameter constant for <b>patient</b>
470         * <p>
471         * Description: <b>Patient information, if the resource is affixed to a person</b><br>
472         * Type: <b>reference</b><br>
473         * Path: <b>Device.patient</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="patient", path="Device.patient", description="Patient information, if the resource is affixed to a person", 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>Patient information, if the resource is affixed to a person</b><br>
483         * Type: <b>reference</b><br>
484         * Path: <b>Device.patient</b><br>
485         * </p>
486         */
487        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
488
489        /**
490         * Search parameter constant for <b>udi</b>
491         * <p>
492         * Description: <b>FDA mandated Unique Device Identifier</b><br>
493         * Type: <b>string</b><br>
494         * Path: <b>Device.udi</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="udi", path="Device.udi", description="FDA mandated Unique Device Identifier", type="string"  )
498        public static final String SP_UDI = "udi";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>udi</b>
502         * <p>
503         * Description: <b>FDA mandated Unique Device Identifier</b><br>
504         * Type: <b>string</b><br>
505         * Path: <b>Device.udi</b><br>
506         * </p>
507         */
508        public static final StringClientParam UDI = new StringClientParam(SP_UDI);
509
510        /**
511         * Search parameter constant for <b>url</b>
512         * <p>
513         * Description: <b>Network address to contact device</b><br>
514         * Type: <b>uri</b><br>
515         * Path: <b>Device.url</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="url", path="Device.url", description="Network address to contact device", type="uri"  )
519        public static final String SP_URL = "url";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>url</b>
523         * <p>
524         * Description: <b>Network address to contact device</b><br>
525         * Type: <b>uri</b><br>
526         * Path: <b>Device.url</b><br>
527         * </p>
528         */
529        public static final UriClientParam URL = new UriClientParam(SP_URL);
530
531
532        /**
533         * Constant for fluent queries to be used to add include statements. Specifies
534         * the path value of "<b>Device:location</b>".
535         */
536        public static final Include INCLUDE_LOCATION = new Include("Device:location");
537
538        /**
539         * Constant for fluent queries to be used to add include statements. Specifies
540         * the path value of "<b>Device:organization</b>".
541         */
542        public static final Include INCLUDE_ORGANIZATION = new Include("Device:organization");
543
544        /**
545         * Constant for fluent queries to be used to add include statements. Specifies
546         * the path value of "<b>Device:patient</b>".
547         */
548        public static final Include INCLUDE_PATIENT = new Include("Device:patient");
549
550
551        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
552        @Description(
553                shortDefinition="",
554                formalDefinition="Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used."
555        )
556        private java.util.List<IdentifierDt> myIdentifier;
557        
558        @Child(name="type", type=CodeableConceptDt.class, order=1, min=1, max=1, summary=false, modifier=false) 
559        @Description(
560                shortDefinition="",
561                formalDefinition="Code or identifier to identify a kind of device."
562        )
563        private CodeableConceptDt myType;
564        
565        @Child(name="note", type=AnnotationDt.class, order=2, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
566        @Description(
567                shortDefinition="",
568                formalDefinition="Descriptive information, usage information or implantation information that is not captured in an existing element."
569        )
570        private java.util.List<AnnotationDt> myNote;
571        
572        @Child(name="status", type=CodeDt.class, order=3, min=0, max=1, summary=true, modifier=true)    
573        @Description(
574                shortDefinition="",
575                formalDefinition="Status of the Device availability."
576        )
577        private BoundCodeDt<DeviceStatusEnum> myStatus;
578        
579        @Child(name="manufacturer", type=StringDt.class, order=4, min=0, max=1, summary=false, modifier=false)  
580        @Description(
581                shortDefinition="",
582                formalDefinition="A name of the manufacturer"
583        )
584        private StringDt myManufacturer;
585        
586        @Child(name="model", type=StringDt.class, order=5, min=0, max=1, summary=false, modifier=false) 
587        @Description(
588                shortDefinition="",
589                formalDefinition="The \"model\" is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type."
590        )
591        private StringDt myModel;
592        
593        @Child(name="version", type=StringDt.class, order=6, min=0, max=1, summary=false, modifier=false)       
594        @Description(
595                shortDefinition="",
596                formalDefinition="The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware."
597        )
598        private StringDt myVersion;
599        
600        @Child(name="manufactureDate", type=DateTimeDt.class, order=7, min=0, max=1, summary=false, modifier=false)     
601        @Description(
602                shortDefinition="",
603                formalDefinition="The date and time when the device was manufactured."
604        )
605        private DateTimeDt myManufactureDate;
606        
607        @Child(name="expiry", type=DateTimeDt.class, order=8, min=0, max=1, summary=false, modifier=false)      
608        @Description(
609                shortDefinition="",
610                formalDefinition="The date and time beyond which this device is no longer valid or should not be used (if applicable)"
611        )
612        private DateTimeDt myExpiry;
613        
614        @Child(name="udi", type=StringDt.class, order=9, min=0, max=1, summary=false, modifier=false)   
615        @Description(
616                shortDefinition="",
617                formalDefinition="United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode)  - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm"
618        )
619        private StringDt myUdi;
620        
621        @Child(name="lotNumber", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false)    
622        @Description(
623                shortDefinition="",
624                formalDefinition="Lot number assigned by the manufacturer"
625        )
626        private StringDt myLotNumber;
627        
628        @Child(name="owner", order=11, min=0, max=1, summary=false, modifier=false, type={
629                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
630        @Description(
631                shortDefinition="",
632                formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device."
633        )
634        private ResourceReferenceDt myOwner;
635        
636        @Child(name="location", order=12, min=0, max=1, summary=false, modifier=false, type={
637                ca.uhn.fhir.model.dstu2.resource.Location.class })
638        @Description(
639                shortDefinition="",
640                formalDefinition="The place where the device can be found."
641        )
642        private ResourceReferenceDt myLocation;
643        
644        @Child(name="patient", order=13, min=0, max=1, summary=false, modifier=false, type={
645                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
646        @Description(
647                shortDefinition="",
648                formalDefinition="Patient information, if the resource is affixed to a person"
649        )
650        private ResourceReferenceDt myPatient;
651        
652        @Child(name="contact", type=ContactPointDt.class, order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
653        @Description(
654                shortDefinition="",
655                formalDefinition="Contact details for an organization or a particular human that is responsible for the device"
656        )
657        private java.util.List<ContactPointDt> myContact;
658        
659        @Child(name="url", type=UriDt.class, order=15, min=0, max=1, summary=false, modifier=false)     
660        @Description(
661                shortDefinition="",
662                formalDefinition="A network address on which the device may be contacted directly"
663        )
664        private UriDt myUrl;
665        
666
667        @Override
668        public boolean isEmpty() {
669                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myType,  myNote,  myStatus,  myManufacturer,  myModel,  myVersion,  myManufactureDate,  myExpiry,  myUdi,  myLotNumber,  myOwner,  myLocation,  myPatient,  myContact,  myUrl);
670        }
671        
672        @Override
673        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
674                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myType, myNote, myStatus, myManufacturer, myModel, myVersion, myManufactureDate, myExpiry, myUdi, myLotNumber, myOwner, myLocation, myPatient, myContact, myUrl);
675        }
676
677        /**
678         * Gets the value(s) for <b>identifier</b> ().
679         * creating it if it does
680         * not exist. Will not return <code>null</code>.
681         *
682     * <p>
683     * <b>Definition:</b>
684     * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.
685     * </p> 
686         */
687        public java.util.List<IdentifierDt> getIdentifier() {  
688                if (myIdentifier == null) {
689                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
690                }
691                return myIdentifier;
692        }
693
694        /**
695         * Sets the value(s) for <b>identifier</b> ()
696         *
697     * <p>
698     * <b>Definition:</b>
699     * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.
700     * </p> 
701         */
702        public Device setIdentifier(java.util.List<IdentifierDt> theValue) {
703                myIdentifier = theValue;
704                return this;
705        }
706        
707        
708
709        /**
710         * Adds and returns a new value for <b>identifier</b> ()
711         *
712     * <p>
713     * <b>Definition:</b>
714     * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.
715     * </p> 
716         */
717        public IdentifierDt addIdentifier() {
718                IdentifierDt newType = new IdentifierDt();
719                getIdentifier().add(newType);
720                return newType; 
721        }
722
723        /**
724         * Adds a given new value for <b>identifier</b> ()
725         *
726         * <p>
727         * <b>Definition:</b>
728         * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.
729         * </p>
730         * @param theValue The identifier to add (must not be <code>null</code>)
731         */
732        public Device addIdentifier(IdentifierDt theValue) {
733                if (theValue == null) {
734                        throw new NullPointerException("theValue must not be null");
735                }
736                getIdentifier().add(theValue);
737                return this;
738        }
739
740        /**
741         * Gets the first repetition for <b>identifier</b> (),
742         * creating it if it does not already exist.
743         *
744     * <p>
745     * <b>Definition:</b>
746     * Unique instance identifiers assigned to a device by organizations like manufacturers or owners. If the identifier identifies the type of device, Device.type should be used.
747     * </p> 
748         */
749        public IdentifierDt getIdentifierFirstRep() {
750                if (getIdentifier().isEmpty()) {
751                        return addIdentifier();
752                }
753                return getIdentifier().get(0); 
754        }
755  
756        /**
757         * Gets the value(s) for <b>type</b> ().
758         * creating it if it does
759         * not exist. Will not return <code>null</code>.
760         *
761     * <p>
762     * <b>Definition:</b>
763     * Code or identifier to identify a kind of device.
764     * </p> 
765         */
766        public CodeableConceptDt getType() {  
767                if (myType == null) {
768                        myType = new CodeableConceptDt();
769                }
770                return myType;
771        }
772
773        /**
774         * Sets the value(s) for <b>type</b> ()
775         *
776     * <p>
777     * <b>Definition:</b>
778     * Code or identifier to identify a kind of device.
779     * </p> 
780         */
781        public Device setType(CodeableConceptDt theValue) {
782                myType = theValue;
783                return this;
784        }
785        
786        
787
788  
789        /**
790         * Gets the value(s) for <b>note</b> ().
791         * creating it if it does
792         * not exist. Will not return <code>null</code>.
793         *
794     * <p>
795     * <b>Definition:</b>
796     * Descriptive information, usage information or implantation information that is not captured in an existing element.
797     * </p> 
798         */
799        public java.util.List<AnnotationDt> getNote() {  
800                if (myNote == null) {
801                        myNote = new java.util.ArrayList<AnnotationDt>();
802                }
803                return myNote;
804        }
805
806        /**
807         * Sets the value(s) for <b>note</b> ()
808         *
809     * <p>
810     * <b>Definition:</b>
811     * Descriptive information, usage information or implantation information that is not captured in an existing element.
812     * </p> 
813         */
814        public Device setNote(java.util.List<AnnotationDt> theValue) {
815                myNote = theValue;
816                return this;
817        }
818        
819        
820
821        /**
822         * Adds and returns a new value for <b>note</b> ()
823         *
824     * <p>
825     * <b>Definition:</b>
826     * Descriptive information, usage information or implantation information that is not captured in an existing element.
827     * </p> 
828         */
829        public AnnotationDt addNote() {
830                AnnotationDt newType = new AnnotationDt();
831                getNote().add(newType);
832                return newType; 
833        }
834
835        /**
836         * Adds a given new value for <b>note</b> ()
837         *
838         * <p>
839         * <b>Definition:</b>
840         * Descriptive information, usage information or implantation information that is not captured in an existing element.
841         * </p>
842         * @param theValue The note to add (must not be <code>null</code>)
843         */
844        public Device addNote(AnnotationDt theValue) {
845                if (theValue == null) {
846                        throw new NullPointerException("theValue must not be null");
847                }
848                getNote().add(theValue);
849                return this;
850        }
851
852        /**
853         * Gets the first repetition for <b>note</b> (),
854         * creating it if it does not already exist.
855         *
856     * <p>
857     * <b>Definition:</b>
858     * Descriptive information, usage information or implantation information that is not captured in an existing element.
859     * </p> 
860         */
861        public AnnotationDt getNoteFirstRep() {
862                if (getNote().isEmpty()) {
863                        return addNote();
864                }
865                return getNote().get(0); 
866        }
867  
868        /**
869         * Gets the value(s) for <b>status</b> ().
870         * creating it if it does
871         * not exist. Will not return <code>null</code>.
872         *
873     * <p>
874     * <b>Definition:</b>
875     * Status of the Device availability.
876     * </p> 
877         */
878        public BoundCodeDt<DeviceStatusEnum> getStatusElement() {  
879                if (myStatus == null) {
880                        myStatus = new BoundCodeDt<DeviceStatusEnum>(DeviceStatusEnum.VALUESET_BINDER);
881                }
882                return myStatus;
883        }
884
885        
886        /**
887         * Gets the value(s) for <b>status</b> ().
888         * creating it if it does
889         * not exist. Will not return <code>null</code>.
890         *
891     * <p>
892     * <b>Definition:</b>
893     * Status of the Device availability.
894     * </p> 
895         */
896        public String getStatus() {  
897                return getStatusElement().getValue();
898        }
899
900        /**
901         * Sets the value(s) for <b>status</b> ()
902         *
903     * <p>
904     * <b>Definition:</b>
905     * Status of the Device availability.
906     * </p> 
907         */
908        public Device setStatus(BoundCodeDt<DeviceStatusEnum> theValue) {
909                myStatus = theValue;
910                return this;
911        }
912        
913        
914
915        /**
916         * Sets the value(s) for <b>status</b> ()
917         *
918     * <p>
919     * <b>Definition:</b>
920     * Status of the Device availability.
921     * </p> 
922         */
923        public Device setStatus(DeviceStatusEnum theValue) {
924                setStatus(new BoundCodeDt<DeviceStatusEnum>(DeviceStatusEnum.VALUESET_BINDER, theValue));
925                
926/*
927                getStatusElement().setValueAsEnum(theValue);
928*/
929                return this;
930        }
931
932  
933        /**
934         * Gets the value(s) for <b>manufacturer</b> ().
935         * creating it if it does
936         * not exist. Will not return <code>null</code>.
937         *
938     * <p>
939     * <b>Definition:</b>
940     * A name of the manufacturer
941     * </p> 
942         */
943        public StringDt getManufacturerElement() {  
944                if (myManufacturer == null) {
945                        myManufacturer = new StringDt();
946                }
947                return myManufacturer;
948        }
949
950        
951        /**
952         * Gets the value(s) for <b>manufacturer</b> ().
953         * creating it if it does
954         * not exist. Will not return <code>null</code>.
955         *
956     * <p>
957     * <b>Definition:</b>
958     * A name of the manufacturer
959     * </p> 
960         */
961        public String getManufacturer() {  
962                return getManufacturerElement().getValue();
963        }
964
965        /**
966         * Sets the value(s) for <b>manufacturer</b> ()
967         *
968     * <p>
969     * <b>Definition:</b>
970     * A name of the manufacturer
971     * </p> 
972         */
973        public Device setManufacturer(StringDt theValue) {
974                myManufacturer = theValue;
975                return this;
976        }
977        
978        
979
980        /**
981         * Sets the value for <b>manufacturer</b> ()
982         *
983     * <p>
984     * <b>Definition:</b>
985     * A name of the manufacturer
986     * </p> 
987         */
988        public Device setManufacturer( String theString) {
989                myManufacturer = new StringDt(theString); 
990                return this; 
991        }
992
993 
994        /**
995         * Gets the value(s) for <b>model</b> ().
996         * creating it if it does
997         * not exist. Will not return <code>null</code>.
998         *
999     * <p>
1000     * <b>Definition:</b>
1001     * The \&quot;model\&quot; is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.
1002     * </p> 
1003         */
1004        public StringDt getModelElement() {  
1005                if (myModel == null) {
1006                        myModel = new StringDt();
1007                }
1008                return myModel;
1009        }
1010
1011        
1012        /**
1013         * Gets the value(s) for <b>model</b> ().
1014         * creating it if it does
1015         * not exist. Will not return <code>null</code>.
1016         *
1017     * <p>
1018     * <b>Definition:</b>
1019     * The \&quot;model\&quot; is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.
1020     * </p> 
1021         */
1022        public String getModel() {  
1023                return getModelElement().getValue();
1024        }
1025
1026        /**
1027         * Sets the value(s) for <b>model</b> ()
1028         *
1029     * <p>
1030     * <b>Definition:</b>
1031     * The \&quot;model\&quot; is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.
1032     * </p> 
1033         */
1034        public Device setModel(StringDt theValue) {
1035                myModel = theValue;
1036                return this;
1037        }
1038        
1039        
1040
1041        /**
1042         * Sets the value for <b>model</b> ()
1043         *
1044     * <p>
1045     * <b>Definition:</b>
1046     * The \&quot;model\&quot; is an identifier assigned by the manufacturer to identify the product by its type. This number is shared by the all devices sold as the same type.
1047     * </p> 
1048         */
1049        public Device setModel( String theString) {
1050                myModel = new StringDt(theString); 
1051                return this; 
1052        }
1053
1054 
1055        /**
1056         * Gets the value(s) for <b>version</b> ().
1057         * creating it if it does
1058         * not exist. Will not return <code>null</code>.
1059         *
1060     * <p>
1061     * <b>Definition:</b>
1062     * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.
1063     * </p> 
1064         */
1065        public StringDt getVersionElement() {  
1066                if (myVersion == null) {
1067                        myVersion = new StringDt();
1068                }
1069                return myVersion;
1070        }
1071
1072        
1073        /**
1074         * Gets the value(s) for <b>version</b> ().
1075         * creating it if it does
1076         * not exist. Will not return <code>null</code>.
1077         *
1078     * <p>
1079     * <b>Definition:</b>
1080     * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.
1081     * </p> 
1082         */
1083        public String getVersion() {  
1084                return getVersionElement().getValue();
1085        }
1086
1087        /**
1088         * Sets the value(s) for <b>version</b> ()
1089         *
1090     * <p>
1091     * <b>Definition:</b>
1092     * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.
1093     * </p> 
1094         */
1095        public Device setVersion(StringDt theValue) {
1096                myVersion = theValue;
1097                return this;
1098        }
1099        
1100        
1101
1102        /**
1103         * Sets the value for <b>version</b> ()
1104         *
1105     * <p>
1106     * <b>Definition:</b>
1107     * The version of the device, if the device has multiple releases under the same model, or if the device is software or carries firmware.
1108     * </p> 
1109         */
1110        public Device setVersion( String theString) {
1111                myVersion = new StringDt(theString); 
1112                return this; 
1113        }
1114
1115 
1116        /**
1117         * Gets the value(s) for <b>manufactureDate</b> ().
1118         * creating it if it does
1119         * not exist. Will not return <code>null</code>.
1120         *
1121     * <p>
1122     * <b>Definition:</b>
1123     * The date and time when the device was manufactured.
1124     * </p> 
1125         */
1126        public DateTimeDt getManufactureDateElement() {  
1127                if (myManufactureDate == null) {
1128                        myManufactureDate = new DateTimeDt();
1129                }
1130                return myManufactureDate;
1131        }
1132
1133        
1134        /**
1135         * Gets the value(s) for <b>manufactureDate</b> ().
1136         * creating it if it does
1137         * not exist. Will not return <code>null</code>.
1138         *
1139     * <p>
1140     * <b>Definition:</b>
1141     * The date and time when the device was manufactured.
1142     * </p> 
1143         */
1144        public Date getManufactureDate() {  
1145                return getManufactureDateElement().getValue();
1146        }
1147
1148        /**
1149         * Sets the value(s) for <b>manufactureDate</b> ()
1150         *
1151     * <p>
1152     * <b>Definition:</b>
1153     * The date and time when the device was manufactured.
1154     * </p> 
1155         */
1156        public Device setManufactureDate(DateTimeDt theValue) {
1157                myManufactureDate = theValue;
1158                return this;
1159        }
1160        
1161        
1162
1163        /**
1164         * Sets the value for <b>manufactureDate</b> ()
1165         *
1166     * <p>
1167     * <b>Definition:</b>
1168     * The date and time when the device was manufactured.
1169     * </p> 
1170         */
1171        public Device setManufactureDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1172                myManufactureDate = new DateTimeDt(theDate, thePrecision); 
1173                return this; 
1174        }
1175
1176        /**
1177         * Sets the value for <b>manufactureDate</b> ()
1178         *
1179     * <p>
1180     * <b>Definition:</b>
1181     * The date and time when the device was manufactured.
1182     * </p> 
1183         */
1184        public Device setManufactureDateWithSecondsPrecision( Date theDate) {
1185                myManufactureDate = new DateTimeDt(theDate); 
1186                return this; 
1187        }
1188
1189 
1190        /**
1191         * Gets the value(s) for <b>expiry</b> ().
1192         * creating it if it does
1193         * not exist. Will not return <code>null</code>.
1194         *
1195     * <p>
1196     * <b>Definition:</b>
1197     * The date and time beyond which this device is no longer valid or should not be used (if applicable)
1198     * </p> 
1199         */
1200        public DateTimeDt getExpiryElement() {  
1201                if (myExpiry == null) {
1202                        myExpiry = new DateTimeDt();
1203                }
1204                return myExpiry;
1205        }
1206
1207        
1208        /**
1209         * Gets the value(s) for <b>expiry</b> ().
1210         * creating it if it does
1211         * not exist. Will not return <code>null</code>.
1212         *
1213     * <p>
1214     * <b>Definition:</b>
1215     * The date and time beyond which this device is no longer valid or should not be used (if applicable)
1216     * </p> 
1217         */
1218        public Date getExpiry() {  
1219                return getExpiryElement().getValue();
1220        }
1221
1222        /**
1223         * Sets the value(s) for <b>expiry</b> ()
1224         *
1225     * <p>
1226     * <b>Definition:</b>
1227     * The date and time beyond which this device is no longer valid or should not be used (if applicable)
1228     * </p> 
1229         */
1230        public Device setExpiry(DateTimeDt theValue) {
1231                myExpiry = theValue;
1232                return this;
1233        }
1234        
1235        
1236
1237        /**
1238         * Sets the value for <b>expiry</b> ()
1239         *
1240     * <p>
1241     * <b>Definition:</b>
1242     * The date and time beyond which this device is no longer valid or should not be used (if applicable)
1243     * </p> 
1244         */
1245        public Device setExpiry( Date theDate,  TemporalPrecisionEnum thePrecision) {
1246                myExpiry = new DateTimeDt(theDate, thePrecision); 
1247                return this; 
1248        }
1249
1250        /**
1251         * Sets the value for <b>expiry</b> ()
1252         *
1253     * <p>
1254     * <b>Definition:</b>
1255     * The date and time beyond which this device is no longer valid or should not be used (if applicable)
1256     * </p> 
1257         */
1258        public Device setExpiryWithSecondsPrecision( Date theDate) {
1259                myExpiry = new DateTimeDt(theDate); 
1260                return this; 
1261        }
1262
1263 
1264        /**
1265         * Gets the value(s) for <b>udi</b> ().
1266         * creating it if it does
1267         * not exist. Will not return <code>null</code>.
1268         *
1269     * <p>
1270     * <b>Definition:</b>
1271     * United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode)  - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm
1272     * </p> 
1273         */
1274        public StringDt getUdiElement() {  
1275                if (myUdi == null) {
1276                        myUdi = new StringDt();
1277                }
1278                return myUdi;
1279        }
1280
1281        
1282        /**
1283         * Gets the value(s) for <b>udi</b> ().
1284         * creating it if it does
1285         * not exist. Will not return <code>null</code>.
1286         *
1287     * <p>
1288     * <b>Definition:</b>
1289     * United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode)  - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm
1290     * </p> 
1291         */
1292        public String getUdi() {  
1293                return getUdiElement().getValue();
1294        }
1295
1296        /**
1297         * Sets the value(s) for <b>udi</b> ()
1298         *
1299     * <p>
1300     * <b>Definition:</b>
1301     * United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode)  - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm
1302     * </p> 
1303         */
1304        public Device setUdi(StringDt theValue) {
1305                myUdi = theValue;
1306                return this;
1307        }
1308        
1309        
1310
1311        /**
1312         * Sets the value for <b>udi</b> ()
1313         *
1314     * <p>
1315     * <b>Definition:</b>
1316     * United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode)  - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm
1317     * </p> 
1318         */
1319        public Device setUdi( String theString) {
1320                myUdi = new StringDt(theString); 
1321                return this; 
1322        }
1323
1324 
1325        /**
1326         * Gets the value(s) for <b>lotNumber</b> ().
1327         * creating it if it does
1328         * not exist. Will not return <code>null</code>.
1329         *
1330     * <p>
1331     * <b>Definition:</b>
1332     * Lot number assigned by the manufacturer
1333     * </p> 
1334         */
1335        public StringDt getLotNumberElement() {  
1336                if (myLotNumber == null) {
1337                        myLotNumber = new StringDt();
1338                }
1339                return myLotNumber;
1340        }
1341
1342        
1343        /**
1344         * Gets the value(s) for <b>lotNumber</b> ().
1345         * creating it if it does
1346         * not exist. Will not return <code>null</code>.
1347         *
1348     * <p>
1349     * <b>Definition:</b>
1350     * Lot number assigned by the manufacturer
1351     * </p> 
1352         */
1353        public String getLotNumber() {  
1354                return getLotNumberElement().getValue();
1355        }
1356
1357        /**
1358         * Sets the value(s) for <b>lotNumber</b> ()
1359         *
1360     * <p>
1361     * <b>Definition:</b>
1362     * Lot number assigned by the manufacturer
1363     * </p> 
1364         */
1365        public Device setLotNumber(StringDt theValue) {
1366                myLotNumber = theValue;
1367                return this;
1368        }
1369        
1370        
1371
1372        /**
1373         * Sets the value for <b>lotNumber</b> ()
1374         *
1375     * <p>
1376     * <b>Definition:</b>
1377     * Lot number assigned by the manufacturer
1378     * </p> 
1379         */
1380        public Device setLotNumber( String theString) {
1381                myLotNumber = new StringDt(theString); 
1382                return this; 
1383        }
1384
1385 
1386        /**
1387         * Gets the value(s) for <b>owner</b> ().
1388         * creating it if it does
1389         * not exist. Will not return <code>null</code>.
1390         *
1391     * <p>
1392     * <b>Definition:</b>
1393     * An organization that is responsible for the provision and ongoing maintenance of the device.
1394     * </p> 
1395         */
1396        public ResourceReferenceDt getOwner() {  
1397                if (myOwner == null) {
1398                        myOwner = new ResourceReferenceDt();
1399                }
1400                return myOwner;
1401        }
1402
1403        /**
1404         * Sets the value(s) for <b>owner</b> ()
1405         *
1406     * <p>
1407     * <b>Definition:</b>
1408     * An organization that is responsible for the provision and ongoing maintenance of the device.
1409     * </p> 
1410         */
1411        public Device setOwner(ResourceReferenceDt theValue) {
1412                myOwner = theValue;
1413                return this;
1414        }
1415        
1416        
1417
1418  
1419        /**
1420         * Gets the value(s) for <b>location</b> ().
1421         * creating it if it does
1422         * not exist. Will not return <code>null</code>.
1423         *
1424     * <p>
1425     * <b>Definition:</b>
1426     * The place where the device can be found.
1427     * </p> 
1428         */
1429        public ResourceReferenceDt getLocation() {  
1430                if (myLocation == null) {
1431                        myLocation = new ResourceReferenceDt();
1432                }
1433                return myLocation;
1434        }
1435
1436        /**
1437         * Sets the value(s) for <b>location</b> ()
1438         *
1439     * <p>
1440     * <b>Definition:</b>
1441     * The place where the device can be found.
1442     * </p> 
1443         */
1444        public Device setLocation(ResourceReferenceDt theValue) {
1445                myLocation = theValue;
1446                return this;
1447        }
1448        
1449        
1450
1451  
1452        /**
1453         * Gets the value(s) for <b>patient</b> ().
1454         * creating it if it does
1455         * not exist. Will not return <code>null</code>.
1456         *
1457     * <p>
1458     * <b>Definition:</b>
1459     * Patient information, if the resource is affixed to a person
1460     * </p> 
1461         */
1462        public ResourceReferenceDt getPatient() {  
1463                if (myPatient == null) {
1464                        myPatient = new ResourceReferenceDt();
1465                }
1466                return myPatient;
1467        }
1468
1469        /**
1470         * Sets the value(s) for <b>patient</b> ()
1471         *
1472     * <p>
1473     * <b>Definition:</b>
1474     * Patient information, if the resource is affixed to a person
1475     * </p> 
1476         */
1477        public Device setPatient(ResourceReferenceDt theValue) {
1478                myPatient = theValue;
1479                return this;
1480        }
1481        
1482        
1483
1484  
1485        /**
1486         * Gets the value(s) for <b>contact</b> ().
1487         * creating it if it does
1488         * not exist. Will not return <code>null</code>.
1489         *
1490     * <p>
1491     * <b>Definition:</b>
1492     * Contact details for an organization or a particular human that is responsible for the device
1493     * </p> 
1494         */
1495        public java.util.List<ContactPointDt> getContact() {  
1496                if (myContact == null) {
1497                        myContact = new java.util.ArrayList<ContactPointDt>();
1498                }
1499                return myContact;
1500        }
1501
1502        /**
1503         * Sets the value(s) for <b>contact</b> ()
1504         *
1505     * <p>
1506     * <b>Definition:</b>
1507     * Contact details for an organization or a particular human that is responsible for the device
1508     * </p> 
1509         */
1510        public Device setContact(java.util.List<ContactPointDt> theValue) {
1511                myContact = theValue;
1512                return this;
1513        }
1514        
1515        
1516
1517        /**
1518         * Adds and returns a new value for <b>contact</b> ()
1519         *
1520     * <p>
1521     * <b>Definition:</b>
1522     * Contact details for an organization or a particular human that is responsible for the device
1523     * </p> 
1524         */
1525        public ContactPointDt addContact() {
1526                ContactPointDt newType = new ContactPointDt();
1527                getContact().add(newType);
1528                return newType; 
1529        }
1530
1531        /**
1532         * Adds a given new value for <b>contact</b> ()
1533         *
1534         * <p>
1535         * <b>Definition:</b>
1536         * Contact details for an organization or a particular human that is responsible for the device
1537         * </p>
1538         * @param theValue The contact to add (must not be <code>null</code>)
1539         */
1540        public Device addContact(ContactPointDt theValue) {
1541                if (theValue == null) {
1542                        throw new NullPointerException("theValue must not be null");
1543                }
1544                getContact().add(theValue);
1545                return this;
1546        }
1547
1548        /**
1549         * Gets the first repetition for <b>contact</b> (),
1550         * creating it if it does not already exist.
1551         *
1552     * <p>
1553     * <b>Definition:</b>
1554     * Contact details for an organization or a particular human that is responsible for the device
1555     * </p> 
1556         */
1557        public ContactPointDt getContactFirstRep() {
1558                if (getContact().isEmpty()) {
1559                        return addContact();
1560                }
1561                return getContact().get(0); 
1562        }
1563  
1564        /**
1565         * Gets the value(s) for <b>url</b> ().
1566         * creating it if it does
1567         * not exist. Will not return <code>null</code>.
1568         *
1569     * <p>
1570     * <b>Definition:</b>
1571     * A network address on which the device may be contacted directly
1572     * </p> 
1573         */
1574        public UriDt getUrlElement() {  
1575                if (myUrl == null) {
1576                        myUrl = new UriDt();
1577                }
1578                return myUrl;
1579        }
1580
1581        
1582        /**
1583         * Gets the value(s) for <b>url</b> ().
1584         * creating it if it does
1585         * not exist. Will not return <code>null</code>.
1586         *
1587     * <p>
1588     * <b>Definition:</b>
1589     * A network address on which the device may be contacted directly
1590     * </p> 
1591         */
1592        public String getUrl() {  
1593                return getUrlElement().getValue();
1594        }
1595
1596        /**
1597         * Sets the value(s) for <b>url</b> ()
1598         *
1599     * <p>
1600     * <b>Definition:</b>
1601     * A network address on which the device may be contacted directly
1602     * </p> 
1603         */
1604        public Device setUrl(UriDt theValue) {
1605                myUrl = theValue;
1606                return this;
1607        }
1608        
1609        
1610
1611        /**
1612         * Sets the value for <b>url</b> ()
1613         *
1614     * <p>
1615     * <b>Definition:</b>
1616     * A network address on which the device may be contacted directly
1617     * </p> 
1618         */
1619        public Device setUrl( String theUri) {
1620                myUrl = new UriDt(theUri); 
1621                return this; 
1622        }
1623
1624 
1625
1626
1627    @Override
1628    public String getResourceName() {
1629        return "Device";
1630    }
1631    
1632    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1633        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1634    }
1635
1636
1637}