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