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>DeviceMetric</b> Resource
320 * (Measurement, calculation or setting capability of a medical device)
321 *
322 * <p>
323 * <b>Definition:</b>
324 * Describes a measurement, calculation or setting capability of a medical device.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/DeviceMetric">http://hl7.org/fhir/profiles/DeviceMetric</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="DeviceMetric", profile="http://hl7.org/fhir/profiles/DeviceMetric", id="devicemetric")
339public class DeviceMetric extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>parent</b>
344         * <p>
345         * Description: <b>The parent DeviceMetric resource</b><br>
346         * Type: <b>reference</b><br>
347         * Path: <b>DeviceMetric.parent</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="parent", path="DeviceMetric.parent", description="The parent DeviceMetric resource", type="reference"  )
351        public static final String SP_PARENT = "parent";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>parent</b>
355         * <p>
356         * Description: <b>The parent DeviceMetric resource</b><br>
357         * Type: <b>reference</b><br>
358         * Path: <b>DeviceMetric.parent</b><br>
359         * </p>
360         */
361        public static final ReferenceClientParam PARENT = new ReferenceClientParam(SP_PARENT);
362
363        /**
364         * Search parameter constant for <b>type</b>
365         * <p>
366         * Description: <b>The component type</b><br>
367         * Type: <b>token</b><br>
368         * Path: <b>DeviceMetric.type</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="type", path="DeviceMetric.type", description="The component type", type="token"  )
372        public static final String SP_TYPE = "type";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>type</b>
376         * <p>
377         * Description: <b>The component type</b><br>
378         * Type: <b>token</b><br>
379         * Path: <b>DeviceMetric.type</b><br>
380         * </p>
381         */
382        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
383
384        /**
385         * Search parameter constant for <b>source</b>
386         * <p>
387         * Description: <b>The device resource</b><br>
388         * Type: <b>reference</b><br>
389         * Path: <b>DeviceMetric.source</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="source", path="DeviceMetric.source", description="The device resource", type="reference"  )
393        public static final String SP_SOURCE = "source";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>source</b>
397         * <p>
398         * Description: <b>The device resource</b><br>
399         * Type: <b>reference</b><br>
400         * Path: <b>DeviceMetric.source</b><br>
401         * </p>
402         */
403        public static final ReferenceClientParam SOURCE = new ReferenceClientParam(SP_SOURCE);
404
405        /**
406         * Search parameter constant for <b>category</b>
407         * <p>
408         * Description: <b>The category of the metric</b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>DeviceMetric.category</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="category", path="DeviceMetric.category", description="The category of the metric", type="token"  )
414        public static final String SP_CATEGORY = "category";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>category</b>
418         * <p>
419         * Description: <b>The category of the metric</b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>DeviceMetric.category</b><br>
422         * </p>
423         */
424        public static final TokenClientParam CATEGORY = new TokenClientParam(SP_CATEGORY);
425
426        /**
427         * Search parameter constant for <b>identifier</b>
428         * <p>
429         * Description: <b>The identifier of the metric</b><br>
430         * Type: <b>token</b><br>
431         * Path: <b>DeviceMetric.identifier</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="identifier", path="DeviceMetric.identifier", description="The identifier of the metric", 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>The identifier of the metric</b><br>
441         * Type: <b>token</b><br>
442         * Path: <b>DeviceMetric.identifier</b><br>
443         * </p>
444         */
445        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
446
447
448        /**
449         * Constant for fluent queries to be used to add include statements. Specifies
450         * the path value of "<b>DeviceMetric:parent</b>".
451         */
452        public static final Include INCLUDE_PARENT = new Include("DeviceMetric:parent");
453
454        /**
455         * Constant for fluent queries to be used to add include statements. Specifies
456         * the path value of "<b>DeviceMetric:source</b>".
457         */
458        public static final Include INCLUDE_SOURCE = new Include("DeviceMetric:source");
459
460
461        @Child(name="type", type=CodeableConceptDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
462        @Description(
463                shortDefinition="Type of metric",
464                formalDefinition="Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc."
465        )
466        private CodeableConceptDt myType;
467        
468        @Child(name="identifier", type=IdentifierDt.class, order=1, min=1, max=1, summary=false, modifier=false)        
469        @Description(
470                shortDefinition="Unique identifier of this DeviceMetric",
471                formalDefinition="Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID.  It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device."
472        )
473        private IdentifierDt myIdentifier;
474        
475        @Child(name="unit", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
476        @Description(
477                shortDefinition="Unit of metric",
478                formalDefinition="Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc."
479        )
480        private CodeableConceptDt myUnit;
481        
482        @Child(name="source", order=3, min=0, max=1, summary=false, modifier=false, type={
483                ca.uhn.fhir.model.dstu2.resource.Device.class   })
484        @Description(
485                shortDefinition="Describes the link to the source Device",
486                formalDefinition="Describes the link to the  Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc."
487        )
488        private ResourceReferenceDt mySource;
489        
490        @Child(name="parent", order=4, min=0, max=1, summary=false, modifier=false, type={
491                ca.uhn.fhir.model.dstu2.resource.DeviceComponent.class  })
492        @Description(
493                shortDefinition="Describes the link to the parent DeviceComponent",
494                formalDefinition="Describes the link to the  DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location."
495        )
496        private ResourceReferenceDt myParent;
497        
498        @Child(name="operationalStatus", type=CodeDt.class, order=5, min=0, max=1, summary=false, modifier=false)       
499        @Description(
500                shortDefinition="on | off | standby",
501                formalDefinition="Indicates current operational state of the device. For example: On, Off, Standby, etc."
502        )
503        private BoundCodeDt<DeviceMetricOperationalStatusEnum> myOperationalStatus;
504        
505        @Child(name="color", type=CodeDt.class, order=6, min=0, max=1, summary=false, modifier=false)   
506        @Description(
507                shortDefinition="black | red | green | yellow | blue | magenta | cyan | white",
508                formalDefinition="Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta."
509        )
510        private BoundCodeDt<DeviceMetricColorEnum> myColor;
511        
512        @Child(name="category", type=CodeDt.class, order=7, min=1, max=1, summary=false, modifier=false)        
513        @Description(
514                shortDefinition="measurement | setting | calculation | unspecified",
515                formalDefinition="Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation."
516        )
517        private BoundCodeDt<DeviceMetricCategoryEnum> myCategory;
518        
519        @Child(name="measurementPeriod", type=TimingDt.class, order=8, min=0, max=1, summary=false, modifier=false)     
520        @Description(
521                shortDefinition="Describes the measurement repetition time",
522                formalDefinition="Describes the measurement repetition time. This is not necessarily the same as the update period. The measurement repetition time can range from milliseconds up to hours. An example for a measurement repetition time in the range of milliseconds is the sampling rate of an ECG. An example for a measurement repetition time in the range of hours is a NIBP that is triggered automatically every hour. The update period may be different than the measurement repetition time, if the device does not update the published observed value with the same frequency as it was measured."
523        )
524        private TimingDt myMeasurementPeriod;
525        
526        @Child(name="calibration", order=9, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
527        @Description(
528                shortDefinition="Describes the calibrations that have been performed or that are required to be performed",
529                formalDefinition="Describes the calibrations that have been performed or that are required to be performed"
530        )
531        private java.util.List<Calibration> myCalibration;
532        
533
534        @Override
535        public boolean isEmpty() {
536                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myIdentifier,  myUnit,  mySource,  myParent,  myOperationalStatus,  myColor,  myCategory,  myMeasurementPeriod,  myCalibration);
537        }
538        
539        @Override
540        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
541                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myIdentifier, myUnit, mySource, myParent, myOperationalStatus, myColor, myCategory, myMeasurementPeriod, myCalibration);
542        }
543
544        /**
545         * Gets the value(s) for <b>type</b> (Type of metric).
546         * creating it if it does
547         * not exist. Will not return <code>null</code>.
548         *
549     * <p>
550     * <b>Definition:</b>
551     * Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.
552     * </p> 
553         */
554        public CodeableConceptDt getType() {  
555                if (myType == null) {
556                        myType = new CodeableConceptDt();
557                }
558                return myType;
559        }
560
561        /**
562         * Sets the value(s) for <b>type</b> (Type of metric)
563         *
564     * <p>
565     * <b>Definition:</b>
566     * Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc.
567     * </p> 
568         */
569        public DeviceMetric setType(CodeableConceptDt theValue) {
570                myType = theValue;
571                return this;
572        }
573        
574        
575
576  
577        /**
578         * Gets the value(s) for <b>identifier</b> (Unique identifier of this DeviceMetric).
579         * creating it if it does
580         * not exist. Will not return <code>null</code>.
581         *
582     * <p>
583     * <b>Definition:</b>
584     * Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID.  It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.
585     * </p> 
586         */
587        public IdentifierDt getIdentifier() {  
588                if (myIdentifier == null) {
589                        myIdentifier = new IdentifierDt();
590                }
591                return myIdentifier;
592        }
593
594        /**
595         * Sets the value(s) for <b>identifier</b> (Unique identifier of this DeviceMetric)
596         *
597     * <p>
598     * <b>Definition:</b>
599     * Describes the unique identification of this metric that has been assigned by the device or gateway software. For example: handle ID.  It should be noted that in order to make the identifier unique, the system element of the identifier should be set to the unique identifier of the device.
600     * </p> 
601         */
602        public DeviceMetric setIdentifier(IdentifierDt theValue) {
603                myIdentifier = theValue;
604                return this;
605        }
606        
607        
608
609  
610        /**
611         * Gets the value(s) for <b>unit</b> (Unit of metric).
612         * creating it if it does
613         * not exist. Will not return <code>null</code>.
614         *
615     * <p>
616     * <b>Definition:</b>
617     * Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.
618     * </p> 
619         */
620        public CodeableConceptDt getUnit() {  
621                if (myUnit == null) {
622                        myUnit = new CodeableConceptDt();
623                }
624                return myUnit;
625        }
626
627        /**
628         * Sets the value(s) for <b>unit</b> (Unit of metric)
629         *
630     * <p>
631     * <b>Definition:</b>
632     * Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc.
633     * </p> 
634         */
635        public DeviceMetric setUnit(CodeableConceptDt theValue) {
636                myUnit = theValue;
637                return this;
638        }
639        
640        
641
642  
643        /**
644         * Gets the value(s) for <b>source</b> (Describes the link to the source Device).
645         * creating it if it does
646         * not exist. Will not return <code>null</code>.
647         *
648     * <p>
649     * <b>Definition:</b>
650     * Describes the link to the  Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.
651     * </p> 
652         */
653        public ResourceReferenceDt getSource() {  
654                if (mySource == null) {
655                        mySource = new ResourceReferenceDt();
656                }
657                return mySource;
658        }
659
660        /**
661         * Sets the value(s) for <b>source</b> (Describes the link to the source Device)
662         *
663     * <p>
664     * <b>Definition:</b>
665     * Describes the link to the  Device that this DeviceMetric belongs to and that contains administrative device information such as manufacture, serial number, etc.
666     * </p> 
667         */
668        public DeviceMetric setSource(ResourceReferenceDt theValue) {
669                mySource = theValue;
670                return this;
671        }
672        
673        
674
675  
676        /**
677         * Gets the value(s) for <b>parent</b> (Describes the link to the parent DeviceComponent).
678         * creating it if it does
679         * not exist. Will not return <code>null</code>.
680         *
681     * <p>
682     * <b>Definition:</b>
683     * Describes the link to the  DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.
684     * </p> 
685         */
686        public ResourceReferenceDt getParent() {  
687                if (myParent == null) {
688                        myParent = new ResourceReferenceDt();
689                }
690                return myParent;
691        }
692
693        /**
694         * Sets the value(s) for <b>parent</b> (Describes the link to the parent DeviceComponent)
695         *
696     * <p>
697     * <b>Definition:</b>
698     * Describes the link to the  DeviceComponent that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. An example would be a DeviceComponent that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location.
699     * </p> 
700         */
701        public DeviceMetric setParent(ResourceReferenceDt theValue) {
702                myParent = theValue;
703                return this;
704        }
705        
706        
707
708  
709        /**
710         * Gets the value(s) for <b>operationalStatus</b> (on | off | standby).
711         * creating it if it does
712         * not exist. Will not return <code>null</code>.
713         *
714     * <p>
715     * <b>Definition:</b>
716     * Indicates current operational state of the device. For example: On, Off, Standby, etc.
717     * </p> 
718         */
719        public BoundCodeDt<DeviceMetricOperationalStatusEnum> getOperationalStatusElement() {  
720                if (myOperationalStatus == null) {
721                        myOperationalStatus = new BoundCodeDt<DeviceMetricOperationalStatusEnum>(DeviceMetricOperationalStatusEnum.VALUESET_BINDER);
722                }
723                return myOperationalStatus;
724        }
725
726        
727        /**
728         * Gets the value(s) for <b>operationalStatus</b> (on | off | standby).
729         * creating it if it does
730         * not exist. Will not return <code>null</code>.
731         *
732     * <p>
733     * <b>Definition:</b>
734     * Indicates current operational state of the device. For example: On, Off, Standby, etc.
735     * </p> 
736         */
737        public String getOperationalStatus() {  
738                return getOperationalStatusElement().getValue();
739        }
740
741        /**
742         * Sets the value(s) for <b>operationalStatus</b> (on | off | standby)
743         *
744     * <p>
745     * <b>Definition:</b>
746     * Indicates current operational state of the device. For example: On, Off, Standby, etc.
747     * </p> 
748         */
749        public DeviceMetric setOperationalStatus(BoundCodeDt<DeviceMetricOperationalStatusEnum> theValue) {
750                myOperationalStatus = theValue;
751                return this;
752        }
753        
754        
755
756        /**
757         * Sets the value(s) for <b>operationalStatus</b> (on | off | standby)
758         *
759     * <p>
760     * <b>Definition:</b>
761     * Indicates current operational state of the device. For example: On, Off, Standby, etc.
762     * </p> 
763         */
764        public DeviceMetric setOperationalStatus(DeviceMetricOperationalStatusEnum theValue) {
765                setOperationalStatus(new BoundCodeDt<DeviceMetricOperationalStatusEnum>(DeviceMetricOperationalStatusEnum.VALUESET_BINDER, theValue));
766                
767/*
768                getOperationalStatusElement().setValueAsEnum(theValue);
769*/
770                return this;
771        }
772
773  
774        /**
775         * Gets the value(s) for <b>color</b> (black | red | green | yellow | blue | magenta | cyan | white).
776         * creating it if it does
777         * not exist. Will not return <code>null</code>.
778         *
779     * <p>
780     * <b>Definition:</b>
781     * Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta.
782     * </p> 
783         */
784        public BoundCodeDt<DeviceMetricColorEnum> getColorElement() {  
785                if (myColor == null) {
786                        myColor = new BoundCodeDt<DeviceMetricColorEnum>(DeviceMetricColorEnum.VALUESET_BINDER);
787                }
788                return myColor;
789        }
790
791        
792        /**
793         * Gets the value(s) for <b>color</b> (black | red | green | yellow | blue | magenta | cyan | white).
794         * creating it if it does
795         * not exist. Will not return <code>null</code>.
796         *
797     * <p>
798     * <b>Definition:</b>
799     * Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta.
800     * </p> 
801         */
802        public String getColor() {  
803                return getColorElement().getValue();
804        }
805
806        /**
807         * Sets the value(s) for <b>color</b> (black | red | green | yellow | blue | magenta | cyan | white)
808         *
809     * <p>
810     * <b>Definition:</b>
811     * Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta.
812     * </p> 
813         */
814        public DeviceMetric setColor(BoundCodeDt<DeviceMetricColorEnum> theValue) {
815                myColor = theValue;
816                return this;
817        }
818        
819        
820
821        /**
822         * Sets the value(s) for <b>color</b> (black | red | green | yellow | blue | magenta | cyan | white)
823         *
824     * <p>
825     * <b>Definition:</b>
826     * Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta.
827     * </p> 
828         */
829        public DeviceMetric setColor(DeviceMetricColorEnum theValue) {
830                setColor(new BoundCodeDt<DeviceMetricColorEnum>(DeviceMetricColorEnum.VALUESET_BINDER, theValue));
831                
832/*
833                getColorElement().setValueAsEnum(theValue);
834*/
835                return this;
836        }
837
838  
839        /**
840         * Gets the value(s) for <b>category</b> (measurement | setting | calculation | unspecified).
841         * creating it if it does
842         * not exist. Will not return <code>null</code>.
843         *
844     * <p>
845     * <b>Definition:</b>
846     * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.
847     * </p> 
848         */
849        public BoundCodeDt<DeviceMetricCategoryEnum> getCategoryElement() {  
850                if (myCategory == null) {
851                        myCategory = new BoundCodeDt<DeviceMetricCategoryEnum>(DeviceMetricCategoryEnum.VALUESET_BINDER);
852                }
853                return myCategory;
854        }
855
856        
857        /**
858         * Gets the value(s) for <b>category</b> (measurement | setting | calculation | unspecified).
859         * creating it if it does
860         * not exist. Will not return <code>null</code>.
861         *
862     * <p>
863     * <b>Definition:</b>
864     * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.
865     * </p> 
866         */
867        public String getCategory() {  
868                return getCategoryElement().getValue();
869        }
870
871        /**
872         * Sets the value(s) for <b>category</b> (measurement | setting | calculation | unspecified)
873         *
874     * <p>
875     * <b>Definition:</b>
876     * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.
877     * </p> 
878         */
879        public DeviceMetric setCategory(BoundCodeDt<DeviceMetricCategoryEnum> theValue) {
880                myCategory = theValue;
881                return this;
882        }
883        
884        
885
886        /**
887         * Sets the value(s) for <b>category</b> (measurement | setting | calculation | unspecified)
888         *
889     * <p>
890     * <b>Definition:</b>
891     * Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation.
892     * </p> 
893         */
894        public DeviceMetric setCategory(DeviceMetricCategoryEnum theValue) {
895                setCategory(new BoundCodeDt<DeviceMetricCategoryEnum>(DeviceMetricCategoryEnum.VALUESET_BINDER, theValue));
896                
897/*
898                getCategoryElement().setValueAsEnum(theValue);
899*/
900                return this;
901        }
902
903  
904        /**
905         * Gets the value(s) for <b>measurementPeriod</b> (Describes the measurement repetition time).
906         * creating it if it does
907         * not exist. Will not return <code>null</code>.
908         *
909     * <p>
910     * <b>Definition:</b>
911     * Describes the measurement repetition time. This is not necessarily the same as the update period. The measurement repetition time can range from milliseconds up to hours. An example for a measurement repetition time in the range of milliseconds is the sampling rate of an ECG. An example for a measurement repetition time in the range of hours is a NIBP that is triggered automatically every hour. The update period may be different than the measurement repetition time, if the device does not update the published observed value with the same frequency as it was measured.
912     * </p> 
913         */
914        public TimingDt getMeasurementPeriod() {  
915                if (myMeasurementPeriod == null) {
916                        myMeasurementPeriod = new TimingDt();
917                }
918                return myMeasurementPeriod;
919        }
920
921        /**
922         * Sets the value(s) for <b>measurementPeriod</b> (Describes the measurement repetition time)
923         *
924     * <p>
925     * <b>Definition:</b>
926     * Describes the measurement repetition time. This is not necessarily the same as the update period. The measurement repetition time can range from milliseconds up to hours. An example for a measurement repetition time in the range of milliseconds is the sampling rate of an ECG. An example for a measurement repetition time in the range of hours is a NIBP that is triggered automatically every hour. The update period may be different than the measurement repetition time, if the device does not update the published observed value with the same frequency as it was measured.
927     * </p> 
928         */
929        public DeviceMetric setMeasurementPeriod(TimingDt theValue) {
930                myMeasurementPeriod = theValue;
931                return this;
932        }
933        
934        
935
936  
937        /**
938         * Gets the value(s) for <b>calibration</b> (Describes the calibrations that have been performed or that are required to be performed).
939         * creating it if it does
940         * not exist. Will not return <code>null</code>.
941         *
942     * <p>
943     * <b>Definition:</b>
944     * Describes the calibrations that have been performed or that are required to be performed
945     * </p> 
946         */
947        public java.util.List<Calibration> getCalibration() {  
948                if (myCalibration == null) {
949                        myCalibration = new java.util.ArrayList<Calibration>();
950                }
951                return myCalibration;
952        }
953
954        /**
955         * Sets the value(s) for <b>calibration</b> (Describes the calibrations that have been performed or that are required to be performed)
956         *
957     * <p>
958     * <b>Definition:</b>
959     * Describes the calibrations that have been performed or that are required to be performed
960     * </p> 
961         */
962        public DeviceMetric setCalibration(java.util.List<Calibration> theValue) {
963                myCalibration = theValue;
964                return this;
965        }
966        
967        
968
969        /**
970         * Adds and returns a new value for <b>calibration</b> (Describes the calibrations that have been performed or that are required to be performed)
971         *
972     * <p>
973     * <b>Definition:</b>
974     * Describes the calibrations that have been performed or that are required to be performed
975     * </p> 
976         */
977        public Calibration addCalibration() {
978                Calibration newType = new Calibration();
979                getCalibration().add(newType);
980                return newType; 
981        }
982
983        /**
984         * Adds a given new value for <b>calibration</b> (Describes the calibrations that have been performed or that are required to be performed)
985         *
986         * <p>
987         * <b>Definition:</b>
988         * Describes the calibrations that have been performed or that are required to be performed
989         * </p>
990         * @param theValue The calibration to add (must not be <code>null</code>)
991         */
992        public DeviceMetric addCalibration(Calibration theValue) {
993                if (theValue == null) {
994                        throw new NullPointerException("theValue must not be null");
995                }
996                getCalibration().add(theValue);
997                return this;
998        }
999
1000        /**
1001         * Gets the first repetition for <b>calibration</b> (Describes the calibrations that have been performed or that are required to be performed),
1002         * creating it if it does not already exist.
1003         *
1004     * <p>
1005     * <b>Definition:</b>
1006     * Describes the calibrations that have been performed or that are required to be performed
1007     * </p> 
1008         */
1009        public Calibration getCalibrationFirstRep() {
1010                if (getCalibration().isEmpty()) {
1011                        return addCalibration();
1012                }
1013                return getCalibration().get(0); 
1014        }
1015  
1016        /**
1017         * Block class for child element: <b>DeviceMetric.calibration</b> (Describes the calibrations that have been performed or that are required to be performed)
1018         *
1019     * <p>
1020     * <b>Definition:</b>
1021     * Describes the calibrations that have been performed or that are required to be performed
1022     * </p> 
1023         */
1024        @Block()        
1025        public static class Calibration 
1026            extends  BaseIdentifiableElement        implements IResourceBlock {
1027        
1028        @Child(name="type", type=CodeDt.class, order=0, min=0, max=1, summary=false, modifier=false)    
1029        @Description(
1030                shortDefinition="unspecified | offset | gain | two-point",
1031                formalDefinition="Describes the type of the calibration method."
1032        )
1033        private BoundCodeDt<DeviceMetricCalibrationTypeEnum> myType;
1034        
1035        @Child(name="state", type=CodeDt.class, order=1, min=0, max=1, summary=false, modifier=false)   
1036        @Description(
1037                shortDefinition="not-calibrated | calibration-required | calibrated | unspecified",
1038                formalDefinition="Describes the state of the calibration."
1039        )
1040        private BoundCodeDt<DeviceMetricCalibrationStateEnum> myState;
1041        
1042        @Child(name="time", type=InstantDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
1043        @Description(
1044                shortDefinition="Describes the time last calibration has been performed",
1045                formalDefinition="Describes the time last calibration has been performed."
1046        )
1047        private InstantDt myTime;
1048        
1049
1050        @Override
1051        public boolean isEmpty() {
1052                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myState,  myTime);
1053        }
1054        
1055        @Override
1056        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1057                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myState, myTime);
1058        }
1059
1060        /**
1061         * Gets the value(s) for <b>type</b> (unspecified | offset | gain | two-point).
1062         * creating it if it does
1063         * not exist. Will not return <code>null</code>.
1064         *
1065     * <p>
1066     * <b>Definition:</b>
1067     * Describes the type of the calibration method.
1068     * </p> 
1069         */
1070        public BoundCodeDt<DeviceMetricCalibrationTypeEnum> getTypeElement() {  
1071                if (myType == null) {
1072                        myType = new BoundCodeDt<DeviceMetricCalibrationTypeEnum>(DeviceMetricCalibrationTypeEnum.VALUESET_BINDER);
1073                }
1074                return myType;
1075        }
1076
1077        
1078        /**
1079         * Gets the value(s) for <b>type</b> (unspecified | offset | gain | two-point).
1080         * creating it if it does
1081         * not exist. Will not return <code>null</code>.
1082         *
1083     * <p>
1084     * <b>Definition:</b>
1085     * Describes the type of the calibration method.
1086     * </p> 
1087         */
1088        public String getType() {  
1089                return getTypeElement().getValue();
1090        }
1091
1092        /**
1093         * Sets the value(s) for <b>type</b> (unspecified | offset | gain | two-point)
1094         *
1095     * <p>
1096     * <b>Definition:</b>
1097     * Describes the type of the calibration method.
1098     * </p> 
1099         */
1100        public Calibration setType(BoundCodeDt<DeviceMetricCalibrationTypeEnum> theValue) {
1101                myType = theValue;
1102                return this;
1103        }
1104        
1105        
1106
1107        /**
1108         * Sets the value(s) for <b>type</b> (unspecified | offset | gain | two-point)
1109         *
1110     * <p>
1111     * <b>Definition:</b>
1112     * Describes the type of the calibration method.
1113     * </p> 
1114         */
1115        public Calibration setType(DeviceMetricCalibrationTypeEnum theValue) {
1116                setType(new BoundCodeDt<DeviceMetricCalibrationTypeEnum>(DeviceMetricCalibrationTypeEnum.VALUESET_BINDER, theValue));
1117                
1118/*
1119                getTypeElement().setValueAsEnum(theValue);
1120*/
1121                return this;
1122        }
1123
1124  
1125        /**
1126         * Gets the value(s) for <b>state</b> (not-calibrated | calibration-required | calibrated | unspecified).
1127         * creating it if it does
1128         * not exist. Will not return <code>null</code>.
1129         *
1130     * <p>
1131     * <b>Definition:</b>
1132     * Describes the state of the calibration.
1133     * </p> 
1134         */
1135        public BoundCodeDt<DeviceMetricCalibrationStateEnum> getStateElement() {  
1136                if (myState == null) {
1137                        myState = new BoundCodeDt<DeviceMetricCalibrationStateEnum>(DeviceMetricCalibrationStateEnum.VALUESET_BINDER);
1138                }
1139                return myState;
1140        }
1141
1142        
1143        /**
1144         * Gets the value(s) for <b>state</b> (not-calibrated | calibration-required | calibrated | unspecified).
1145         * creating it if it does
1146         * not exist. Will not return <code>null</code>.
1147         *
1148     * <p>
1149     * <b>Definition:</b>
1150     * Describes the state of the calibration.
1151     * </p> 
1152         */
1153        public String getState() {  
1154                return getStateElement().getValue();
1155        }
1156
1157        /**
1158         * Sets the value(s) for <b>state</b> (not-calibrated | calibration-required | calibrated | unspecified)
1159         *
1160     * <p>
1161     * <b>Definition:</b>
1162     * Describes the state of the calibration.
1163     * </p> 
1164         */
1165        public Calibration setState(BoundCodeDt<DeviceMetricCalibrationStateEnum> theValue) {
1166                myState = theValue;
1167                return this;
1168        }
1169        
1170        
1171
1172        /**
1173         * Sets the value(s) for <b>state</b> (not-calibrated | calibration-required | calibrated | unspecified)
1174         *
1175     * <p>
1176     * <b>Definition:</b>
1177     * Describes the state of the calibration.
1178     * </p> 
1179         */
1180        public Calibration setState(DeviceMetricCalibrationStateEnum theValue) {
1181                setState(new BoundCodeDt<DeviceMetricCalibrationStateEnum>(DeviceMetricCalibrationStateEnum.VALUESET_BINDER, theValue));
1182                
1183/*
1184                getStateElement().setValueAsEnum(theValue);
1185*/
1186                return this;
1187        }
1188
1189  
1190        /**
1191         * Gets the value(s) for <b>time</b> (Describes the time last calibration has been performed).
1192         * creating it if it does
1193         * not exist. Will not return <code>null</code>.
1194         *
1195     * <p>
1196     * <b>Definition:</b>
1197     * Describes the time last calibration has been performed.
1198     * </p> 
1199         */
1200        public InstantDt getTimeElement() {  
1201                if (myTime == null) {
1202                        myTime = new InstantDt();
1203                }
1204                return myTime;
1205        }
1206
1207        
1208        /**
1209         * Gets the value(s) for <b>time</b> (Describes the time last calibration has been performed).
1210         * creating it if it does
1211         * not exist. Will not return <code>null</code>.
1212         *
1213     * <p>
1214     * <b>Definition:</b>
1215     * Describes the time last calibration has been performed.
1216     * </p> 
1217         */
1218        public Date getTime() {  
1219                return getTimeElement().getValue();
1220        }
1221
1222        /**
1223         * Sets the value(s) for <b>time</b> (Describes the time last calibration has been performed)
1224         *
1225     * <p>
1226     * <b>Definition:</b>
1227     * Describes the time last calibration has been performed.
1228     * </p> 
1229         */
1230        public Calibration setTime(InstantDt theValue) {
1231                myTime = theValue;
1232                return this;
1233        }
1234        
1235        
1236
1237        /**
1238         * Sets the value for <b>time</b> (Describes the time last calibration has been performed)
1239         *
1240     * <p>
1241     * <b>Definition:</b>
1242     * Describes the time last calibration has been performed.
1243     * </p> 
1244         */
1245        public Calibration setTimeWithMillisPrecision( Date theDate) {
1246                myTime = new InstantDt(theDate); 
1247                return this; 
1248        }
1249
1250        /**
1251         * Sets the value for <b>time</b> (Describes the time last calibration has been performed)
1252         *
1253     * <p>
1254     * <b>Definition:</b>
1255     * Describes the time last calibration has been performed.
1256     * </p> 
1257         */
1258        public Calibration setTime( Date theDate,  TemporalPrecisionEnum thePrecision) {
1259                myTime = new InstantDt(theDate, thePrecision); 
1260                return this; 
1261        }
1262
1263 
1264
1265
1266        }
1267
1268
1269
1270
1271    @Override
1272    public String getResourceName() {
1273        return "DeviceMetric";
1274    }
1275    
1276    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1277        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1278    }
1279
1280
1281}