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>Claim</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * A provider issued list of services and products provided, or to be provided, to a patient which is provided to an insurer for payment recovery.
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/Claim">http://hl7.org/fhir/profiles/Claim</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="Claim", profile="http://hl7.org/fhir/profiles/Claim", id="claim")
339public class Claim extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>identifier</b>
344         * <p>
345         * Description: <b>The primary identifier of the financial resource</b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>Claim.identifier</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="identifier", path="Claim.identifier", description="The primary identifier of the financial resource", type="token"  )
351        public static final String SP_IDENTIFIER = "identifier";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
355         * <p>
356         * Description: <b>The primary identifier of the financial resource</b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>Claim.identifier</b><br>
359         * </p>
360         */
361        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
362
363        /**
364         * Search parameter constant for <b>use</b>
365         * <p>
366         * Description: <b>The kind of financial resource</b><br>
367         * Type: <b>token</b><br>
368         * Path: <b>Claim.use</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="use", path="Claim.use", description="The kind of financial resource", type="token"  )
372        public static final String SP_USE = "use";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>use</b>
376         * <p>
377         * Description: <b>The kind of financial resource</b><br>
378         * Type: <b>token</b><br>
379         * Path: <b>Claim.use</b><br>
380         * </p>
381         */
382        public static final TokenClientParam USE = new TokenClientParam(SP_USE);
383
384        /**
385         * Search parameter constant for <b>priority</b>
386         * <p>
387         * Description: <b>Processing priority requested</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>Claim.priority</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="priority", path="Claim.priority", description="Processing priority requested", type="token"  )
393        public static final String SP_PRIORITY = "priority";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>priority</b>
397         * <p>
398         * Description: <b>Processing priority requested</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>Claim.priority</b><br>
401         * </p>
402         */
403        public static final TokenClientParam PRIORITY = new TokenClientParam(SP_PRIORITY);
404
405        /**
406         * Search parameter constant for <b>patient</b>
407         * <p>
408         * Description: <b>Patient</b><br>
409         * Type: <b>reference</b><br>
410         * Path: <b>Claim.patient</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="patient", path="Claim.patient", description="Patient", type="reference"  )
414        public static final String SP_PATIENT = "patient";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
418         * <p>
419         * Description: <b>Patient</b><br>
420         * Type: <b>reference</b><br>
421         * Path: <b>Claim.patient</b><br>
422         * </p>
423         */
424        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
425
426        /**
427         * Search parameter constant for <b>provider</b>
428         * <p>
429         * Description: <b>Provider responsible for the claim</b><br>
430         * Type: <b>reference</b><br>
431         * Path: <b>Claim.provider</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="provider", path="Claim.provider", description="Provider responsible for the claim", type="reference"  )
435        public static final String SP_PROVIDER = "provider";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>provider</b>
439         * <p>
440         * Description: <b>Provider responsible for the claim</b><br>
441         * Type: <b>reference</b><br>
442         * Path: <b>Claim.provider</b><br>
443         * </p>
444         */
445        public static final ReferenceClientParam PROVIDER = new ReferenceClientParam(SP_PROVIDER);
446
447
448        /**
449         * Constant for fluent queries to be used to add include statements. Specifies
450         * the path value of "<b>Claim:patient</b>".
451         */
452        public static final Include INCLUDE_PATIENT = new Include("Claim:patient");
453
454        /**
455         * Constant for fluent queries to be used to add include statements. Specifies
456         * the path value of "<b>Claim:provider</b>".
457         */
458        public static final Include INCLUDE_PROVIDER = new Include("Claim:provider");
459
460
461        @Child(name="type", type=CodeDt.class, order=0, min=1, max=1, summary=false, modifier=false)    
462        @Description(
463                shortDefinition="",
464                formalDefinition="The category of claim this is"
465        )
466        private BoundCodeDt<ClaimTypeEnum> myType;
467        
468        @Child(name="identifier", type=IdentifierDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
469        @Description(
470                shortDefinition="",
471                formalDefinition="The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number."
472        )
473        private java.util.List<IdentifierDt> myIdentifier;
474        
475        @Child(name="ruleset", type=CodingDt.class, order=2, min=0, max=1, summary=false, modifier=false)       
476        @Description(
477                shortDefinition="",
478                formalDefinition="The version of the specification on which this instance relies."
479        )
480        private CodingDt myRuleset;
481        
482        @Child(name="originalRuleset", type=CodingDt.class, order=3, min=0, max=1, summary=false, modifier=false)       
483        @Description(
484                shortDefinition="",
485                formalDefinition="The version of the specification from which the original instance was created."
486        )
487        private CodingDt myOriginalRuleset;
488        
489        @Child(name="created", type=DateTimeDt.class, order=4, min=0, max=1, summary=false, modifier=false)     
490        @Description(
491                shortDefinition="",
492                formalDefinition="The date when the enclosed suite of services were performed or completed"
493        )
494        private DateTimeDt myCreated;
495        
496        @Child(name="target", order=5, min=0, max=1, summary=false, modifier=false, type={
497                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
498        @Description(
499                shortDefinition="",
500                formalDefinition="Insurer Identifier, typical BIN number (6 digit)."
501        )
502        private ResourceReferenceDt myTarget;
503        
504        @Child(name="provider", order=6, min=0, max=1, summary=false, modifier=false, type={
505                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
506        @Description(
507                shortDefinition="",
508                formalDefinition="The provider which is responsible for the bill, claim pre-determination, pre-authorization."
509        )
510        private ResourceReferenceDt myProvider;
511        
512        @Child(name="organization", order=7, min=0, max=1, summary=false, modifier=false, type={
513                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
514        @Description(
515                shortDefinition="",
516                formalDefinition="The organization which is responsible for the bill, claim pre-determination, pre-authorization."
517        )
518        private ResourceReferenceDt myOrganization;
519        
520        @Child(name="use", type=CodeDt.class, order=8, min=0, max=1, summary=false, modifier=false)     
521        @Description(
522                shortDefinition="",
523                formalDefinition="Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination)."
524        )
525        private BoundCodeDt<UseEnum> myUse;
526        
527        @Child(name="priority", type=CodingDt.class, order=9, min=0, max=1, summary=false, modifier=false)      
528        @Description(
529                shortDefinition="",
530                formalDefinition="Immediate (stat), best effort (normal), deferred (deferred)"
531        )
532        private CodingDt myPriority;
533        
534        @Child(name="fundsReserve", type=CodingDt.class, order=10, min=0, max=1, summary=false, modifier=false) 
535        @Description(
536                shortDefinition="",
537                formalDefinition="In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested."
538        )
539        private CodingDt myFundsReserve;
540        
541        @Child(name="enterer", order=11, min=0, max=1, summary=false, modifier=false, type={
542                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
543        @Description(
544                shortDefinition="",
545                formalDefinition="Person who created the invoice/claim/pre-determination or pre-authorization."
546        )
547        private ResourceReferenceDt myEnterer;
548        
549        @Child(name="facility", order=12, min=0, max=1, summary=false, modifier=false, type={
550                ca.uhn.fhir.model.dstu2.resource.Location.class })
551        @Description(
552                shortDefinition="",
553                formalDefinition="Facility where the services were provided."
554        )
555        private ResourceReferenceDt myFacility;
556        
557        @Child(name="prescription", order=13, min=0, max=1, summary=false, modifier=false, type={
558                ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class,                 ca.uhn.fhir.model.dstu2.resource.VisionPrescription.class       })
559        @Description(
560                shortDefinition="",
561                formalDefinition="Prescription to support the dispensing of Pharmacy or Vision products."
562        )
563        private ResourceReferenceDt myPrescription;
564        
565        @Child(name="originalPrescription", order=14, min=0, max=1, summary=false, modifier=false, type={
566                ca.uhn.fhir.model.dstu2.resource.MedicationOrder.class  })
567        @Description(
568                shortDefinition="",
569                formalDefinition="Original prescription to support the dispensing of pharmacy services, medications or products."
570        )
571        private ResourceReferenceDt myOriginalPrescription;
572        
573        @Child(name="payee", order=15, min=0, max=1, summary=false, modifier=false)     
574        @Description(
575                shortDefinition="",
576                formalDefinition="The party to be reimbursed for the services."
577        )
578        private Payee myPayee;
579        
580        @Child(name="referral", order=16, min=0, max=1, summary=false, modifier=false, type={
581                ca.uhn.fhir.model.dstu2.resource.ReferralRequest.class  })
582        @Description(
583                shortDefinition="",
584                formalDefinition="The referral resource which lists the date, practitioner, reason and other supporting information."
585        )
586        private ResourceReferenceDt myReferral;
587        
588        @Child(name="diagnosis", order=17, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
589        @Description(
590                shortDefinition="",
591                formalDefinition="Ordered list of patient diagnosis for which care is sought."
592        )
593        private java.util.List<Diagnosis> myDiagnosis;
594        
595        @Child(name="condition", type=CodingDt.class, order=18, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
596        @Description(
597                shortDefinition="",
598                formalDefinition="List of patient conditions for which care is sought."
599        )
600        private java.util.List<CodingDt> myCondition;
601        
602        @Child(name="patient", order=19, min=1, max=1, summary=false, modifier=false, type={
603                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
604        @Description(
605                shortDefinition="",
606                formalDefinition="Patient Resource"
607        )
608        private ResourceReferenceDt myPatient;
609        
610        @Child(name="coverage", order=20, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
611        @Description(
612                shortDefinition="",
613                formalDefinition="Financial instrument by which payment information for health care"
614        )
615        private java.util.List<Coverage> myCoverage;
616        
617        @Child(name="exception", type=CodingDt.class, order=21, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
618        @Description(
619                shortDefinition="",
620                formalDefinition="Factors which may influence the applicability of coverage."
621        )
622        private java.util.List<CodingDt> myException;
623        
624        @Child(name="school", type=StringDt.class, order=22, min=0, max=1, summary=false, modifier=false)       
625        @Description(
626                shortDefinition="",
627                formalDefinition="Name of school for over-aged dependents."
628        )
629        private StringDt mySchool;
630        
631        @Child(name="accident", type=DateDt.class, order=23, min=0, max=1, summary=false, modifier=false)       
632        @Description(
633                shortDefinition="",
634                formalDefinition="Date of an accident which these services are addressing."
635        )
636        private DateDt myAccident;
637        
638        @Child(name="accidentType", type=CodingDt.class, order=24, min=0, max=1, summary=false, modifier=false) 
639        @Description(
640                shortDefinition="",
641                formalDefinition="Type of accident: work, auto, etc."
642        )
643        private CodingDt myAccidentType;
644        
645        @Child(name="interventionException", type=CodingDt.class, order=25, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
646        @Description(
647                shortDefinition="",
648                formalDefinition="A list of intervention and exception codes which may influence the adjudication of the claim."
649        )
650        private java.util.List<CodingDt> myInterventionException;
651        
652        @Child(name="item", order=26, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
653        @Description(
654                shortDefinition="",
655                formalDefinition="First tier of goods and services"
656        )
657        private java.util.List<Item> myItem;
658        
659        @Child(name="additionalMaterials", type=CodingDt.class, order=27, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
660        @Description(
661                shortDefinition="",
662                formalDefinition="Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission."
663        )
664        private java.util.List<CodingDt> myAdditionalMaterials;
665        
666        @Child(name="missingTeeth", order=28, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
667        @Description(
668                shortDefinition="",
669                formalDefinition="A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons."
670        )
671        private java.util.List<MissingTeeth> myMissingTeeth;
672        
673
674        @Override
675        public boolean isEmpty() {
676                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myIdentifier,  myRuleset,  myOriginalRuleset,  myCreated,  myTarget,  myProvider,  myOrganization,  myUse,  myPriority,  myFundsReserve,  myEnterer,  myFacility,  myPrescription,  myOriginalPrescription,  myPayee,  myReferral,  myDiagnosis,  myCondition,  myPatient,  myCoverage,  myException,  mySchool,  myAccident,  myAccidentType,  myInterventionException,  myItem,  myAdditionalMaterials,  myMissingTeeth);
677        }
678        
679        @Override
680        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
681                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myIdentifier, myRuleset, myOriginalRuleset, myCreated, myTarget, myProvider, myOrganization, myUse, myPriority, myFundsReserve, myEnterer, myFacility, myPrescription, myOriginalPrescription, myPayee, myReferral, myDiagnosis, myCondition, myPatient, myCoverage, myException, mySchool, myAccident, myAccidentType, myInterventionException, myItem, myAdditionalMaterials, myMissingTeeth);
682        }
683
684        /**
685         * Gets the value(s) for <b>type</b> ().
686         * creating it if it does
687         * not exist. Will not return <code>null</code>.
688         *
689     * <p>
690     * <b>Definition:</b>
691     * The category of claim this is
692     * </p> 
693         */
694        public BoundCodeDt<ClaimTypeEnum> getTypeElement() {  
695                if (myType == null) {
696                        myType = new BoundCodeDt<ClaimTypeEnum>(ClaimTypeEnum.VALUESET_BINDER);
697                }
698                return myType;
699        }
700
701        
702        /**
703         * Gets the value(s) for <b>type</b> ().
704         * creating it if it does
705         * not exist. Will not return <code>null</code>.
706         *
707     * <p>
708     * <b>Definition:</b>
709     * The category of claim this is
710     * </p> 
711         */
712        public String getType() {  
713                return getTypeElement().getValue();
714        }
715
716        /**
717         * Sets the value(s) for <b>type</b> ()
718         *
719     * <p>
720     * <b>Definition:</b>
721     * The category of claim this is
722     * </p> 
723         */
724        public Claim setType(BoundCodeDt<ClaimTypeEnum> theValue) {
725                myType = theValue;
726                return this;
727        }
728        
729        
730
731        /**
732         * Sets the value(s) for <b>type</b> ()
733         *
734     * <p>
735     * <b>Definition:</b>
736     * The category of claim this is
737     * </p> 
738         */
739        public Claim setType(ClaimTypeEnum theValue) {
740                setType(new BoundCodeDt<ClaimTypeEnum>(ClaimTypeEnum.VALUESET_BINDER, theValue));
741                
742/*
743                getTypeElement().setValueAsEnum(theValue);
744*/
745                return this;
746        }
747
748  
749        /**
750         * Gets the value(s) for <b>identifier</b> ().
751         * creating it if it does
752         * not exist. Will not return <code>null</code>.
753         *
754     * <p>
755     * <b>Definition:</b>
756     * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.
757     * </p> 
758         */
759        public java.util.List<IdentifierDt> getIdentifier() {  
760                if (myIdentifier == null) {
761                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
762                }
763                return myIdentifier;
764        }
765
766        /**
767         * Sets the value(s) for <b>identifier</b> ()
768         *
769     * <p>
770     * <b>Definition:</b>
771     * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.
772     * </p> 
773         */
774        public Claim setIdentifier(java.util.List<IdentifierDt> theValue) {
775                myIdentifier = theValue;
776                return this;
777        }
778        
779        
780
781        /**
782         * Adds and returns a new value for <b>identifier</b> ()
783         *
784     * <p>
785     * <b>Definition:</b>
786     * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.
787     * </p> 
788         */
789        public IdentifierDt addIdentifier() {
790                IdentifierDt newType = new IdentifierDt();
791                getIdentifier().add(newType);
792                return newType; 
793        }
794
795        /**
796         * Adds a given new value for <b>identifier</b> ()
797         *
798         * <p>
799         * <b>Definition:</b>
800         * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.
801         * </p>
802         * @param theValue The identifier to add (must not be <code>null</code>)
803         */
804        public Claim addIdentifier(IdentifierDt theValue) {
805                if (theValue == null) {
806                        throw new NullPointerException("theValue must not be null");
807                }
808                getIdentifier().add(theValue);
809                return this;
810        }
811
812        /**
813         * Gets the first repetition for <b>identifier</b> (),
814         * creating it if it does not already exist.
815         *
816     * <p>
817     * <b>Definition:</b>
818     * The business identifier for the instance: invoice number, claim number, pre-determination or pre-authorization number.
819     * </p> 
820         */
821        public IdentifierDt getIdentifierFirstRep() {
822                if (getIdentifier().isEmpty()) {
823                        return addIdentifier();
824                }
825                return getIdentifier().get(0); 
826        }
827  
828        /**
829         * Gets the value(s) for <b>ruleset</b> ().
830         * creating it if it does
831         * not exist. Will not return <code>null</code>.
832         *
833     * <p>
834     * <b>Definition:</b>
835     * The version of the specification on which this instance relies.
836     * </p> 
837         */
838        public CodingDt getRuleset() {  
839                if (myRuleset == null) {
840                        myRuleset = new CodingDt();
841                }
842                return myRuleset;
843        }
844
845        /**
846         * Sets the value(s) for <b>ruleset</b> ()
847         *
848     * <p>
849     * <b>Definition:</b>
850     * The version of the specification on which this instance relies.
851     * </p> 
852         */
853        public Claim setRuleset(CodingDt theValue) {
854                myRuleset = theValue;
855                return this;
856        }
857        
858        
859
860  
861        /**
862         * Gets the value(s) for <b>originalRuleset</b> ().
863         * creating it if it does
864         * not exist. Will not return <code>null</code>.
865         *
866     * <p>
867     * <b>Definition:</b>
868     * The version of the specification from which the original instance was created.
869     * </p> 
870         */
871        public CodingDt getOriginalRuleset() {  
872                if (myOriginalRuleset == null) {
873                        myOriginalRuleset = new CodingDt();
874                }
875                return myOriginalRuleset;
876        }
877
878        /**
879         * Sets the value(s) for <b>originalRuleset</b> ()
880         *
881     * <p>
882     * <b>Definition:</b>
883     * The version of the specification from which the original instance was created.
884     * </p> 
885         */
886        public Claim setOriginalRuleset(CodingDt theValue) {
887                myOriginalRuleset = theValue;
888                return this;
889        }
890        
891        
892
893  
894        /**
895         * Gets the value(s) for <b>created</b> ().
896         * creating it if it does
897         * not exist. Will not return <code>null</code>.
898         *
899     * <p>
900     * <b>Definition:</b>
901     * The date when the enclosed suite of services were performed or completed
902     * </p> 
903         */
904        public DateTimeDt getCreatedElement() {  
905                if (myCreated == null) {
906                        myCreated = new DateTimeDt();
907                }
908                return myCreated;
909        }
910
911        
912        /**
913         * Gets the value(s) for <b>created</b> ().
914         * creating it if it does
915         * not exist. Will not return <code>null</code>.
916         *
917     * <p>
918     * <b>Definition:</b>
919     * The date when the enclosed suite of services were performed or completed
920     * </p> 
921         */
922        public Date getCreated() {  
923                return getCreatedElement().getValue();
924        }
925
926        /**
927         * Sets the value(s) for <b>created</b> ()
928         *
929     * <p>
930     * <b>Definition:</b>
931     * The date when the enclosed suite of services were performed or completed
932     * </p> 
933         */
934        public Claim setCreated(DateTimeDt theValue) {
935                myCreated = theValue;
936                return this;
937        }
938        
939        
940
941        /**
942         * Sets the value for <b>created</b> ()
943         *
944     * <p>
945     * <b>Definition:</b>
946     * The date when the enclosed suite of services were performed or completed
947     * </p> 
948         */
949        public Claim setCreated( Date theDate,  TemporalPrecisionEnum thePrecision) {
950                myCreated = new DateTimeDt(theDate, thePrecision); 
951                return this; 
952        }
953
954        /**
955         * Sets the value for <b>created</b> ()
956         *
957     * <p>
958     * <b>Definition:</b>
959     * The date when the enclosed suite of services were performed or completed
960     * </p> 
961         */
962        public Claim setCreatedWithSecondsPrecision( Date theDate) {
963                myCreated = new DateTimeDt(theDate); 
964                return this; 
965        }
966
967 
968        /**
969         * Gets the value(s) for <b>target</b> ().
970         * creating it if it does
971         * not exist. Will not return <code>null</code>.
972         *
973     * <p>
974     * <b>Definition:</b>
975     * Insurer Identifier, typical BIN number (6 digit).
976     * </p> 
977         */
978        public ResourceReferenceDt getTarget() {  
979                if (myTarget == null) {
980                        myTarget = new ResourceReferenceDt();
981                }
982                return myTarget;
983        }
984
985        /**
986         * Sets the value(s) for <b>target</b> ()
987         *
988     * <p>
989     * <b>Definition:</b>
990     * Insurer Identifier, typical BIN number (6 digit).
991     * </p> 
992         */
993        public Claim setTarget(ResourceReferenceDt theValue) {
994                myTarget = theValue;
995                return this;
996        }
997        
998        
999
1000  
1001        /**
1002         * Gets the value(s) for <b>provider</b> ().
1003         * creating it if it does
1004         * not exist. Will not return <code>null</code>.
1005         *
1006     * <p>
1007     * <b>Definition:</b>
1008     * The provider which is responsible for the bill, claim pre-determination, pre-authorization.
1009     * </p> 
1010         */
1011        public ResourceReferenceDt getProvider() {  
1012                if (myProvider == null) {
1013                        myProvider = new ResourceReferenceDt();
1014                }
1015                return myProvider;
1016        }
1017
1018        /**
1019         * Sets the value(s) for <b>provider</b> ()
1020         *
1021     * <p>
1022     * <b>Definition:</b>
1023     * The provider which is responsible for the bill, claim pre-determination, pre-authorization.
1024     * </p> 
1025         */
1026        public Claim setProvider(ResourceReferenceDt theValue) {
1027                myProvider = theValue;
1028                return this;
1029        }
1030        
1031        
1032
1033  
1034        /**
1035         * Gets the value(s) for <b>organization</b> ().
1036         * creating it if it does
1037         * not exist. Will not return <code>null</code>.
1038         *
1039     * <p>
1040     * <b>Definition:</b>
1041     * The organization which is responsible for the bill, claim pre-determination, pre-authorization.
1042     * </p> 
1043         */
1044        public ResourceReferenceDt getOrganization() {  
1045                if (myOrganization == null) {
1046                        myOrganization = new ResourceReferenceDt();
1047                }
1048                return myOrganization;
1049        }
1050
1051        /**
1052         * Sets the value(s) for <b>organization</b> ()
1053         *
1054     * <p>
1055     * <b>Definition:</b>
1056     * The organization which is responsible for the bill, claim pre-determination, pre-authorization.
1057     * </p> 
1058         */
1059        public Claim setOrganization(ResourceReferenceDt theValue) {
1060                myOrganization = theValue;
1061                return this;
1062        }
1063        
1064        
1065
1066  
1067        /**
1068         * Gets the value(s) for <b>use</b> ().
1069         * creating it if it does
1070         * not exist. Will not return <code>null</code>.
1071         *
1072     * <p>
1073     * <b>Definition:</b>
1074     * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).
1075     * </p> 
1076         */
1077        public BoundCodeDt<UseEnum> getUseElement() {  
1078                if (myUse == null) {
1079                        myUse = new BoundCodeDt<UseEnum>(UseEnum.VALUESET_BINDER);
1080                }
1081                return myUse;
1082        }
1083
1084        
1085        /**
1086         * Gets the value(s) for <b>use</b> ().
1087         * creating it if it does
1088         * not exist. Will not return <code>null</code>.
1089         *
1090     * <p>
1091     * <b>Definition:</b>
1092     * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).
1093     * </p> 
1094         */
1095        public String getUse() {  
1096                return getUseElement().getValue();
1097        }
1098
1099        /**
1100         * Sets the value(s) for <b>use</b> ()
1101         *
1102     * <p>
1103     * <b>Definition:</b>
1104     * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).
1105     * </p> 
1106         */
1107        public Claim setUse(BoundCodeDt<UseEnum> theValue) {
1108                myUse = theValue;
1109                return this;
1110        }
1111        
1112        
1113
1114        /**
1115         * Sets the value(s) for <b>use</b> ()
1116         *
1117     * <p>
1118     * <b>Definition:</b>
1119     * Complete (Bill or Claim), Proposed (Pre-Authorization), Exploratory (Pre-determination).
1120     * </p> 
1121         */
1122        public Claim setUse(UseEnum theValue) {
1123                setUse(new BoundCodeDt<UseEnum>(UseEnum.VALUESET_BINDER, theValue));
1124                
1125/*
1126                getUseElement().setValueAsEnum(theValue);
1127*/
1128                return this;
1129        }
1130
1131  
1132        /**
1133         * Gets the value(s) for <b>priority</b> ().
1134         * creating it if it does
1135         * not exist. Will not return <code>null</code>.
1136         *
1137     * <p>
1138     * <b>Definition:</b>
1139     * Immediate (stat), best effort (normal), deferred (deferred)
1140     * </p> 
1141         */
1142        public CodingDt getPriority() {  
1143                if (myPriority == null) {
1144                        myPriority = new CodingDt();
1145                }
1146                return myPriority;
1147        }
1148
1149        /**
1150         * Sets the value(s) for <b>priority</b> ()
1151         *
1152     * <p>
1153     * <b>Definition:</b>
1154     * Immediate (stat), best effort (normal), deferred (deferred)
1155     * </p> 
1156         */
1157        public Claim setPriority(CodingDt theValue) {
1158                myPriority = theValue;
1159                return this;
1160        }
1161        
1162        
1163
1164  
1165        /**
1166         * Gets the value(s) for <b>fundsReserve</b> ().
1167         * creating it if it does
1168         * not exist. Will not return <code>null</code>.
1169         *
1170     * <p>
1171     * <b>Definition:</b>
1172     * In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.
1173     * </p> 
1174         */
1175        public CodingDt getFundsReserve() {  
1176                if (myFundsReserve == null) {
1177                        myFundsReserve = new CodingDt();
1178                }
1179                return myFundsReserve;
1180        }
1181
1182        /**
1183         * Sets the value(s) for <b>fundsReserve</b> ()
1184         *
1185     * <p>
1186     * <b>Definition:</b>
1187     * In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.
1188     * </p> 
1189         */
1190        public Claim setFundsReserve(CodingDt theValue) {
1191                myFundsReserve = theValue;
1192                return this;
1193        }
1194        
1195        
1196
1197  
1198        /**
1199         * Gets the value(s) for <b>enterer</b> ().
1200         * creating it if it does
1201         * not exist. Will not return <code>null</code>.
1202         *
1203     * <p>
1204     * <b>Definition:</b>
1205     * Person who created the invoice/claim/pre-determination or pre-authorization.
1206     * </p> 
1207         */
1208        public ResourceReferenceDt getEnterer() {  
1209                if (myEnterer == null) {
1210                        myEnterer = new ResourceReferenceDt();
1211                }
1212                return myEnterer;
1213        }
1214
1215        /**
1216         * Sets the value(s) for <b>enterer</b> ()
1217         *
1218     * <p>
1219     * <b>Definition:</b>
1220     * Person who created the invoice/claim/pre-determination or pre-authorization.
1221     * </p> 
1222         */
1223        public Claim setEnterer(ResourceReferenceDt theValue) {
1224                myEnterer = theValue;
1225                return this;
1226        }
1227        
1228        
1229
1230  
1231        /**
1232         * Gets the value(s) for <b>facility</b> ().
1233         * creating it if it does
1234         * not exist. Will not return <code>null</code>.
1235         *
1236     * <p>
1237     * <b>Definition:</b>
1238     * Facility where the services were provided.
1239     * </p> 
1240         */
1241        public ResourceReferenceDt getFacility() {  
1242                if (myFacility == null) {
1243                        myFacility = new ResourceReferenceDt();
1244                }
1245                return myFacility;
1246        }
1247
1248        /**
1249         * Sets the value(s) for <b>facility</b> ()
1250         *
1251     * <p>
1252     * <b>Definition:</b>
1253     * Facility where the services were provided.
1254     * </p> 
1255         */
1256        public Claim setFacility(ResourceReferenceDt theValue) {
1257                myFacility = theValue;
1258                return this;
1259        }
1260        
1261        
1262
1263  
1264        /**
1265         * Gets the value(s) for <b>prescription</b> ().
1266         * creating it if it does
1267         * not exist. Will not return <code>null</code>.
1268         *
1269     * <p>
1270     * <b>Definition:</b>
1271     * Prescription to support the dispensing of Pharmacy or Vision products.
1272     * </p> 
1273         */
1274        public ResourceReferenceDt getPrescription() {  
1275                if (myPrescription == null) {
1276                        myPrescription = new ResourceReferenceDt();
1277                }
1278                return myPrescription;
1279        }
1280
1281        /**
1282         * Sets the value(s) for <b>prescription</b> ()
1283         *
1284     * <p>
1285     * <b>Definition:</b>
1286     * Prescription to support the dispensing of Pharmacy or Vision products.
1287     * </p> 
1288         */
1289        public Claim setPrescription(ResourceReferenceDt theValue) {
1290                myPrescription = theValue;
1291                return this;
1292        }
1293        
1294        
1295
1296  
1297        /**
1298         * Gets the value(s) for <b>originalPrescription</b> ().
1299         * creating it if it does
1300         * not exist. Will not return <code>null</code>.
1301         *
1302     * <p>
1303     * <b>Definition:</b>
1304     * Original prescription to support the dispensing of pharmacy services, medications or products.
1305     * </p> 
1306         */
1307        public ResourceReferenceDt getOriginalPrescription() {  
1308                if (myOriginalPrescription == null) {
1309                        myOriginalPrescription = new ResourceReferenceDt();
1310                }
1311                return myOriginalPrescription;
1312        }
1313
1314        /**
1315         * Sets the value(s) for <b>originalPrescription</b> ()
1316         *
1317     * <p>
1318     * <b>Definition:</b>
1319     * Original prescription to support the dispensing of pharmacy services, medications or products.
1320     * </p> 
1321         */
1322        public Claim setOriginalPrescription(ResourceReferenceDt theValue) {
1323                myOriginalPrescription = theValue;
1324                return this;
1325        }
1326        
1327        
1328
1329  
1330        /**
1331         * Gets the value(s) for <b>payee</b> ().
1332         * creating it if it does
1333         * not exist. Will not return <code>null</code>.
1334         *
1335     * <p>
1336     * <b>Definition:</b>
1337     * The party to be reimbursed for the services.
1338     * </p> 
1339         */
1340        public Payee getPayee() {  
1341                if (myPayee == null) {
1342                        myPayee = new Payee();
1343                }
1344                return myPayee;
1345        }
1346
1347        /**
1348         * Sets the value(s) for <b>payee</b> ()
1349         *
1350     * <p>
1351     * <b>Definition:</b>
1352     * The party to be reimbursed for the services.
1353     * </p> 
1354         */
1355        public Claim setPayee(Payee theValue) {
1356                myPayee = theValue;
1357                return this;
1358        }
1359        
1360        
1361
1362  
1363        /**
1364         * Gets the value(s) for <b>referral</b> ().
1365         * creating it if it does
1366         * not exist. Will not return <code>null</code>.
1367         *
1368     * <p>
1369     * <b>Definition:</b>
1370     * The referral resource which lists the date, practitioner, reason and other supporting information.
1371     * </p> 
1372         */
1373        public ResourceReferenceDt getReferral() {  
1374                if (myReferral == null) {
1375                        myReferral = new ResourceReferenceDt();
1376                }
1377                return myReferral;
1378        }
1379
1380        /**
1381         * Sets the value(s) for <b>referral</b> ()
1382         *
1383     * <p>
1384     * <b>Definition:</b>
1385     * The referral resource which lists the date, practitioner, reason and other supporting information.
1386     * </p> 
1387         */
1388        public Claim setReferral(ResourceReferenceDt theValue) {
1389                myReferral = theValue;
1390                return this;
1391        }
1392        
1393        
1394
1395  
1396        /**
1397         * Gets the value(s) for <b>diagnosis</b> ().
1398         * creating it if it does
1399         * not exist. Will not return <code>null</code>.
1400         *
1401     * <p>
1402     * <b>Definition:</b>
1403     * Ordered list of patient diagnosis for which care is sought.
1404     * </p> 
1405         */
1406        public java.util.List<Diagnosis> getDiagnosis() {  
1407                if (myDiagnosis == null) {
1408                        myDiagnosis = new java.util.ArrayList<Diagnosis>();
1409                }
1410                return myDiagnosis;
1411        }
1412
1413        /**
1414         * Sets the value(s) for <b>diagnosis</b> ()
1415         *
1416     * <p>
1417     * <b>Definition:</b>
1418     * Ordered list of patient diagnosis for which care is sought.
1419     * </p> 
1420         */
1421        public Claim setDiagnosis(java.util.List<Diagnosis> theValue) {
1422                myDiagnosis = theValue;
1423                return this;
1424        }
1425        
1426        
1427
1428        /**
1429         * Adds and returns a new value for <b>diagnosis</b> ()
1430         *
1431     * <p>
1432     * <b>Definition:</b>
1433     * Ordered list of patient diagnosis for which care is sought.
1434     * </p> 
1435         */
1436        public Diagnosis addDiagnosis() {
1437                Diagnosis newType = new Diagnosis();
1438                getDiagnosis().add(newType);
1439                return newType; 
1440        }
1441
1442        /**
1443         * Adds a given new value for <b>diagnosis</b> ()
1444         *
1445         * <p>
1446         * <b>Definition:</b>
1447         * Ordered list of patient diagnosis for which care is sought.
1448         * </p>
1449         * @param theValue The diagnosis to add (must not be <code>null</code>)
1450         */
1451        public Claim addDiagnosis(Diagnosis theValue) {
1452                if (theValue == null) {
1453                        throw new NullPointerException("theValue must not be null");
1454                }
1455                getDiagnosis().add(theValue);
1456                return this;
1457        }
1458
1459        /**
1460         * Gets the first repetition for <b>diagnosis</b> (),
1461         * creating it if it does not already exist.
1462         *
1463     * <p>
1464     * <b>Definition:</b>
1465     * Ordered list of patient diagnosis for which care is sought.
1466     * </p> 
1467         */
1468        public Diagnosis getDiagnosisFirstRep() {
1469                if (getDiagnosis().isEmpty()) {
1470                        return addDiagnosis();
1471                }
1472                return getDiagnosis().get(0); 
1473        }
1474  
1475        /**
1476         * Gets the value(s) for <b>condition</b> ().
1477         * creating it if it does
1478         * not exist. Will not return <code>null</code>.
1479         *
1480     * <p>
1481     * <b>Definition:</b>
1482     * List of patient conditions for which care is sought.
1483     * </p> 
1484         */
1485        public java.util.List<CodingDt> getCondition() {  
1486                if (myCondition == null) {
1487                        myCondition = new java.util.ArrayList<CodingDt>();
1488                }
1489                return myCondition;
1490        }
1491
1492        /**
1493         * Sets the value(s) for <b>condition</b> ()
1494         *
1495     * <p>
1496     * <b>Definition:</b>
1497     * List of patient conditions for which care is sought.
1498     * </p> 
1499         */
1500        public Claim setCondition(java.util.List<CodingDt> theValue) {
1501                myCondition = theValue;
1502                return this;
1503        }
1504        
1505        
1506
1507        /**
1508         * Adds and returns a new value for <b>condition</b> ()
1509         *
1510     * <p>
1511     * <b>Definition:</b>
1512     * List of patient conditions for which care is sought.
1513     * </p> 
1514         */
1515        public CodingDt addCondition() {
1516                CodingDt newType = new CodingDt();
1517                getCondition().add(newType);
1518                return newType; 
1519        }
1520
1521        /**
1522         * Adds a given new value for <b>condition</b> ()
1523         *
1524         * <p>
1525         * <b>Definition:</b>
1526         * List of patient conditions for which care is sought.
1527         * </p>
1528         * @param theValue The condition to add (must not be <code>null</code>)
1529         */
1530        public Claim addCondition(CodingDt theValue) {
1531                if (theValue == null) {
1532                        throw new NullPointerException("theValue must not be null");
1533                }
1534                getCondition().add(theValue);
1535                return this;
1536        }
1537
1538        /**
1539         * Gets the first repetition for <b>condition</b> (),
1540         * creating it if it does not already exist.
1541         *
1542     * <p>
1543     * <b>Definition:</b>
1544     * List of patient conditions for which care is sought.
1545     * </p> 
1546         */
1547        public CodingDt getConditionFirstRep() {
1548                if (getCondition().isEmpty()) {
1549                        return addCondition();
1550                }
1551                return getCondition().get(0); 
1552        }
1553  
1554        /**
1555         * Gets the value(s) for <b>patient</b> ().
1556         * creating it if it does
1557         * not exist. Will not return <code>null</code>.
1558         *
1559     * <p>
1560     * <b>Definition:</b>
1561     * Patient Resource
1562     * </p> 
1563         */
1564        public ResourceReferenceDt getPatient() {  
1565                if (myPatient == null) {
1566                        myPatient = new ResourceReferenceDt();
1567                }
1568                return myPatient;
1569        }
1570
1571        /**
1572         * Sets the value(s) for <b>patient</b> ()
1573         *
1574     * <p>
1575     * <b>Definition:</b>
1576     * Patient Resource
1577     * </p> 
1578         */
1579        public Claim setPatient(ResourceReferenceDt theValue) {
1580                myPatient = theValue;
1581                return this;
1582        }
1583        
1584        
1585
1586  
1587        /**
1588         * Gets the value(s) for <b>coverage</b> ().
1589         * creating it if it does
1590         * not exist. Will not return <code>null</code>.
1591         *
1592     * <p>
1593     * <b>Definition:</b>
1594     * Financial instrument by which payment information for health care
1595     * </p> 
1596         */
1597        public java.util.List<Coverage> getCoverage() {  
1598                if (myCoverage == null) {
1599                        myCoverage = new java.util.ArrayList<Coverage>();
1600                }
1601                return myCoverage;
1602        }
1603
1604        /**
1605         * Sets the value(s) for <b>coverage</b> ()
1606         *
1607     * <p>
1608     * <b>Definition:</b>
1609     * Financial instrument by which payment information for health care
1610     * </p> 
1611         */
1612        public Claim setCoverage(java.util.List<Coverage> theValue) {
1613                myCoverage = theValue;
1614                return this;
1615        }
1616        
1617        
1618
1619        /**
1620         * Adds and returns a new value for <b>coverage</b> ()
1621         *
1622     * <p>
1623     * <b>Definition:</b>
1624     * Financial instrument by which payment information for health care
1625     * </p> 
1626         */
1627        public Coverage addCoverage() {
1628                Coverage newType = new Coverage();
1629                getCoverage().add(newType);
1630                return newType; 
1631        }
1632
1633        /**
1634         * Adds a given new value for <b>coverage</b> ()
1635         *
1636         * <p>
1637         * <b>Definition:</b>
1638         * Financial instrument by which payment information for health care
1639         * </p>
1640         * @param theValue The coverage to add (must not be <code>null</code>)
1641         */
1642        public Claim addCoverage(Coverage theValue) {
1643                if (theValue == null) {
1644                        throw new NullPointerException("theValue must not be null");
1645                }
1646                getCoverage().add(theValue);
1647                return this;
1648        }
1649
1650        /**
1651         * Gets the first repetition for <b>coverage</b> (),
1652         * creating it if it does not already exist.
1653         *
1654     * <p>
1655     * <b>Definition:</b>
1656     * Financial instrument by which payment information for health care
1657     * </p> 
1658         */
1659        public Coverage getCoverageFirstRep() {
1660                if (getCoverage().isEmpty()) {
1661                        return addCoverage();
1662                }
1663                return getCoverage().get(0); 
1664        }
1665  
1666        /**
1667         * Gets the value(s) for <b>exception</b> ().
1668         * creating it if it does
1669         * not exist. Will not return <code>null</code>.
1670         *
1671     * <p>
1672     * <b>Definition:</b>
1673     * Factors which may influence the applicability of coverage.
1674     * </p> 
1675         */
1676        public java.util.List<CodingDt> getException() {  
1677                if (myException == null) {
1678                        myException = new java.util.ArrayList<CodingDt>();
1679                }
1680                return myException;
1681        }
1682
1683        /**
1684         * Sets the value(s) for <b>exception</b> ()
1685         *
1686     * <p>
1687     * <b>Definition:</b>
1688     * Factors which may influence the applicability of coverage.
1689     * </p> 
1690         */
1691        public Claim setException(java.util.List<CodingDt> theValue) {
1692                myException = theValue;
1693                return this;
1694        }
1695        
1696        
1697
1698        /**
1699         * Adds and returns a new value for <b>exception</b> ()
1700         *
1701     * <p>
1702     * <b>Definition:</b>
1703     * Factors which may influence the applicability of coverage.
1704     * </p> 
1705         */
1706        public CodingDt addException() {
1707                CodingDt newType = new CodingDt();
1708                getException().add(newType);
1709                return newType; 
1710        }
1711
1712        /**
1713         * Adds a given new value for <b>exception</b> ()
1714         *
1715         * <p>
1716         * <b>Definition:</b>
1717         * Factors which may influence the applicability of coverage.
1718         * </p>
1719         * @param theValue The exception to add (must not be <code>null</code>)
1720         */
1721        public Claim addException(CodingDt theValue) {
1722                if (theValue == null) {
1723                        throw new NullPointerException("theValue must not be null");
1724                }
1725                getException().add(theValue);
1726                return this;
1727        }
1728
1729        /**
1730         * Gets the first repetition for <b>exception</b> (),
1731         * creating it if it does not already exist.
1732         *
1733     * <p>
1734     * <b>Definition:</b>
1735     * Factors which may influence the applicability of coverage.
1736     * </p> 
1737         */
1738        public CodingDt getExceptionFirstRep() {
1739                if (getException().isEmpty()) {
1740                        return addException();
1741                }
1742                return getException().get(0); 
1743        }
1744  
1745        /**
1746         * Gets the value(s) for <b>school</b> ().
1747         * creating it if it does
1748         * not exist. Will not return <code>null</code>.
1749         *
1750     * <p>
1751     * <b>Definition:</b>
1752     * Name of school for over-aged dependents.
1753     * </p> 
1754         */
1755        public StringDt getSchoolElement() {  
1756                if (mySchool == null) {
1757                        mySchool = new StringDt();
1758                }
1759                return mySchool;
1760        }
1761
1762        
1763        /**
1764         * Gets the value(s) for <b>school</b> ().
1765         * creating it if it does
1766         * not exist. Will not return <code>null</code>.
1767         *
1768     * <p>
1769     * <b>Definition:</b>
1770     * Name of school for over-aged dependents.
1771     * </p> 
1772         */
1773        public String getSchool() {  
1774                return getSchoolElement().getValue();
1775        }
1776
1777        /**
1778         * Sets the value(s) for <b>school</b> ()
1779         *
1780     * <p>
1781     * <b>Definition:</b>
1782     * Name of school for over-aged dependents.
1783     * </p> 
1784         */
1785        public Claim setSchool(StringDt theValue) {
1786                mySchool = theValue;
1787                return this;
1788        }
1789        
1790        
1791
1792        /**
1793         * Sets the value for <b>school</b> ()
1794         *
1795     * <p>
1796     * <b>Definition:</b>
1797     * Name of school for over-aged dependents.
1798     * </p> 
1799         */
1800        public Claim setSchool( String theString) {
1801                mySchool = new StringDt(theString); 
1802                return this; 
1803        }
1804
1805 
1806        /**
1807         * Gets the value(s) for <b>accident</b> ().
1808         * creating it if it does
1809         * not exist. Will not return <code>null</code>.
1810         *
1811     * <p>
1812     * <b>Definition:</b>
1813     * Date of an accident which these services are addressing.
1814     * </p> 
1815         */
1816        public DateDt getAccidentElement() {  
1817                if (myAccident == null) {
1818                        myAccident = new DateDt();
1819                }
1820                return myAccident;
1821        }
1822
1823        
1824        /**
1825         * Gets the value(s) for <b>accident</b> ().
1826         * creating it if it does
1827         * not exist. Will not return <code>null</code>.
1828         *
1829     * <p>
1830     * <b>Definition:</b>
1831     * Date of an accident which these services are addressing.
1832     * </p> 
1833         */
1834        public Date getAccident() {  
1835                return getAccidentElement().getValue();
1836        }
1837
1838        /**
1839         * Sets the value(s) for <b>accident</b> ()
1840         *
1841     * <p>
1842     * <b>Definition:</b>
1843     * Date of an accident which these services are addressing.
1844     * </p> 
1845         */
1846        public Claim setAccident(DateDt theValue) {
1847                myAccident = theValue;
1848                return this;
1849        }
1850        
1851        
1852
1853        /**
1854         * Sets the value for <b>accident</b> ()
1855         *
1856     * <p>
1857     * <b>Definition:</b>
1858     * Date of an accident which these services are addressing.
1859     * </p> 
1860         */
1861        public Claim setAccident( Date theDate,  TemporalPrecisionEnum thePrecision) {
1862                myAccident = new DateDt(theDate, thePrecision); 
1863                return this; 
1864        }
1865
1866        /**
1867         * Sets the value for <b>accident</b> ()
1868         *
1869     * <p>
1870     * <b>Definition:</b>
1871     * Date of an accident which these services are addressing.
1872     * </p> 
1873         */
1874        public Claim setAccidentWithDayPrecision( Date theDate) {
1875                myAccident = new DateDt(theDate); 
1876                return this; 
1877        }
1878
1879 
1880        /**
1881         * Gets the value(s) for <b>accidentType</b> ().
1882         * creating it if it does
1883         * not exist. Will not return <code>null</code>.
1884         *
1885     * <p>
1886     * <b>Definition:</b>
1887     * Type of accident: work, auto, etc.
1888     * </p> 
1889         */
1890        public CodingDt getAccidentType() {  
1891                if (myAccidentType == null) {
1892                        myAccidentType = new CodingDt();
1893                }
1894                return myAccidentType;
1895        }
1896
1897        /**
1898         * Sets the value(s) for <b>accidentType</b> ()
1899         *
1900     * <p>
1901     * <b>Definition:</b>
1902     * Type of accident: work, auto, etc.
1903     * </p> 
1904         */
1905        public Claim setAccidentType(CodingDt theValue) {
1906                myAccidentType = theValue;
1907                return this;
1908        }
1909        
1910        
1911
1912  
1913        /**
1914         * Gets the value(s) for <b>interventionException</b> ().
1915         * creating it if it does
1916         * not exist. Will not return <code>null</code>.
1917         *
1918     * <p>
1919     * <b>Definition:</b>
1920     * A list of intervention and exception codes which may influence the adjudication of the claim.
1921     * </p> 
1922         */
1923        public java.util.List<CodingDt> getInterventionException() {  
1924                if (myInterventionException == null) {
1925                        myInterventionException = new java.util.ArrayList<CodingDt>();
1926                }
1927                return myInterventionException;
1928        }
1929
1930        /**
1931         * Sets the value(s) for <b>interventionException</b> ()
1932         *
1933     * <p>
1934     * <b>Definition:</b>
1935     * A list of intervention and exception codes which may influence the adjudication of the claim.
1936     * </p> 
1937         */
1938        public Claim setInterventionException(java.util.List<CodingDt> theValue) {
1939                myInterventionException = theValue;
1940                return this;
1941        }
1942        
1943        
1944
1945        /**
1946         * Adds and returns a new value for <b>interventionException</b> ()
1947         *
1948     * <p>
1949     * <b>Definition:</b>
1950     * A list of intervention and exception codes which may influence the adjudication of the claim.
1951     * </p> 
1952         */
1953        public CodingDt addInterventionException() {
1954                CodingDt newType = new CodingDt();
1955                getInterventionException().add(newType);
1956                return newType; 
1957        }
1958
1959        /**
1960         * Adds a given new value for <b>interventionException</b> ()
1961         *
1962         * <p>
1963         * <b>Definition:</b>
1964         * A list of intervention and exception codes which may influence the adjudication of the claim.
1965         * </p>
1966         * @param theValue The interventionException to add (must not be <code>null</code>)
1967         */
1968        public Claim addInterventionException(CodingDt theValue) {
1969                if (theValue == null) {
1970                        throw new NullPointerException("theValue must not be null");
1971                }
1972                getInterventionException().add(theValue);
1973                return this;
1974        }
1975
1976        /**
1977         * Gets the first repetition for <b>interventionException</b> (),
1978         * creating it if it does not already exist.
1979         *
1980     * <p>
1981     * <b>Definition:</b>
1982     * A list of intervention and exception codes which may influence the adjudication of the claim.
1983     * </p> 
1984         */
1985        public CodingDt getInterventionExceptionFirstRep() {
1986                if (getInterventionException().isEmpty()) {
1987                        return addInterventionException();
1988                }
1989                return getInterventionException().get(0); 
1990        }
1991  
1992        /**
1993         * Gets the value(s) for <b>item</b> ().
1994         * creating it if it does
1995         * not exist. Will not return <code>null</code>.
1996         *
1997     * <p>
1998     * <b>Definition:</b>
1999     * First tier of goods and services
2000     * </p> 
2001         */
2002        public java.util.List<Item> getItem() {  
2003                if (myItem == null) {
2004                        myItem = new java.util.ArrayList<Item>();
2005                }
2006                return myItem;
2007        }
2008
2009        /**
2010         * Sets the value(s) for <b>item</b> ()
2011         *
2012     * <p>
2013     * <b>Definition:</b>
2014     * First tier of goods and services
2015     * </p> 
2016         */
2017        public Claim setItem(java.util.List<Item> theValue) {
2018                myItem = theValue;
2019                return this;
2020        }
2021        
2022        
2023
2024        /**
2025         * Adds and returns a new value for <b>item</b> ()
2026         *
2027     * <p>
2028     * <b>Definition:</b>
2029     * First tier of goods and services
2030     * </p> 
2031         */
2032        public Item addItem() {
2033                Item newType = new Item();
2034                getItem().add(newType);
2035                return newType; 
2036        }
2037
2038        /**
2039         * Adds a given new value for <b>item</b> ()
2040         *
2041         * <p>
2042         * <b>Definition:</b>
2043         * First tier of goods and services
2044         * </p>
2045         * @param theValue The item to add (must not be <code>null</code>)
2046         */
2047        public Claim addItem(Item theValue) {
2048                if (theValue == null) {
2049                        throw new NullPointerException("theValue must not be null");
2050                }
2051                getItem().add(theValue);
2052                return this;
2053        }
2054
2055        /**
2056         * Gets the first repetition for <b>item</b> (),
2057         * creating it if it does not already exist.
2058         *
2059     * <p>
2060     * <b>Definition:</b>
2061     * First tier of goods and services
2062     * </p> 
2063         */
2064        public Item getItemFirstRep() {
2065                if (getItem().isEmpty()) {
2066                        return addItem();
2067                }
2068                return getItem().get(0); 
2069        }
2070  
2071        /**
2072         * Gets the value(s) for <b>additionalMaterials</b> ().
2073         * creating it if it does
2074         * not exist. Will not return <code>null</code>.
2075         *
2076     * <p>
2077     * <b>Definition:</b>
2078     * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.
2079     * </p> 
2080         */
2081        public java.util.List<CodingDt> getAdditionalMaterials() {  
2082                if (myAdditionalMaterials == null) {
2083                        myAdditionalMaterials = new java.util.ArrayList<CodingDt>();
2084                }
2085                return myAdditionalMaterials;
2086        }
2087
2088        /**
2089         * Sets the value(s) for <b>additionalMaterials</b> ()
2090         *
2091     * <p>
2092     * <b>Definition:</b>
2093     * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.
2094     * </p> 
2095         */
2096        public Claim setAdditionalMaterials(java.util.List<CodingDt> theValue) {
2097                myAdditionalMaterials = theValue;
2098                return this;
2099        }
2100        
2101        
2102
2103        /**
2104         * Adds and returns a new value for <b>additionalMaterials</b> ()
2105         *
2106     * <p>
2107     * <b>Definition:</b>
2108     * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.
2109     * </p> 
2110         */
2111        public CodingDt addAdditionalMaterials() {
2112                CodingDt newType = new CodingDt();
2113                getAdditionalMaterials().add(newType);
2114                return newType; 
2115        }
2116
2117        /**
2118         * Adds a given new value for <b>additionalMaterials</b> ()
2119         *
2120         * <p>
2121         * <b>Definition:</b>
2122         * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.
2123         * </p>
2124         * @param theValue The additionalMaterials to add (must not be <code>null</code>)
2125         */
2126        public Claim addAdditionalMaterials(CodingDt theValue) {
2127                if (theValue == null) {
2128                        throw new NullPointerException("theValue must not be null");
2129                }
2130                getAdditionalMaterials().add(theValue);
2131                return this;
2132        }
2133
2134        /**
2135         * Gets the first repetition for <b>additionalMaterials</b> (),
2136         * creating it if it does not already exist.
2137         *
2138     * <p>
2139     * <b>Definition:</b>
2140     * Code to indicate that Xrays, images, emails, documents, models or attachments are being sent in support of this submission.
2141     * </p> 
2142         */
2143        public CodingDt getAdditionalMaterialsFirstRep() {
2144                if (getAdditionalMaterials().isEmpty()) {
2145                        return addAdditionalMaterials();
2146                }
2147                return getAdditionalMaterials().get(0); 
2148        }
2149  
2150        /**
2151         * Gets the value(s) for <b>missingTeeth</b> ().
2152         * creating it if it does
2153         * not exist. Will not return <code>null</code>.
2154         *
2155     * <p>
2156     * <b>Definition:</b>
2157     * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
2158     * </p> 
2159         */
2160        public java.util.List<MissingTeeth> getMissingTeeth() {  
2161                if (myMissingTeeth == null) {
2162                        myMissingTeeth = new java.util.ArrayList<MissingTeeth>();
2163                }
2164                return myMissingTeeth;
2165        }
2166
2167        /**
2168         * Sets the value(s) for <b>missingTeeth</b> ()
2169         *
2170     * <p>
2171     * <b>Definition:</b>
2172     * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
2173     * </p> 
2174         */
2175        public Claim setMissingTeeth(java.util.List<MissingTeeth> theValue) {
2176                myMissingTeeth = theValue;
2177                return this;
2178        }
2179        
2180        
2181
2182        /**
2183         * Adds and returns a new value for <b>missingTeeth</b> ()
2184         *
2185     * <p>
2186     * <b>Definition:</b>
2187     * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
2188     * </p> 
2189         */
2190        public MissingTeeth addMissingTeeth() {
2191                MissingTeeth newType = new MissingTeeth();
2192                getMissingTeeth().add(newType);
2193                return newType; 
2194        }
2195
2196        /**
2197         * Adds a given new value for <b>missingTeeth</b> ()
2198         *
2199         * <p>
2200         * <b>Definition:</b>
2201         * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
2202         * </p>
2203         * @param theValue The missingTeeth to add (must not be <code>null</code>)
2204         */
2205        public Claim addMissingTeeth(MissingTeeth theValue) {
2206                if (theValue == null) {
2207                        throw new NullPointerException("theValue must not be null");
2208                }
2209                getMissingTeeth().add(theValue);
2210                return this;
2211        }
2212
2213        /**
2214         * Gets the first repetition for <b>missingTeeth</b> (),
2215         * creating it if it does not already exist.
2216         *
2217     * <p>
2218     * <b>Definition:</b>
2219     * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
2220     * </p> 
2221         */
2222        public MissingTeeth getMissingTeethFirstRep() {
2223                if (getMissingTeeth().isEmpty()) {
2224                        return addMissingTeeth();
2225                }
2226                return getMissingTeeth().get(0); 
2227        }
2228  
2229        /**
2230         * Block class for child element: <b>Claim.payee</b> ()
2231         *
2232     * <p>
2233     * <b>Definition:</b>
2234     * The party to be reimbursed for the services.
2235     * </p> 
2236         */
2237        @Block()        
2238        public static class Payee 
2239            extends  BaseIdentifiableElement        implements IResourceBlock {
2240        
2241        @Child(name="type", type=CodingDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
2242        @Description(
2243                shortDefinition="",
2244                formalDefinition="Party to be reimbursed: Subscriber, provider, other."
2245        )
2246        private CodingDt myType;
2247        
2248        @Child(name="provider", order=1, min=0, max=1, summary=false, modifier=false, type={
2249                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
2250        @Description(
2251                shortDefinition="",
2252                formalDefinition="The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)"
2253        )
2254        private ResourceReferenceDt myProvider;
2255        
2256        @Child(name="organization", order=2, min=0, max=1, summary=false, modifier=false, type={
2257                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
2258        @Description(
2259                shortDefinition="",
2260                formalDefinition="The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)"
2261        )
2262        private ResourceReferenceDt myOrganization;
2263        
2264        @Child(name="person", order=3, min=0, max=1, summary=false, modifier=false, type={
2265                ca.uhn.fhir.model.dstu2.resource.Patient.class  })
2266        @Description(
2267                shortDefinition="",
2268                formalDefinition="The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)"
2269        )
2270        private ResourceReferenceDt myPerson;
2271        
2272
2273        @Override
2274        public boolean isEmpty() {
2275                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myProvider,  myOrganization,  myPerson);
2276        }
2277        
2278        @Override
2279        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2280                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myProvider, myOrganization, myPerson);
2281        }
2282
2283        /**
2284         * Gets the value(s) for <b>type</b> ().
2285         * creating it if it does
2286         * not exist. Will not return <code>null</code>.
2287         *
2288     * <p>
2289     * <b>Definition:</b>
2290     * Party to be reimbursed: Subscriber, provider, other.
2291     * </p> 
2292         */
2293        public CodingDt getType() {  
2294                if (myType == null) {
2295                        myType = new CodingDt();
2296                }
2297                return myType;
2298        }
2299
2300        /**
2301         * Sets the value(s) for <b>type</b> ()
2302         *
2303     * <p>
2304     * <b>Definition:</b>
2305     * Party to be reimbursed: Subscriber, provider, other.
2306     * </p> 
2307         */
2308        public Payee setType(CodingDt theValue) {
2309                myType = theValue;
2310                return this;
2311        }
2312        
2313        
2314
2315  
2316        /**
2317         * Gets the value(s) for <b>provider</b> ().
2318         * creating it if it does
2319         * not exist. Will not return <code>null</code>.
2320         *
2321     * <p>
2322     * <b>Definition:</b>
2323     * The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2324     * </p> 
2325         */
2326        public ResourceReferenceDt getProvider() {  
2327                if (myProvider == null) {
2328                        myProvider = new ResourceReferenceDt();
2329                }
2330                return myProvider;
2331        }
2332
2333        /**
2334         * Sets the value(s) for <b>provider</b> ()
2335         *
2336     * <p>
2337     * <b>Definition:</b>
2338     * The provider who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2339     * </p> 
2340         */
2341        public Payee setProvider(ResourceReferenceDt theValue) {
2342                myProvider = theValue;
2343                return this;
2344        }
2345        
2346        
2347
2348  
2349        /**
2350         * Gets the value(s) for <b>organization</b> ().
2351         * creating it if it does
2352         * not exist. Will not return <code>null</code>.
2353         *
2354     * <p>
2355     * <b>Definition:</b>
2356     * The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2357     * </p> 
2358         */
2359        public ResourceReferenceDt getOrganization() {  
2360                if (myOrganization == null) {
2361                        myOrganization = new ResourceReferenceDt();
2362                }
2363                return myOrganization;
2364        }
2365
2366        /**
2367         * Sets the value(s) for <b>organization</b> ()
2368         *
2369     * <p>
2370     * <b>Definition:</b>
2371     * The organization who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2372     * </p> 
2373         */
2374        public Payee setOrganization(ResourceReferenceDt theValue) {
2375                myOrganization = theValue;
2376                return this;
2377        }
2378        
2379        
2380
2381  
2382        /**
2383         * Gets the value(s) for <b>person</b> ().
2384         * creating it if it does
2385         * not exist. Will not return <code>null</code>.
2386         *
2387     * <p>
2388     * <b>Definition:</b>
2389     * The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2390     * </p> 
2391         */
2392        public ResourceReferenceDt getPerson() {  
2393                if (myPerson == null) {
2394                        myPerson = new ResourceReferenceDt();
2395                }
2396                return myPerson;
2397        }
2398
2399        /**
2400         * Sets the value(s) for <b>person</b> ()
2401         *
2402     * <p>
2403     * <b>Definition:</b>
2404     * The person other than the subscriber who is to be reimbursed for the claim (the party to whom any benefit is assigned)
2405     * </p> 
2406         */
2407        public Payee setPerson(ResourceReferenceDt theValue) {
2408                myPerson = theValue;
2409                return this;
2410        }
2411        
2412        
2413
2414  
2415
2416
2417        }
2418
2419
2420        /**
2421         * Block class for child element: <b>Claim.diagnosis</b> ()
2422         *
2423     * <p>
2424     * <b>Definition:</b>
2425     * Ordered list of patient diagnosis for which care is sought.
2426     * </p> 
2427         */
2428        @Block()        
2429        public static class Diagnosis 
2430            extends  BaseIdentifiableElement        implements IResourceBlock {
2431        
2432        @Child(name="sequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
2433        @Description(
2434                shortDefinition="",
2435                formalDefinition="Sequence of diagnosis which serves to order and provide a link."
2436        )
2437        private PositiveIntDt mySequence;
2438        
2439        @Child(name="diagnosis", type=CodingDt.class, order=1, min=1, max=1, summary=false, modifier=false)     
2440        @Description(
2441                shortDefinition="",
2442                formalDefinition="The diagnosis."
2443        )
2444        private CodingDt myDiagnosis;
2445        
2446
2447        @Override
2448        public boolean isEmpty() {
2449                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySequence,  myDiagnosis);
2450        }
2451        
2452        @Override
2453        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2454                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySequence, myDiagnosis);
2455        }
2456
2457        /**
2458         * Gets the value(s) for <b>sequence</b> ().
2459         * creating it if it does
2460         * not exist. Will not return <code>null</code>.
2461         *
2462     * <p>
2463     * <b>Definition:</b>
2464     * Sequence of diagnosis which serves to order and provide a link.
2465     * </p> 
2466         */
2467        public PositiveIntDt getSequenceElement() {  
2468                if (mySequence == null) {
2469                        mySequence = new PositiveIntDt();
2470                }
2471                return mySequence;
2472        }
2473
2474        
2475        /**
2476         * Gets the value(s) for <b>sequence</b> ().
2477         * creating it if it does
2478         * not exist. Will not return <code>null</code>.
2479         *
2480     * <p>
2481     * <b>Definition:</b>
2482     * Sequence of diagnosis which serves to order and provide a link.
2483     * </p> 
2484         */
2485        public Integer getSequence() {  
2486                return getSequenceElement().getValue();
2487        }
2488
2489        /**
2490         * Sets the value(s) for <b>sequence</b> ()
2491         *
2492     * <p>
2493     * <b>Definition:</b>
2494     * Sequence of diagnosis which serves to order and provide a link.
2495     * </p> 
2496         */
2497        public Diagnosis setSequence(PositiveIntDt theValue) {
2498                mySequence = theValue;
2499                return this;
2500        }
2501        
2502        
2503
2504        /**
2505         * Sets the value for <b>sequence</b> ()
2506         *
2507     * <p>
2508     * <b>Definition:</b>
2509     * Sequence of diagnosis which serves to order and provide a link.
2510     * </p> 
2511         */
2512        public Diagnosis setSequence( int theInteger) {
2513                mySequence = new PositiveIntDt(theInteger); 
2514                return this; 
2515        }
2516
2517 
2518        /**
2519         * Gets the value(s) for <b>diagnosis</b> ().
2520         * creating it if it does
2521         * not exist. Will not return <code>null</code>.
2522         *
2523     * <p>
2524     * <b>Definition:</b>
2525     * The diagnosis.
2526     * </p> 
2527         */
2528        public CodingDt getDiagnosis() {  
2529                if (myDiagnosis == null) {
2530                        myDiagnosis = new CodingDt();
2531                }
2532                return myDiagnosis;
2533        }
2534
2535        /**
2536         * Sets the value(s) for <b>diagnosis</b> ()
2537         *
2538     * <p>
2539     * <b>Definition:</b>
2540     * The diagnosis.
2541     * </p> 
2542         */
2543        public Diagnosis setDiagnosis(CodingDt theValue) {
2544                myDiagnosis = theValue;
2545                return this;
2546        }
2547        
2548        
2549
2550  
2551
2552
2553        }
2554
2555
2556        /**
2557         * Block class for child element: <b>Claim.coverage</b> ()
2558         *
2559     * <p>
2560     * <b>Definition:</b>
2561     * Financial instrument by which payment information for health care
2562     * </p> 
2563         */
2564        @Block()        
2565        public static class Coverage 
2566            extends  BaseIdentifiableElement        implements IResourceBlock {
2567        
2568        @Child(name="sequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
2569        @Description(
2570                shortDefinition="",
2571                formalDefinition="A service line item."
2572        )
2573        private PositiveIntDt mySequence;
2574        
2575        @Child(name="focal", type=BooleanDt.class, order=1, min=1, max=1, summary=false, modifier=false)        
2576        @Description(
2577                shortDefinition="",
2578                formalDefinition="The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated."
2579        )
2580        private BooleanDt myFocal;
2581        
2582        @Child(name="coverage", order=2, min=1, max=1, summary=false, modifier=false, type={
2583                ca.uhn.fhir.model.dstu2.resource.Coverage.class })
2584        @Description(
2585                shortDefinition="",
2586                formalDefinition="Reference to the program or plan identification, underwriter or payor."
2587        )
2588        private ResourceReferenceDt myCoverage;
2589        
2590        @Child(name="businessArrangement", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
2591        @Description(
2592                shortDefinition="",
2593                formalDefinition="The contract number of a business agreement which describes the terms and conditions."
2594        )
2595        private StringDt myBusinessArrangement;
2596        
2597        @Child(name="relationship", type=CodingDt.class, order=4, min=1, max=1, summary=false, modifier=false)  
2598        @Description(
2599                shortDefinition="",
2600                formalDefinition="The relationship of the patient to the subscriber"
2601        )
2602        private CodingDt myRelationship;
2603        
2604        @Child(name="preAuthRef", type=StringDt.class, order=5, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
2605        @Description(
2606                shortDefinition="",
2607                formalDefinition="A list of references from the Insurer to which these services pertain."
2608        )
2609        private java.util.List<StringDt> myPreAuthRef;
2610        
2611        @Child(name="claimResponse", order=6, min=0, max=1, summary=false, modifier=false, type={
2612                ca.uhn.fhir.model.dstu2.resource.ClaimResponse.class    })
2613        @Description(
2614                shortDefinition="",
2615                formalDefinition="The Coverages adjudication details."
2616        )
2617        private ResourceReferenceDt myClaimResponse;
2618        
2619        @Child(name="originalRuleset", type=CodingDt.class, order=7, min=0, max=1, summary=false, modifier=false)       
2620        @Description(
2621                shortDefinition="",
2622                formalDefinition="The style (standard) and version of the original material which was converted into this resource."
2623        )
2624        private CodingDt myOriginalRuleset;
2625        
2626
2627        @Override
2628        public boolean isEmpty() {
2629                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySequence,  myFocal,  myCoverage,  myBusinessArrangement,  myRelationship,  myPreAuthRef,  myClaimResponse,  myOriginalRuleset);
2630        }
2631        
2632        @Override
2633        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
2634                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySequence, myFocal, myCoverage, myBusinessArrangement, myRelationship, myPreAuthRef, myClaimResponse, myOriginalRuleset);
2635        }
2636
2637        /**
2638         * Gets the value(s) for <b>sequence</b> ().
2639         * creating it if it does
2640         * not exist. Will not return <code>null</code>.
2641         *
2642     * <p>
2643     * <b>Definition:</b>
2644     * A service line item.
2645     * </p> 
2646         */
2647        public PositiveIntDt getSequenceElement() {  
2648                if (mySequence == null) {
2649                        mySequence = new PositiveIntDt();
2650                }
2651                return mySequence;
2652        }
2653
2654        
2655        /**
2656         * Gets the value(s) for <b>sequence</b> ().
2657         * creating it if it does
2658         * not exist. Will not return <code>null</code>.
2659         *
2660     * <p>
2661     * <b>Definition:</b>
2662     * A service line item.
2663     * </p> 
2664         */
2665        public Integer getSequence() {  
2666                return getSequenceElement().getValue();
2667        }
2668
2669        /**
2670         * Sets the value(s) for <b>sequence</b> ()
2671         *
2672     * <p>
2673     * <b>Definition:</b>
2674     * A service line item.
2675     * </p> 
2676         */
2677        public Coverage setSequence(PositiveIntDt theValue) {
2678                mySequence = theValue;
2679                return this;
2680        }
2681        
2682        
2683
2684        /**
2685         * Sets the value for <b>sequence</b> ()
2686         *
2687     * <p>
2688     * <b>Definition:</b>
2689     * A service line item.
2690     * </p> 
2691         */
2692        public Coverage setSequence( int theInteger) {
2693                mySequence = new PositiveIntDt(theInteger); 
2694                return this; 
2695        }
2696
2697 
2698        /**
2699         * Gets the value(s) for <b>focal</b> ().
2700         * creating it if it does
2701         * not exist. Will not return <code>null</code>.
2702         *
2703     * <p>
2704     * <b>Definition:</b>
2705     * The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.
2706     * </p> 
2707         */
2708        public BooleanDt getFocalElement() {  
2709                if (myFocal == null) {
2710                        myFocal = new BooleanDt();
2711                }
2712                return myFocal;
2713        }
2714
2715        
2716        /**
2717         * Gets the value(s) for <b>focal</b> ().
2718         * creating it if it does
2719         * not exist. Will not return <code>null</code>.
2720         *
2721     * <p>
2722     * <b>Definition:</b>
2723     * The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.
2724     * </p> 
2725         */
2726        public Boolean getFocal() {  
2727                return getFocalElement().getValue();
2728        }
2729
2730        /**
2731         * Sets the value(s) for <b>focal</b> ()
2732         *
2733     * <p>
2734     * <b>Definition:</b>
2735     * The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.
2736     * </p> 
2737         */
2738        public Coverage setFocal(BooleanDt theValue) {
2739                myFocal = theValue;
2740                return this;
2741        }
2742        
2743        
2744
2745        /**
2746         * Sets the value for <b>focal</b> ()
2747         *
2748     * <p>
2749     * <b>Definition:</b>
2750     * The instance number of the Coverage which is the focus for adjudication. The Coverage against which the claim is to be adjudicated.
2751     * </p> 
2752         */
2753        public Coverage setFocal( boolean theBoolean) {
2754                myFocal = new BooleanDt(theBoolean); 
2755                return this; 
2756        }
2757
2758 
2759        /**
2760         * Gets the value(s) for <b>coverage</b> ().
2761         * creating it if it does
2762         * not exist. Will not return <code>null</code>.
2763         *
2764     * <p>
2765     * <b>Definition:</b>
2766     * Reference to the program or plan identification, underwriter or payor.
2767     * </p> 
2768         */
2769        public ResourceReferenceDt getCoverage() {  
2770                if (myCoverage == null) {
2771                        myCoverage = new ResourceReferenceDt();
2772                }
2773                return myCoverage;
2774        }
2775
2776        /**
2777         * Sets the value(s) for <b>coverage</b> ()
2778         *
2779     * <p>
2780     * <b>Definition:</b>
2781     * Reference to the program or plan identification, underwriter or payor.
2782     * </p> 
2783         */
2784        public Coverage setCoverage(ResourceReferenceDt theValue) {
2785                myCoverage = theValue;
2786                return this;
2787        }
2788        
2789        
2790
2791  
2792        /**
2793         * Gets the value(s) for <b>businessArrangement</b> ().
2794         * creating it if it does
2795         * not exist. Will not return <code>null</code>.
2796         *
2797     * <p>
2798     * <b>Definition:</b>
2799     * The contract number of a business agreement which describes the terms and conditions.
2800     * </p> 
2801         */
2802        public StringDt getBusinessArrangementElement() {  
2803                if (myBusinessArrangement == null) {
2804                        myBusinessArrangement = new StringDt();
2805                }
2806                return myBusinessArrangement;
2807        }
2808
2809        
2810        /**
2811         * Gets the value(s) for <b>businessArrangement</b> ().
2812         * creating it if it does
2813         * not exist. Will not return <code>null</code>.
2814         *
2815     * <p>
2816     * <b>Definition:</b>
2817     * The contract number of a business agreement which describes the terms and conditions.
2818     * </p> 
2819         */
2820        public String getBusinessArrangement() {  
2821                return getBusinessArrangementElement().getValue();
2822        }
2823
2824        /**
2825         * Sets the value(s) for <b>businessArrangement</b> ()
2826         *
2827     * <p>
2828     * <b>Definition:</b>
2829     * The contract number of a business agreement which describes the terms and conditions.
2830     * </p> 
2831         */
2832        public Coverage setBusinessArrangement(StringDt theValue) {
2833                myBusinessArrangement = theValue;
2834                return this;
2835        }
2836        
2837        
2838
2839        /**
2840         * Sets the value for <b>businessArrangement</b> ()
2841         *
2842     * <p>
2843     * <b>Definition:</b>
2844     * The contract number of a business agreement which describes the terms and conditions.
2845     * </p> 
2846         */
2847        public Coverage setBusinessArrangement( String theString) {
2848                myBusinessArrangement = new StringDt(theString); 
2849                return this; 
2850        }
2851
2852 
2853        /**
2854         * Gets the value(s) for <b>relationship</b> ().
2855         * creating it if it does
2856         * not exist. Will not return <code>null</code>.
2857         *
2858     * <p>
2859     * <b>Definition:</b>
2860     * The relationship of the patient to the subscriber
2861     * </p> 
2862         */
2863        public CodingDt getRelationship() {  
2864                if (myRelationship == null) {
2865                        myRelationship = new CodingDt();
2866                }
2867                return myRelationship;
2868        }
2869
2870        /**
2871         * Sets the value(s) for <b>relationship</b> ()
2872         *
2873     * <p>
2874     * <b>Definition:</b>
2875     * The relationship of the patient to the subscriber
2876     * </p> 
2877         */
2878        public Coverage setRelationship(CodingDt theValue) {
2879                myRelationship = theValue;
2880                return this;
2881        }
2882        
2883        
2884
2885  
2886        /**
2887         * Gets the value(s) for <b>preAuthRef</b> ().
2888         * creating it if it does
2889         * not exist. Will not return <code>null</code>.
2890         *
2891     * <p>
2892     * <b>Definition:</b>
2893     * A list of references from the Insurer to which these services pertain.
2894     * </p> 
2895         */
2896        public java.util.List<StringDt> getPreAuthRef() {  
2897                if (myPreAuthRef == null) {
2898                        myPreAuthRef = new java.util.ArrayList<StringDt>();
2899                }
2900                return myPreAuthRef;
2901        }
2902
2903        /**
2904         * Sets the value(s) for <b>preAuthRef</b> ()
2905         *
2906     * <p>
2907     * <b>Definition:</b>
2908     * A list of references from the Insurer to which these services pertain.
2909     * </p> 
2910         */
2911        public Coverage setPreAuthRef(java.util.List<StringDt> theValue) {
2912                myPreAuthRef = theValue;
2913                return this;
2914        }
2915        
2916        
2917
2918        /**
2919         * Adds and returns a new value for <b>preAuthRef</b> ()
2920         *
2921     * <p>
2922     * <b>Definition:</b>
2923     * A list of references from the Insurer to which these services pertain.
2924     * </p> 
2925         */
2926        public StringDt addPreAuthRef() {
2927                StringDt newType = new StringDt();
2928                getPreAuthRef().add(newType);
2929                return newType; 
2930        }
2931
2932        /**
2933         * Adds a given new value for <b>preAuthRef</b> ()
2934         *
2935         * <p>
2936         * <b>Definition:</b>
2937         * A list of references from the Insurer to which these services pertain.
2938         * </p>
2939         * @param theValue The preAuthRef to add (must not be <code>null</code>)
2940         */
2941        public Coverage addPreAuthRef(StringDt theValue) {
2942                if (theValue == null) {
2943                        throw new NullPointerException("theValue must not be null");
2944                }
2945                getPreAuthRef().add(theValue);
2946                return this;
2947        }
2948
2949        /**
2950         * Gets the first repetition for <b>preAuthRef</b> (),
2951         * creating it if it does not already exist.
2952         *
2953     * <p>
2954     * <b>Definition:</b>
2955     * A list of references from the Insurer to which these services pertain.
2956     * </p> 
2957         */
2958        public StringDt getPreAuthRefFirstRep() {
2959                if (getPreAuthRef().isEmpty()) {
2960                        return addPreAuthRef();
2961                }
2962                return getPreAuthRef().get(0); 
2963        }
2964        /**
2965         * Adds a new value for <b>preAuthRef</b> ()
2966         *
2967     * <p>
2968     * <b>Definition:</b>
2969     * A list of references from the Insurer to which these services pertain.
2970     * </p> 
2971     *
2972     * @return Returns a reference to this object, to allow for simple chaining.
2973         */
2974        public Coverage addPreAuthRef( String theString) {
2975                if (myPreAuthRef == null) {
2976                        myPreAuthRef = new java.util.ArrayList<StringDt>();
2977                }
2978                myPreAuthRef.add(new StringDt(theString));
2979                return this; 
2980        }
2981
2982 
2983        /**
2984         * Gets the value(s) for <b>claimResponse</b> ().
2985         * creating it if it does
2986         * not exist. Will not return <code>null</code>.
2987         *
2988     * <p>
2989     * <b>Definition:</b>
2990     * The Coverages adjudication details.
2991     * </p> 
2992         */
2993        public ResourceReferenceDt getClaimResponse() {  
2994                if (myClaimResponse == null) {
2995                        myClaimResponse = new ResourceReferenceDt();
2996                }
2997                return myClaimResponse;
2998        }
2999
3000        /**
3001         * Sets the value(s) for <b>claimResponse</b> ()
3002         *
3003     * <p>
3004     * <b>Definition:</b>
3005     * The Coverages adjudication details.
3006     * </p> 
3007         */
3008        public Coverage setClaimResponse(ResourceReferenceDt theValue) {
3009                myClaimResponse = theValue;
3010                return this;
3011        }
3012        
3013        
3014
3015  
3016        /**
3017         * Gets the value(s) for <b>originalRuleset</b> ().
3018         * creating it if it does
3019         * not exist. Will not return <code>null</code>.
3020         *
3021     * <p>
3022     * <b>Definition:</b>
3023     * The style (standard) and version of the original material which was converted into this resource.
3024     * </p> 
3025         */
3026        public CodingDt getOriginalRuleset() {  
3027                if (myOriginalRuleset == null) {
3028                        myOriginalRuleset = new CodingDt();
3029                }
3030                return myOriginalRuleset;
3031        }
3032
3033        /**
3034         * Sets the value(s) for <b>originalRuleset</b> ()
3035         *
3036     * <p>
3037     * <b>Definition:</b>
3038     * The style (standard) and version of the original material which was converted into this resource.
3039     * </p> 
3040         */
3041        public Coverage setOriginalRuleset(CodingDt theValue) {
3042                myOriginalRuleset = theValue;
3043                return this;
3044        }
3045        
3046        
3047
3048  
3049
3050
3051        }
3052
3053
3054        /**
3055         * Block class for child element: <b>Claim.item</b> ()
3056         *
3057     * <p>
3058     * <b>Definition:</b>
3059     * First tier of goods and services
3060     * </p> 
3061         */
3062        @Block()        
3063        public static class Item 
3064            extends  BaseIdentifiableElement        implements IResourceBlock {
3065        
3066        @Child(name="sequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
3067        @Description(
3068                shortDefinition="",
3069                formalDefinition="A service line number."
3070        )
3071        private PositiveIntDt mySequence;
3072        
3073        @Child(name="type", type=CodingDt.class, order=1, min=1, max=1, summary=false, modifier=false)  
3074        @Description(
3075                shortDefinition="",
3076                formalDefinition="The type of product or service."
3077        )
3078        private CodingDt myType;
3079        
3080        @Child(name="provider", order=2, min=0, max=1, summary=false, modifier=false, type={
3081                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
3082        @Description(
3083                shortDefinition="",
3084                formalDefinition="The practitioner who is responsible for the services rendered to the patient"
3085        )
3086        private ResourceReferenceDt myProvider;
3087        
3088        @Child(name="diagnosisLinkId", type=PositiveIntDt.class, order=3, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
3089        @Description(
3090                shortDefinition="",
3091                formalDefinition="Diagnosis applicable for this service or product line."
3092        )
3093        private java.util.List<PositiveIntDt> myDiagnosisLinkId;
3094        
3095        @Child(name="service", type=CodingDt.class, order=4, min=1, max=1, summary=false, modifier=false)       
3096        @Description(
3097                shortDefinition="",
3098                formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied."
3099        )
3100        private CodingDt myService;
3101        
3102        @Child(name="serviceDate", type=DateDt.class, order=5, min=0, max=1, summary=false, modifier=false)     
3103        @Description(
3104                shortDefinition="",
3105                formalDefinition="The date when the enclosed suite of services were performed or completed"
3106        )
3107        private DateDt myServiceDate;
3108        
3109        @Child(name="quantity", type=SimpleQuantityDt.class, order=6, min=0, max=1, summary=false, modifier=false)      
3110        @Description(
3111                shortDefinition="",
3112                formalDefinition="The number of repetitions of a service or product."
3113        )
3114        private SimpleQuantityDt myQuantity;
3115        
3116        @Child(name="unitPrice", type=MoneyDt.class, order=7, min=0, max=1, summary=false, modifier=false)      
3117        @Description(
3118                shortDefinition="",
3119                formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group."
3120        )
3121        private MoneyDt myUnitPrice;
3122        
3123        @Child(name="factor", type=DecimalDt.class, order=8, min=0, max=1, summary=false, modifier=false)       
3124        @Description(
3125                shortDefinition="",
3126                formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."
3127        )
3128        private DecimalDt myFactor;
3129        
3130        @Child(name="points", type=DecimalDt.class, order=9, min=0, max=1, summary=false, modifier=false)       
3131        @Description(
3132                shortDefinition="",
3133                formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point."
3134        )
3135        private DecimalDt myPoints;
3136        
3137        @Child(name="net", type=MoneyDt.class, order=10, min=0, max=1, summary=false, modifier=false)   
3138        @Description(
3139                shortDefinition="",
3140                formalDefinition="The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied."
3141        )
3142        private MoneyDt myNet;
3143        
3144        @Child(name="udi", type=CodingDt.class, order=11, min=0, max=1, summary=false, modifier=false)  
3145        @Description(
3146                shortDefinition="",
3147                formalDefinition="List of Unique Device Identifiers associated with this line item."
3148        )
3149        private CodingDt myUdi;
3150        
3151        @Child(name="bodySite", type=CodingDt.class, order=12, min=0, max=1, summary=false, modifier=false)     
3152        @Description(
3153                shortDefinition="",
3154                formalDefinition="Physical service site on the patient (limb, tooth, etc.)."
3155        )
3156        private CodingDt myBodySite;
3157        
3158        @Child(name="subSite", type=CodingDt.class, order=13, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
3159        @Description(
3160                shortDefinition="",
3161                formalDefinition="A region or surface of the site, e.g. limb region or tooth surface(s)."
3162        )
3163        private java.util.List<CodingDt> mySubSite;
3164        
3165        @Child(name="modifier", type=CodingDt.class, order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)   
3166        @Description(
3167                shortDefinition="",
3168                formalDefinition="Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen."
3169        )
3170        private java.util.List<CodingDt> myModifier;
3171        
3172        @Child(name="detail", order=15, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
3173        @Description(
3174                shortDefinition="",
3175                formalDefinition="Second tier of goods and services"
3176        )
3177        private java.util.List<ItemDetail> myDetail;
3178        
3179        @Child(name="prosthesis", order=16, min=0, max=1, summary=false, modifier=false)        
3180        @Description(
3181                shortDefinition="",
3182                formalDefinition="The materials and placement date of prior fixed prosthesis."
3183        )
3184        private ItemProsthesis myProsthesis;
3185        
3186
3187        @Override
3188        public boolean isEmpty() {
3189                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySequence,  myType,  myProvider,  myDiagnosisLinkId,  myService,  myServiceDate,  myQuantity,  myUnitPrice,  myFactor,  myPoints,  myNet,  myUdi,  myBodySite,  mySubSite,  myModifier,  myDetail,  myProsthesis);
3190        }
3191        
3192        @Override
3193        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
3194                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySequence, myType, myProvider, myDiagnosisLinkId, myService, myServiceDate, myQuantity, myUnitPrice, myFactor, myPoints, myNet, myUdi, myBodySite, mySubSite, myModifier, myDetail, myProsthesis);
3195        }
3196
3197        /**
3198         * Gets the value(s) for <b>sequence</b> ().
3199         * creating it if it does
3200         * not exist. Will not return <code>null</code>.
3201         *
3202     * <p>
3203     * <b>Definition:</b>
3204     * A service line number.
3205     * </p> 
3206         */
3207        public PositiveIntDt getSequenceElement() {  
3208                if (mySequence == null) {
3209                        mySequence = new PositiveIntDt();
3210                }
3211                return mySequence;
3212        }
3213
3214        
3215        /**
3216         * Gets the value(s) for <b>sequence</b> ().
3217         * creating it if it does
3218         * not exist. Will not return <code>null</code>.
3219         *
3220     * <p>
3221     * <b>Definition:</b>
3222     * A service line number.
3223     * </p> 
3224         */
3225        public Integer getSequence() {  
3226                return getSequenceElement().getValue();
3227        }
3228
3229        /**
3230         * Sets the value(s) for <b>sequence</b> ()
3231         *
3232     * <p>
3233     * <b>Definition:</b>
3234     * A service line number.
3235     * </p> 
3236         */
3237        public Item setSequence(PositiveIntDt theValue) {
3238                mySequence = theValue;
3239                return this;
3240        }
3241        
3242        
3243
3244        /**
3245         * Sets the value for <b>sequence</b> ()
3246         *
3247     * <p>
3248     * <b>Definition:</b>
3249     * A service line number.
3250     * </p> 
3251         */
3252        public Item setSequence( int theInteger) {
3253                mySequence = new PositiveIntDt(theInteger); 
3254                return this; 
3255        }
3256
3257 
3258        /**
3259         * Gets the value(s) for <b>type</b> ().
3260         * creating it if it does
3261         * not exist. Will not return <code>null</code>.
3262         *
3263     * <p>
3264     * <b>Definition:</b>
3265     * The type of product or service.
3266     * </p> 
3267         */
3268        public CodingDt getType() {  
3269                if (myType == null) {
3270                        myType = new CodingDt();
3271                }
3272                return myType;
3273        }
3274
3275        /**
3276         * Sets the value(s) for <b>type</b> ()
3277         *
3278     * <p>
3279     * <b>Definition:</b>
3280     * The type of product or service.
3281     * </p> 
3282         */
3283        public Item setType(CodingDt theValue) {
3284                myType = theValue;
3285                return this;
3286        }
3287        
3288        
3289
3290  
3291        /**
3292         * Gets the value(s) for <b>provider</b> ().
3293         * creating it if it does
3294         * not exist. Will not return <code>null</code>.
3295         *
3296     * <p>
3297     * <b>Definition:</b>
3298     * The practitioner who is responsible for the services rendered to the patient
3299     * </p> 
3300         */
3301        public ResourceReferenceDt getProvider() {  
3302                if (myProvider == null) {
3303                        myProvider = new ResourceReferenceDt();
3304                }
3305                return myProvider;
3306        }
3307
3308        /**
3309         * Sets the value(s) for <b>provider</b> ()
3310         *
3311     * <p>
3312     * <b>Definition:</b>
3313     * The practitioner who is responsible for the services rendered to the patient
3314     * </p> 
3315         */
3316        public Item setProvider(ResourceReferenceDt theValue) {
3317                myProvider = theValue;
3318                return this;
3319        }
3320        
3321        
3322
3323  
3324        /**
3325         * Gets the value(s) for <b>diagnosisLinkId</b> ().
3326         * creating it if it does
3327         * not exist. Will not return <code>null</code>.
3328         *
3329     * <p>
3330     * <b>Definition:</b>
3331     * Diagnosis applicable for this service or product line.
3332     * </p> 
3333         */
3334        public java.util.List<PositiveIntDt> getDiagnosisLinkId() {  
3335                if (myDiagnosisLinkId == null) {
3336                        myDiagnosisLinkId = new java.util.ArrayList<PositiveIntDt>();
3337                }
3338                return myDiagnosisLinkId;
3339        }
3340
3341        /**
3342         * Sets the value(s) for <b>diagnosisLinkId</b> ()
3343         *
3344     * <p>
3345     * <b>Definition:</b>
3346     * Diagnosis applicable for this service or product line.
3347     * </p> 
3348         */
3349        public Item setDiagnosisLinkId(java.util.List<PositiveIntDt> theValue) {
3350                myDiagnosisLinkId = theValue;
3351                return this;
3352        }
3353        
3354        
3355
3356        /**
3357         * Adds and returns a new value for <b>diagnosisLinkId</b> ()
3358         *
3359     * <p>
3360     * <b>Definition:</b>
3361     * Diagnosis applicable for this service or product line.
3362     * </p> 
3363         */
3364        public PositiveIntDt addDiagnosisLinkId() {
3365                PositiveIntDt newType = new PositiveIntDt();
3366                getDiagnosisLinkId().add(newType);
3367                return newType; 
3368        }
3369
3370        /**
3371         * Adds a given new value for <b>diagnosisLinkId</b> ()
3372         *
3373         * <p>
3374         * <b>Definition:</b>
3375         * Diagnosis applicable for this service or product line.
3376         * </p>
3377         * @param theValue The diagnosisLinkId to add (must not be <code>null</code>)
3378         */
3379        public Item addDiagnosisLinkId(PositiveIntDt theValue) {
3380                if (theValue == null) {
3381                        throw new NullPointerException("theValue must not be null");
3382                }
3383                getDiagnosisLinkId().add(theValue);
3384                return this;
3385        }
3386
3387        /**
3388         * Gets the first repetition for <b>diagnosisLinkId</b> (),
3389         * creating it if it does not already exist.
3390         *
3391     * <p>
3392     * <b>Definition:</b>
3393     * Diagnosis applicable for this service or product line.
3394     * </p> 
3395         */
3396        public PositiveIntDt getDiagnosisLinkIdFirstRep() {
3397                if (getDiagnosisLinkId().isEmpty()) {
3398                        return addDiagnosisLinkId();
3399                }
3400                return getDiagnosisLinkId().get(0); 
3401        }
3402        /**
3403         * Adds a new value for <b>diagnosisLinkId</b> ()
3404         *
3405     * <p>
3406     * <b>Definition:</b>
3407     * Diagnosis applicable for this service or product line.
3408     * </p> 
3409     *
3410     * @return Returns a reference to this object, to allow for simple chaining.
3411         */
3412        public Item addDiagnosisLinkId( int theInteger) {
3413                if (myDiagnosisLinkId == null) {
3414                        myDiagnosisLinkId = new java.util.ArrayList<PositiveIntDt>();
3415                }
3416                myDiagnosisLinkId.add(new PositiveIntDt(theInteger));
3417                return this; 
3418        }
3419
3420 
3421        /**
3422         * Gets the value(s) for <b>service</b> ().
3423         * creating it if it does
3424         * not exist. Will not return <code>null</code>.
3425         *
3426     * <p>
3427     * <b>Definition:</b>
3428     * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.
3429     * </p> 
3430         */
3431        public CodingDt getService() {  
3432                if (myService == null) {
3433                        myService = new CodingDt();
3434                }
3435                return myService;
3436        }
3437
3438        /**
3439         * Sets the value(s) for <b>service</b> ()
3440         *
3441     * <p>
3442     * <b>Definition:</b>
3443     * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.
3444     * </p> 
3445         */
3446        public Item setService(CodingDt theValue) {
3447                myService = theValue;
3448                return this;
3449        }
3450        
3451        
3452
3453  
3454        /**
3455         * Gets the value(s) for <b>serviceDate</b> ().
3456         * creating it if it does
3457         * not exist. Will not return <code>null</code>.
3458         *
3459     * <p>
3460     * <b>Definition:</b>
3461     * The date when the enclosed suite of services were performed or completed
3462     * </p> 
3463         */
3464        public DateDt getServiceDateElement() {  
3465                if (myServiceDate == null) {
3466                        myServiceDate = new DateDt();
3467                }
3468                return myServiceDate;
3469        }
3470
3471        
3472        /**
3473         * Gets the value(s) for <b>serviceDate</b> ().
3474         * creating it if it does
3475         * not exist. Will not return <code>null</code>.
3476         *
3477     * <p>
3478     * <b>Definition:</b>
3479     * The date when the enclosed suite of services were performed or completed
3480     * </p> 
3481         */
3482        public Date getServiceDate() {  
3483                return getServiceDateElement().getValue();
3484        }
3485
3486        /**
3487         * Sets the value(s) for <b>serviceDate</b> ()
3488         *
3489     * <p>
3490     * <b>Definition:</b>
3491     * The date when the enclosed suite of services were performed or completed
3492     * </p> 
3493         */
3494        public Item setServiceDate(DateDt theValue) {
3495                myServiceDate = theValue;
3496                return this;
3497        }
3498        
3499        
3500
3501        /**
3502         * Sets the value for <b>serviceDate</b> ()
3503         *
3504     * <p>
3505     * <b>Definition:</b>
3506     * The date when the enclosed suite of services were performed or completed
3507     * </p> 
3508         */
3509        public Item setServiceDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
3510                myServiceDate = new DateDt(theDate, thePrecision); 
3511                return this; 
3512        }
3513
3514        /**
3515         * Sets the value for <b>serviceDate</b> ()
3516         *
3517     * <p>
3518     * <b>Definition:</b>
3519     * The date when the enclosed suite of services were performed or completed
3520     * </p> 
3521         */
3522        public Item setServiceDateWithDayPrecision( Date theDate) {
3523                myServiceDate = new DateDt(theDate); 
3524                return this; 
3525        }
3526
3527 
3528        /**
3529         * Gets the value(s) for <b>quantity</b> ().
3530         * creating it if it does
3531         * not exist. Will not return <code>null</code>.
3532         *
3533     * <p>
3534     * <b>Definition:</b>
3535     * The number of repetitions of a service or product.
3536     * </p> 
3537         */
3538        public SimpleQuantityDt getQuantity() {  
3539                if (myQuantity == null) {
3540                        myQuantity = new SimpleQuantityDt();
3541                }
3542                return myQuantity;
3543        }
3544
3545        /**
3546         * Sets the value(s) for <b>quantity</b> ()
3547         *
3548     * <p>
3549     * <b>Definition:</b>
3550     * The number of repetitions of a service or product.
3551     * </p> 
3552         */
3553        public Item setQuantity(SimpleQuantityDt theValue) {
3554                myQuantity = theValue;
3555                return this;
3556        }
3557        
3558        
3559
3560  
3561        /**
3562         * Gets the value(s) for <b>unitPrice</b> ().
3563         * creating it if it does
3564         * not exist. Will not return <code>null</code>.
3565         *
3566     * <p>
3567     * <b>Definition:</b>
3568     * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
3569     * </p> 
3570         */
3571        public MoneyDt getUnitPrice() {  
3572                if (myUnitPrice == null) {
3573                        myUnitPrice = new MoneyDt();
3574                }
3575                return myUnitPrice;
3576        }
3577
3578        /**
3579         * Sets the value(s) for <b>unitPrice</b> ()
3580         *
3581     * <p>
3582     * <b>Definition:</b>
3583     * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
3584     * </p> 
3585         */
3586        public Item setUnitPrice(MoneyDt theValue) {
3587                myUnitPrice = theValue;
3588                return this;
3589        }
3590        
3591        
3592
3593  
3594        /**
3595         * Gets the value(s) for <b>factor</b> ().
3596         * creating it if it does
3597         * not exist. Will not return <code>null</code>.
3598         *
3599     * <p>
3600     * <b>Definition:</b>
3601     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3602     * </p> 
3603         */
3604        public DecimalDt getFactorElement() {  
3605                if (myFactor == null) {
3606                        myFactor = new DecimalDt();
3607                }
3608                return myFactor;
3609        }
3610
3611        
3612        /**
3613         * Gets the value(s) for <b>factor</b> ().
3614         * creating it if it does
3615         * not exist. Will not return <code>null</code>.
3616         *
3617     * <p>
3618     * <b>Definition:</b>
3619     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3620     * </p> 
3621         */
3622        public BigDecimal getFactor() {  
3623                return getFactorElement().getValue();
3624        }
3625
3626        /**
3627         * Sets the value(s) for <b>factor</b> ()
3628         *
3629     * <p>
3630     * <b>Definition:</b>
3631     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3632     * </p> 
3633         */
3634        public Item setFactor(DecimalDt theValue) {
3635                myFactor = theValue;
3636                return this;
3637        }
3638        
3639        
3640
3641        /**
3642         * Sets the value for <b>factor</b> ()
3643         *
3644     * <p>
3645     * <b>Definition:</b>
3646     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3647     * </p> 
3648         */
3649        public Item setFactor( long theValue) {
3650                myFactor = new DecimalDt(theValue); 
3651                return this; 
3652        }
3653
3654        /**
3655         * Sets the value for <b>factor</b> ()
3656         *
3657     * <p>
3658     * <b>Definition:</b>
3659     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3660     * </p> 
3661         */
3662        public Item setFactor( double theValue) {
3663                myFactor = new DecimalDt(theValue); 
3664                return this; 
3665        }
3666
3667        /**
3668         * Sets the value for <b>factor</b> ()
3669         *
3670     * <p>
3671     * <b>Definition:</b>
3672     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
3673     * </p> 
3674         */
3675        public Item setFactor( java.math.BigDecimal theValue) {
3676                myFactor = new DecimalDt(theValue); 
3677                return this; 
3678        }
3679
3680 
3681        /**
3682         * Gets the value(s) for <b>points</b> ().
3683         * creating it if it does
3684         * not exist. Will not return <code>null</code>.
3685         *
3686     * <p>
3687     * <b>Definition:</b>
3688     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3689     * </p> 
3690         */
3691        public DecimalDt getPointsElement() {  
3692                if (myPoints == null) {
3693                        myPoints = new DecimalDt();
3694                }
3695                return myPoints;
3696        }
3697
3698        
3699        /**
3700         * Gets the value(s) for <b>points</b> ().
3701         * creating it if it does
3702         * not exist. Will not return <code>null</code>.
3703         *
3704     * <p>
3705     * <b>Definition:</b>
3706     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3707     * </p> 
3708         */
3709        public BigDecimal getPoints() {  
3710                return getPointsElement().getValue();
3711        }
3712
3713        /**
3714         * Sets the value(s) for <b>points</b> ()
3715         *
3716     * <p>
3717     * <b>Definition:</b>
3718     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3719     * </p> 
3720         */
3721        public Item setPoints(DecimalDt theValue) {
3722                myPoints = theValue;
3723                return this;
3724        }
3725        
3726        
3727
3728        /**
3729         * Sets the value for <b>points</b> ()
3730         *
3731     * <p>
3732     * <b>Definition:</b>
3733     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3734     * </p> 
3735         */
3736        public Item setPoints( long theValue) {
3737                myPoints = new DecimalDt(theValue); 
3738                return this; 
3739        }
3740
3741        /**
3742         * Sets the value for <b>points</b> ()
3743         *
3744     * <p>
3745     * <b>Definition:</b>
3746     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3747     * </p> 
3748         */
3749        public Item setPoints( double theValue) {
3750                myPoints = new DecimalDt(theValue); 
3751                return this; 
3752        }
3753
3754        /**
3755         * Sets the value for <b>points</b> ()
3756         *
3757     * <p>
3758     * <b>Definition:</b>
3759     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
3760     * </p> 
3761         */
3762        public Item setPoints( java.math.BigDecimal theValue) {
3763                myPoints = new DecimalDt(theValue); 
3764                return this; 
3765        }
3766
3767 
3768        /**
3769         * Gets the value(s) for <b>net</b> ().
3770         * creating it if it does
3771         * not exist. Will not return <code>null</code>.
3772         *
3773     * <p>
3774     * <b>Definition:</b>
3775     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
3776     * </p> 
3777         */
3778        public MoneyDt getNet() {  
3779                if (myNet == null) {
3780                        myNet = new MoneyDt();
3781                }
3782                return myNet;
3783        }
3784
3785        /**
3786         * Sets the value(s) for <b>net</b> ()
3787         *
3788     * <p>
3789     * <b>Definition:</b>
3790     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
3791     * </p> 
3792         */
3793        public Item setNet(MoneyDt theValue) {
3794                myNet = theValue;
3795                return this;
3796        }
3797        
3798        
3799
3800  
3801        /**
3802         * Gets the value(s) for <b>udi</b> ().
3803         * creating it if it does
3804         * not exist. Will not return <code>null</code>.
3805         *
3806     * <p>
3807     * <b>Definition:</b>
3808     * List of Unique Device Identifiers associated with this line item.
3809     * </p> 
3810         */
3811        public CodingDt getUdi() {  
3812                if (myUdi == null) {
3813                        myUdi = new CodingDt();
3814                }
3815                return myUdi;
3816        }
3817
3818        /**
3819         * Sets the value(s) for <b>udi</b> ()
3820         *
3821     * <p>
3822     * <b>Definition:</b>
3823     * List of Unique Device Identifiers associated with this line item.
3824     * </p> 
3825         */
3826        public Item setUdi(CodingDt theValue) {
3827                myUdi = theValue;
3828                return this;
3829        }
3830        
3831        
3832
3833  
3834        /**
3835         * Gets the value(s) for <b>bodySite</b> ().
3836         * creating it if it does
3837         * not exist. Will not return <code>null</code>.
3838         *
3839     * <p>
3840     * <b>Definition:</b>
3841     * Physical service site on the patient (limb, tooth, etc.).
3842     * </p> 
3843         */
3844        public CodingDt getBodySite() {  
3845                if (myBodySite == null) {
3846                        myBodySite = new CodingDt();
3847                }
3848                return myBodySite;
3849        }
3850
3851        /**
3852         * Sets the value(s) for <b>bodySite</b> ()
3853         *
3854     * <p>
3855     * <b>Definition:</b>
3856     * Physical service site on the patient (limb, tooth, etc.).
3857     * </p> 
3858         */
3859        public Item setBodySite(CodingDt theValue) {
3860                myBodySite = theValue;
3861                return this;
3862        }
3863        
3864        
3865
3866  
3867        /**
3868         * Gets the value(s) for <b>subSite</b> ().
3869         * creating it if it does
3870         * not exist. Will not return <code>null</code>.
3871         *
3872     * <p>
3873     * <b>Definition:</b>
3874     * A region or surface of the site, e.g. limb region or tooth surface(s).
3875     * </p> 
3876         */
3877        public java.util.List<CodingDt> getSubSite() {  
3878                if (mySubSite == null) {
3879                        mySubSite = new java.util.ArrayList<CodingDt>();
3880                }
3881                return mySubSite;
3882        }
3883
3884        /**
3885         * Sets the value(s) for <b>subSite</b> ()
3886         *
3887     * <p>
3888     * <b>Definition:</b>
3889     * A region or surface of the site, e.g. limb region or tooth surface(s).
3890     * </p> 
3891         */
3892        public Item setSubSite(java.util.List<CodingDt> theValue) {
3893                mySubSite = theValue;
3894                return this;
3895        }
3896        
3897        
3898
3899        /**
3900         * Adds and returns a new value for <b>subSite</b> ()
3901         *
3902     * <p>
3903     * <b>Definition:</b>
3904     * A region or surface of the site, e.g. limb region or tooth surface(s).
3905     * </p> 
3906         */
3907        public CodingDt addSubSite() {
3908                CodingDt newType = new CodingDt();
3909                getSubSite().add(newType);
3910                return newType; 
3911        }
3912
3913        /**
3914         * Adds a given new value for <b>subSite</b> ()
3915         *
3916         * <p>
3917         * <b>Definition:</b>
3918         * A region or surface of the site, e.g. limb region or tooth surface(s).
3919         * </p>
3920         * @param theValue The subSite to add (must not be <code>null</code>)
3921         */
3922        public Item addSubSite(CodingDt theValue) {
3923                if (theValue == null) {
3924                        throw new NullPointerException("theValue must not be null");
3925                }
3926                getSubSite().add(theValue);
3927                return this;
3928        }
3929
3930        /**
3931         * Gets the first repetition for <b>subSite</b> (),
3932         * creating it if it does not already exist.
3933         *
3934     * <p>
3935     * <b>Definition:</b>
3936     * A region or surface of the site, e.g. limb region or tooth surface(s).
3937     * </p> 
3938         */
3939        public CodingDt getSubSiteFirstRep() {
3940                if (getSubSite().isEmpty()) {
3941                        return addSubSite();
3942                }
3943                return getSubSite().get(0); 
3944        }
3945  
3946        /**
3947         * Gets the value(s) for <b>modifier</b> ().
3948         * creating it if it does
3949         * not exist. Will not return <code>null</code>.
3950         *
3951     * <p>
3952     * <b>Definition:</b>
3953     * Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
3954     * </p> 
3955         */
3956        public java.util.List<CodingDt> getModifier() {  
3957                if (myModifier == null) {
3958                        myModifier = new java.util.ArrayList<CodingDt>();
3959                }
3960                return myModifier;
3961        }
3962
3963        /**
3964         * Sets the value(s) for <b>modifier</b> ()
3965         *
3966     * <p>
3967     * <b>Definition:</b>
3968     * Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
3969     * </p> 
3970         */
3971        public Item setModifier(java.util.List<CodingDt> theValue) {
3972                myModifier = theValue;
3973                return this;
3974        }
3975        
3976        
3977
3978        /**
3979         * Adds and returns a new value for <b>modifier</b> ()
3980         *
3981     * <p>
3982     * <b>Definition:</b>
3983     * Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
3984     * </p> 
3985         */
3986        public CodingDt addModifier() {
3987                CodingDt newType = new CodingDt();
3988                getModifier().add(newType);
3989                return newType; 
3990        }
3991
3992        /**
3993         * Adds a given new value for <b>modifier</b> ()
3994         *
3995         * <p>
3996         * <b>Definition:</b>
3997         * Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
3998         * </p>
3999         * @param theValue The modifier to add (must not be <code>null</code>)
4000         */
4001        public Item addModifier(CodingDt theValue) {
4002                if (theValue == null) {
4003                        throw new NullPointerException("theValue must not be null");
4004                }
4005                getModifier().add(theValue);
4006                return this;
4007        }
4008
4009        /**
4010         * Gets the first repetition for <b>modifier</b> (),
4011         * creating it if it does not already exist.
4012         *
4013     * <p>
4014     * <b>Definition:</b>
4015     * Item typification or modifiers codes, e.g. for Oral whether the treatment is cosmetic or associated with TMJ, or an appliance was lost or stolen.
4016     * </p> 
4017         */
4018        public CodingDt getModifierFirstRep() {
4019                if (getModifier().isEmpty()) {
4020                        return addModifier();
4021                }
4022                return getModifier().get(0); 
4023        }
4024  
4025        /**
4026         * Gets the value(s) for <b>detail</b> ().
4027         * creating it if it does
4028         * not exist. Will not return <code>null</code>.
4029         *
4030     * <p>
4031     * <b>Definition:</b>
4032     * Second tier of goods and services
4033     * </p> 
4034         */
4035        public java.util.List<ItemDetail> getDetail() {  
4036                if (myDetail == null) {
4037                        myDetail = new java.util.ArrayList<ItemDetail>();
4038                }
4039                return myDetail;
4040        }
4041
4042        /**
4043         * Sets the value(s) for <b>detail</b> ()
4044         *
4045     * <p>
4046     * <b>Definition:</b>
4047     * Second tier of goods and services
4048     * </p> 
4049         */
4050        public Item setDetail(java.util.List<ItemDetail> theValue) {
4051                myDetail = theValue;
4052                return this;
4053        }
4054        
4055        
4056
4057        /**
4058         * Adds and returns a new value for <b>detail</b> ()
4059         *
4060     * <p>
4061     * <b>Definition:</b>
4062     * Second tier of goods and services
4063     * </p> 
4064         */
4065        public ItemDetail addDetail() {
4066                ItemDetail newType = new ItemDetail();
4067                getDetail().add(newType);
4068                return newType; 
4069        }
4070
4071        /**
4072         * Adds a given new value for <b>detail</b> ()
4073         *
4074         * <p>
4075         * <b>Definition:</b>
4076         * Second tier of goods and services
4077         * </p>
4078         * @param theValue The detail to add (must not be <code>null</code>)
4079         */
4080        public Item addDetail(ItemDetail theValue) {
4081                if (theValue == null) {
4082                        throw new NullPointerException("theValue must not be null");
4083                }
4084                getDetail().add(theValue);
4085                return this;
4086        }
4087
4088        /**
4089         * Gets the first repetition for <b>detail</b> (),
4090         * creating it if it does not already exist.
4091         *
4092     * <p>
4093     * <b>Definition:</b>
4094     * Second tier of goods and services
4095     * </p> 
4096         */
4097        public ItemDetail getDetailFirstRep() {
4098                if (getDetail().isEmpty()) {
4099                        return addDetail();
4100                }
4101                return getDetail().get(0); 
4102        }
4103  
4104        /**
4105         * Gets the value(s) for <b>prosthesis</b> ().
4106         * creating it if it does
4107         * not exist. Will not return <code>null</code>.
4108         *
4109     * <p>
4110     * <b>Definition:</b>
4111     * The materials and placement date of prior fixed prosthesis.
4112     * </p> 
4113         */
4114        public ItemProsthesis getProsthesis() {  
4115                if (myProsthesis == null) {
4116                        myProsthesis = new ItemProsthesis();
4117                }
4118                return myProsthesis;
4119        }
4120
4121        /**
4122         * Sets the value(s) for <b>prosthesis</b> ()
4123         *
4124     * <p>
4125     * <b>Definition:</b>
4126     * The materials and placement date of prior fixed prosthesis.
4127     * </p> 
4128         */
4129        public Item setProsthesis(ItemProsthesis theValue) {
4130                myProsthesis = theValue;
4131                return this;
4132        }
4133        
4134        
4135
4136  
4137
4138
4139        }
4140
4141        /**
4142         * Block class for child element: <b>Claim.item.detail</b> ()
4143         *
4144     * <p>
4145     * <b>Definition:</b>
4146     * Second tier of goods and services
4147     * </p> 
4148         */
4149        @Block()        
4150        public static class ItemDetail 
4151            extends  BaseIdentifiableElement        implements IResourceBlock {
4152        
4153        @Child(name="sequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
4154        @Description(
4155                shortDefinition="",
4156                formalDefinition="A service line number."
4157        )
4158        private PositiveIntDt mySequence;
4159        
4160        @Child(name="type", type=CodingDt.class, order=1, min=1, max=1, summary=false, modifier=false)  
4161        @Description(
4162                shortDefinition="",
4163                formalDefinition="The type of product or service."
4164        )
4165        private CodingDt myType;
4166        
4167        @Child(name="service", type=CodingDt.class, order=2, min=1, max=1, summary=false, modifier=false)       
4168        @Description(
4169                shortDefinition="",
4170                formalDefinition="If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied."
4171        )
4172        private CodingDt myService;
4173        
4174        @Child(name="quantity", type=SimpleQuantityDt.class, order=3, min=0, max=1, summary=false, modifier=false)      
4175        @Description(
4176                shortDefinition="",
4177                formalDefinition="The number of repetitions of a service or product."
4178        )
4179        private SimpleQuantityDt myQuantity;
4180        
4181        @Child(name="unitPrice", type=MoneyDt.class, order=4, min=0, max=1, summary=false, modifier=false)      
4182        @Description(
4183                shortDefinition="",
4184                formalDefinition="If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group."
4185        )
4186        private MoneyDt myUnitPrice;
4187        
4188        @Child(name="factor", type=DecimalDt.class, order=5, min=0, max=1, summary=false, modifier=false)       
4189        @Description(
4190                shortDefinition="",
4191                formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."
4192        )
4193        private DecimalDt myFactor;
4194        
4195        @Child(name="points", type=DecimalDt.class, order=6, min=0, max=1, summary=false, modifier=false)       
4196        @Description(
4197                shortDefinition="",
4198                formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point."
4199        )
4200        private DecimalDt myPoints;
4201        
4202        @Child(name="net", type=MoneyDt.class, order=7, min=0, max=1, summary=false, modifier=false)    
4203        @Description(
4204                shortDefinition="",
4205                formalDefinition="The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied."
4206        )
4207        private MoneyDt myNet;
4208        
4209        @Child(name="udi", type=CodingDt.class, order=8, min=0, max=1, summary=false, modifier=false)   
4210        @Description(
4211                shortDefinition="",
4212                formalDefinition="List of Unique Device Identifiers associated with this line item."
4213        )
4214        private CodingDt myUdi;
4215        
4216        @Child(name="subDetail", order=9, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)        
4217        @Description(
4218                shortDefinition="",
4219                formalDefinition="Third tier of goods and services"
4220        )
4221        private java.util.List<ItemDetailSubDetail> mySubDetail;
4222        
4223
4224        @Override
4225        public boolean isEmpty() {
4226                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySequence,  myType,  myService,  myQuantity,  myUnitPrice,  myFactor,  myPoints,  myNet,  myUdi,  mySubDetail);
4227        }
4228        
4229        @Override
4230        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
4231                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySequence, myType, myService, myQuantity, myUnitPrice, myFactor, myPoints, myNet, myUdi, mySubDetail);
4232        }
4233
4234        /**
4235         * Gets the value(s) for <b>sequence</b> ().
4236         * creating it if it does
4237         * not exist. Will not return <code>null</code>.
4238         *
4239     * <p>
4240     * <b>Definition:</b>
4241     * A service line number.
4242     * </p> 
4243         */
4244        public PositiveIntDt getSequenceElement() {  
4245                if (mySequence == null) {
4246                        mySequence = new PositiveIntDt();
4247                }
4248                return mySequence;
4249        }
4250
4251        
4252        /**
4253         * Gets the value(s) for <b>sequence</b> ().
4254         * creating it if it does
4255         * not exist. Will not return <code>null</code>.
4256         *
4257     * <p>
4258     * <b>Definition:</b>
4259     * A service line number.
4260     * </p> 
4261         */
4262        public Integer getSequence() {  
4263                return getSequenceElement().getValue();
4264        }
4265
4266        /**
4267         * Sets the value(s) for <b>sequence</b> ()
4268         *
4269     * <p>
4270     * <b>Definition:</b>
4271     * A service line number.
4272     * </p> 
4273         */
4274        public ItemDetail setSequence(PositiveIntDt theValue) {
4275                mySequence = theValue;
4276                return this;
4277        }
4278        
4279        
4280
4281        /**
4282         * Sets the value for <b>sequence</b> ()
4283         *
4284     * <p>
4285     * <b>Definition:</b>
4286     * A service line number.
4287     * </p> 
4288         */
4289        public ItemDetail setSequence( int theInteger) {
4290                mySequence = new PositiveIntDt(theInteger); 
4291                return this; 
4292        }
4293
4294 
4295        /**
4296         * Gets the value(s) for <b>type</b> ().
4297         * creating it if it does
4298         * not exist. Will not return <code>null</code>.
4299         *
4300     * <p>
4301     * <b>Definition:</b>
4302     * The type of product or service.
4303     * </p> 
4304         */
4305        public CodingDt getType() {  
4306                if (myType == null) {
4307                        myType = new CodingDt();
4308                }
4309                return myType;
4310        }
4311
4312        /**
4313         * Sets the value(s) for <b>type</b> ()
4314         *
4315     * <p>
4316     * <b>Definition:</b>
4317     * The type of product or service.
4318     * </p> 
4319         */
4320        public ItemDetail setType(CodingDt theValue) {
4321                myType = theValue;
4322                return this;
4323        }
4324        
4325        
4326
4327  
4328        /**
4329         * Gets the value(s) for <b>service</b> ().
4330         * creating it if it does
4331         * not exist. Will not return <code>null</code>.
4332         *
4333     * <p>
4334     * <b>Definition:</b>
4335     * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.
4336     * </p> 
4337         */
4338        public CodingDt getService() {  
4339                if (myService == null) {
4340                        myService = new CodingDt();
4341                }
4342                return myService;
4343        }
4344
4345        /**
4346         * Sets the value(s) for <b>service</b> ()
4347         *
4348     * <p>
4349     * <b>Definition:</b>
4350     * If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.
4351     * </p> 
4352         */
4353        public ItemDetail setService(CodingDt theValue) {
4354                myService = theValue;
4355                return this;
4356        }
4357        
4358        
4359
4360  
4361        /**
4362         * Gets the value(s) for <b>quantity</b> ().
4363         * creating it if it does
4364         * not exist. Will not return <code>null</code>.
4365         *
4366     * <p>
4367     * <b>Definition:</b>
4368     * The number of repetitions of a service or product.
4369     * </p> 
4370         */
4371        public SimpleQuantityDt getQuantity() {  
4372                if (myQuantity == null) {
4373                        myQuantity = new SimpleQuantityDt();
4374                }
4375                return myQuantity;
4376        }
4377
4378        /**
4379         * Sets the value(s) for <b>quantity</b> ()
4380         *
4381     * <p>
4382     * <b>Definition:</b>
4383     * The number of repetitions of a service or product.
4384     * </p> 
4385         */
4386        public ItemDetail setQuantity(SimpleQuantityDt theValue) {
4387                myQuantity = theValue;
4388                return this;
4389        }
4390        
4391        
4392
4393  
4394        /**
4395         * Gets the value(s) for <b>unitPrice</b> ().
4396         * creating it if it does
4397         * not exist. Will not return <code>null</code>.
4398         *
4399     * <p>
4400     * <b>Definition:</b>
4401     * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
4402     * </p> 
4403         */
4404        public MoneyDt getUnitPrice() {  
4405                if (myUnitPrice == null) {
4406                        myUnitPrice = new MoneyDt();
4407                }
4408                return myUnitPrice;
4409        }
4410
4411        /**
4412         * Sets the value(s) for <b>unitPrice</b> ()
4413         *
4414     * <p>
4415     * <b>Definition:</b>
4416     * If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
4417     * </p> 
4418         */
4419        public ItemDetail setUnitPrice(MoneyDt theValue) {
4420                myUnitPrice = theValue;
4421                return this;
4422        }
4423        
4424        
4425
4426  
4427        /**
4428         * Gets the value(s) for <b>factor</b> ().
4429         * creating it if it does
4430         * not exist. Will not return <code>null</code>.
4431         *
4432     * <p>
4433     * <b>Definition:</b>
4434     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4435     * </p> 
4436         */
4437        public DecimalDt getFactorElement() {  
4438                if (myFactor == null) {
4439                        myFactor = new DecimalDt();
4440                }
4441                return myFactor;
4442        }
4443
4444        
4445        /**
4446         * Gets the value(s) for <b>factor</b> ().
4447         * creating it if it does
4448         * not exist. Will not return <code>null</code>.
4449         *
4450     * <p>
4451     * <b>Definition:</b>
4452     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4453     * </p> 
4454         */
4455        public BigDecimal getFactor() {  
4456                return getFactorElement().getValue();
4457        }
4458
4459        /**
4460         * Sets the value(s) for <b>factor</b> ()
4461         *
4462     * <p>
4463     * <b>Definition:</b>
4464     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4465     * </p> 
4466         */
4467        public ItemDetail setFactor(DecimalDt theValue) {
4468                myFactor = theValue;
4469                return this;
4470        }
4471        
4472        
4473
4474        /**
4475         * Sets the value for <b>factor</b> ()
4476         *
4477     * <p>
4478     * <b>Definition:</b>
4479     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4480     * </p> 
4481         */
4482        public ItemDetail setFactor( long theValue) {
4483                myFactor = new DecimalDt(theValue); 
4484                return this; 
4485        }
4486
4487        /**
4488         * Sets the value for <b>factor</b> ()
4489         *
4490     * <p>
4491     * <b>Definition:</b>
4492     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4493     * </p> 
4494         */
4495        public ItemDetail setFactor( double theValue) {
4496                myFactor = new DecimalDt(theValue); 
4497                return this; 
4498        }
4499
4500        /**
4501         * Sets the value for <b>factor</b> ()
4502         *
4503     * <p>
4504     * <b>Definition:</b>
4505     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
4506     * </p> 
4507         */
4508        public ItemDetail setFactor( java.math.BigDecimal theValue) {
4509                myFactor = new DecimalDt(theValue); 
4510                return this; 
4511        }
4512
4513 
4514        /**
4515         * Gets the value(s) for <b>points</b> ().
4516         * creating it if it does
4517         * not exist. Will not return <code>null</code>.
4518         *
4519     * <p>
4520     * <b>Definition:</b>
4521     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4522     * </p> 
4523         */
4524        public DecimalDt getPointsElement() {  
4525                if (myPoints == null) {
4526                        myPoints = new DecimalDt();
4527                }
4528                return myPoints;
4529        }
4530
4531        
4532        /**
4533         * Gets the value(s) for <b>points</b> ().
4534         * creating it if it does
4535         * not exist. Will not return <code>null</code>.
4536         *
4537     * <p>
4538     * <b>Definition:</b>
4539     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4540     * </p> 
4541         */
4542        public BigDecimal getPoints() {  
4543                return getPointsElement().getValue();
4544        }
4545
4546        /**
4547         * Sets the value(s) for <b>points</b> ()
4548         *
4549     * <p>
4550     * <b>Definition:</b>
4551     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4552     * </p> 
4553         */
4554        public ItemDetail setPoints(DecimalDt theValue) {
4555                myPoints = theValue;
4556                return this;
4557        }
4558        
4559        
4560
4561        /**
4562         * Sets the value for <b>points</b> ()
4563         *
4564     * <p>
4565     * <b>Definition:</b>
4566     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4567     * </p> 
4568         */
4569        public ItemDetail setPoints( long theValue) {
4570                myPoints = new DecimalDt(theValue); 
4571                return this; 
4572        }
4573
4574        /**
4575         * Sets the value for <b>points</b> ()
4576         *
4577     * <p>
4578     * <b>Definition:</b>
4579     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4580     * </p> 
4581         */
4582        public ItemDetail setPoints( double theValue) {
4583                myPoints = new DecimalDt(theValue); 
4584                return this; 
4585        }
4586
4587        /**
4588         * Sets the value for <b>points</b> ()
4589         *
4590     * <p>
4591     * <b>Definition:</b>
4592     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
4593     * </p> 
4594         */
4595        public ItemDetail setPoints( java.math.BigDecimal theValue) {
4596                myPoints = new DecimalDt(theValue); 
4597                return this; 
4598        }
4599
4600 
4601        /**
4602         * Gets the value(s) for <b>net</b> ().
4603         * creating it if it does
4604         * not exist. Will not return <code>null</code>.
4605         *
4606     * <p>
4607     * <b>Definition:</b>
4608     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
4609     * </p> 
4610         */
4611        public MoneyDt getNet() {  
4612                if (myNet == null) {
4613                        myNet = new MoneyDt();
4614                }
4615                return myNet;
4616        }
4617
4618        /**
4619         * Sets the value(s) for <b>net</b> ()
4620         *
4621     * <p>
4622     * <b>Definition:</b>
4623     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
4624     * </p> 
4625         */
4626        public ItemDetail setNet(MoneyDt theValue) {
4627                myNet = theValue;
4628                return this;
4629        }
4630        
4631        
4632
4633  
4634        /**
4635         * Gets the value(s) for <b>udi</b> ().
4636         * creating it if it does
4637         * not exist. Will not return <code>null</code>.
4638         *
4639     * <p>
4640     * <b>Definition:</b>
4641     * List of Unique Device Identifiers associated with this line item.
4642     * </p> 
4643         */
4644        public CodingDt getUdi() {  
4645                if (myUdi == null) {
4646                        myUdi = new CodingDt();
4647                }
4648                return myUdi;
4649        }
4650
4651        /**
4652         * Sets the value(s) for <b>udi</b> ()
4653         *
4654     * <p>
4655     * <b>Definition:</b>
4656     * List of Unique Device Identifiers associated with this line item.
4657     * </p> 
4658         */
4659        public ItemDetail setUdi(CodingDt theValue) {
4660                myUdi = theValue;
4661                return this;
4662        }
4663        
4664        
4665
4666  
4667        /**
4668         * Gets the value(s) for <b>subDetail</b> ().
4669         * creating it if it does
4670         * not exist. Will not return <code>null</code>.
4671         *
4672     * <p>
4673     * <b>Definition:</b>
4674     * Third tier of goods and services
4675     * </p> 
4676         */
4677        public java.util.List<ItemDetailSubDetail> getSubDetail() {  
4678                if (mySubDetail == null) {
4679                        mySubDetail = new java.util.ArrayList<ItemDetailSubDetail>();
4680                }
4681                return mySubDetail;
4682        }
4683
4684        /**
4685         * Sets the value(s) for <b>subDetail</b> ()
4686         *
4687     * <p>
4688     * <b>Definition:</b>
4689     * Third tier of goods and services
4690     * </p> 
4691         */
4692        public ItemDetail setSubDetail(java.util.List<ItemDetailSubDetail> theValue) {
4693                mySubDetail = theValue;
4694                return this;
4695        }
4696        
4697        
4698
4699        /**
4700         * Adds and returns a new value for <b>subDetail</b> ()
4701         *
4702     * <p>
4703     * <b>Definition:</b>
4704     * Third tier of goods and services
4705     * </p> 
4706         */
4707        public ItemDetailSubDetail addSubDetail() {
4708                ItemDetailSubDetail newType = new ItemDetailSubDetail();
4709                getSubDetail().add(newType);
4710                return newType; 
4711        }
4712
4713        /**
4714         * Adds a given new value for <b>subDetail</b> ()
4715         *
4716         * <p>
4717         * <b>Definition:</b>
4718         * Third tier of goods and services
4719         * </p>
4720         * @param theValue The subDetail to add (must not be <code>null</code>)
4721         */
4722        public ItemDetail addSubDetail(ItemDetailSubDetail theValue) {
4723                if (theValue == null) {
4724                        throw new NullPointerException("theValue must not be null");
4725                }
4726                getSubDetail().add(theValue);
4727                return this;
4728        }
4729
4730        /**
4731         * Gets the first repetition for <b>subDetail</b> (),
4732         * creating it if it does not already exist.
4733         *
4734     * <p>
4735     * <b>Definition:</b>
4736     * Third tier of goods and services
4737     * </p> 
4738         */
4739        public ItemDetailSubDetail getSubDetailFirstRep() {
4740                if (getSubDetail().isEmpty()) {
4741                        return addSubDetail();
4742                }
4743                return getSubDetail().get(0); 
4744        }
4745  
4746
4747
4748        }
4749
4750        /**
4751         * Block class for child element: <b>Claim.item.detail.subDetail</b> ()
4752         *
4753     * <p>
4754     * <b>Definition:</b>
4755     * Third tier of goods and services
4756     * </p> 
4757         */
4758        @Block()        
4759        public static class ItemDetailSubDetail 
4760            extends  BaseIdentifiableElement        implements IResourceBlock {
4761        
4762        @Child(name="sequence", type=PositiveIntDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
4763        @Description(
4764                shortDefinition="",
4765                formalDefinition="A service line number."
4766        )
4767        private PositiveIntDt mySequence;
4768        
4769        @Child(name="type", type=CodingDt.class, order=1, min=1, max=1, summary=false, modifier=false)  
4770        @Description(
4771                shortDefinition="",
4772                formalDefinition="The type of product or service."
4773        )
4774        private CodingDt myType;
4775        
4776        @Child(name="service", type=CodingDt.class, order=2, min=1, max=1, summary=false, modifier=false)       
4777        @Description(
4778                shortDefinition="",
4779                formalDefinition="The fee for an additional  service or product or charge."
4780        )
4781        private CodingDt myService;
4782        
4783        @Child(name="quantity", type=SimpleQuantityDt.class, order=3, min=0, max=1, summary=false, modifier=false)      
4784        @Description(
4785                shortDefinition="",
4786                formalDefinition="The number of repetitions of a service or product."
4787        )
4788        private SimpleQuantityDt myQuantity;
4789        
4790        @Child(name="unitPrice", type=MoneyDt.class, order=4, min=0, max=1, summary=false, modifier=false)      
4791        @Description(
4792                shortDefinition="",
4793                formalDefinition="The fee for an additional  service or product or charge."
4794        )
4795        private MoneyDt myUnitPrice;
4796        
4797        @Child(name="factor", type=DecimalDt.class, order=5, min=0, max=1, summary=false, modifier=false)       
4798        @Description(
4799                shortDefinition="",
4800                formalDefinition="A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."
4801        )
4802        private DecimalDt myFactor;
4803        
4804        @Child(name="points", type=DecimalDt.class, order=6, min=0, max=1, summary=false, modifier=false)       
4805        @Description(
4806                shortDefinition="",
4807                formalDefinition="An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point."
4808        )
4809        private DecimalDt myPoints;
4810        
4811        @Child(name="net", type=MoneyDt.class, order=7, min=0, max=1, summary=false, modifier=false)    
4812        @Description(
4813                shortDefinition="",
4814                formalDefinition="The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied."
4815        )
4816        private MoneyDt myNet;
4817        
4818        @Child(name="udi", type=CodingDt.class, order=8, min=0, max=1, summary=false, modifier=false)   
4819        @Description(
4820                shortDefinition="",
4821                formalDefinition="List of Unique Device Identifiers associated with this line item."
4822        )
4823        private CodingDt myUdi;
4824        
4825
4826        @Override
4827        public boolean isEmpty() {
4828                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySequence,  myType,  myService,  myQuantity,  myUnitPrice,  myFactor,  myPoints,  myNet,  myUdi);
4829        }
4830        
4831        @Override
4832        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
4833                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySequence, myType, myService, myQuantity, myUnitPrice, myFactor, myPoints, myNet, myUdi);
4834        }
4835
4836        /**
4837         * Gets the value(s) for <b>sequence</b> ().
4838         * creating it if it does
4839         * not exist. Will not return <code>null</code>.
4840         *
4841     * <p>
4842     * <b>Definition:</b>
4843     * A service line number.
4844     * </p> 
4845         */
4846        public PositiveIntDt getSequenceElement() {  
4847                if (mySequence == null) {
4848                        mySequence = new PositiveIntDt();
4849                }
4850                return mySequence;
4851        }
4852
4853        
4854        /**
4855         * Gets the value(s) for <b>sequence</b> ().
4856         * creating it if it does
4857         * not exist. Will not return <code>null</code>.
4858         *
4859     * <p>
4860     * <b>Definition:</b>
4861     * A service line number.
4862     * </p> 
4863         */
4864        public Integer getSequence() {  
4865                return getSequenceElement().getValue();
4866        }
4867
4868        /**
4869         * Sets the value(s) for <b>sequence</b> ()
4870         *
4871     * <p>
4872     * <b>Definition:</b>
4873     * A service line number.
4874     * </p> 
4875         */
4876        public ItemDetailSubDetail setSequence(PositiveIntDt theValue) {
4877                mySequence = theValue;
4878                return this;
4879        }
4880        
4881        
4882
4883        /**
4884         * Sets the value for <b>sequence</b> ()
4885         *
4886     * <p>
4887     * <b>Definition:</b>
4888     * A service line number.
4889     * </p> 
4890         */
4891        public ItemDetailSubDetail setSequence( int theInteger) {
4892                mySequence = new PositiveIntDt(theInteger); 
4893                return this; 
4894        }
4895
4896 
4897        /**
4898         * Gets the value(s) for <b>type</b> ().
4899         * creating it if it does
4900         * not exist. Will not return <code>null</code>.
4901         *
4902     * <p>
4903     * <b>Definition:</b>
4904     * The type of product or service.
4905     * </p> 
4906         */
4907        public CodingDt getType() {  
4908                if (myType == null) {
4909                        myType = new CodingDt();
4910                }
4911                return myType;
4912        }
4913
4914        /**
4915         * Sets the value(s) for <b>type</b> ()
4916         *
4917     * <p>
4918     * <b>Definition:</b>
4919     * The type of product or service.
4920     * </p> 
4921         */
4922        public ItemDetailSubDetail setType(CodingDt theValue) {
4923                myType = theValue;
4924                return this;
4925        }
4926        
4927        
4928
4929  
4930        /**
4931         * Gets the value(s) for <b>service</b> ().
4932         * creating it if it does
4933         * not exist. Will not return <code>null</code>.
4934         *
4935     * <p>
4936     * <b>Definition:</b>
4937     * The fee for an additional  service or product or charge.
4938     * </p> 
4939         */
4940        public CodingDt getService() {  
4941                if (myService == null) {
4942                        myService = new CodingDt();
4943                }
4944                return myService;
4945        }
4946
4947        /**
4948         * Sets the value(s) for <b>service</b> ()
4949         *
4950     * <p>
4951     * <b>Definition:</b>
4952     * The fee for an additional  service or product or charge.
4953     * </p> 
4954         */
4955        public ItemDetailSubDetail setService(CodingDt theValue) {
4956                myService = theValue;
4957                return this;
4958        }
4959        
4960        
4961
4962  
4963        /**
4964         * Gets the value(s) for <b>quantity</b> ().
4965         * creating it if it does
4966         * not exist. Will not return <code>null</code>.
4967         *
4968     * <p>
4969     * <b>Definition:</b>
4970     * The number of repetitions of a service or product.
4971     * </p> 
4972         */
4973        public SimpleQuantityDt getQuantity() {  
4974                if (myQuantity == null) {
4975                        myQuantity = new SimpleQuantityDt();
4976                }
4977                return myQuantity;
4978        }
4979
4980        /**
4981         * Sets the value(s) for <b>quantity</b> ()
4982         *
4983     * <p>
4984     * <b>Definition:</b>
4985     * The number of repetitions of a service or product.
4986     * </p> 
4987         */
4988        public ItemDetailSubDetail setQuantity(SimpleQuantityDt theValue) {
4989                myQuantity = theValue;
4990                return this;
4991        }
4992        
4993        
4994
4995  
4996        /**
4997         * Gets the value(s) for <b>unitPrice</b> ().
4998         * creating it if it does
4999         * not exist. Will not return <code>null</code>.
5000         *
5001     * <p>
5002     * <b>Definition:</b>
5003     * The fee for an additional  service or product or charge.
5004     * </p> 
5005         */
5006        public MoneyDt getUnitPrice() {  
5007                if (myUnitPrice == null) {
5008                        myUnitPrice = new MoneyDt();
5009                }
5010                return myUnitPrice;
5011        }
5012
5013        /**
5014         * Sets the value(s) for <b>unitPrice</b> ()
5015         *
5016     * <p>
5017     * <b>Definition:</b>
5018     * The fee for an additional  service or product or charge.
5019     * </p> 
5020         */
5021        public ItemDetailSubDetail setUnitPrice(MoneyDt theValue) {
5022                myUnitPrice = theValue;
5023                return this;
5024        }
5025        
5026        
5027
5028  
5029        /**
5030         * Gets the value(s) for <b>factor</b> ().
5031         * creating it if it does
5032         * not exist. Will not return <code>null</code>.
5033         *
5034     * <p>
5035     * <b>Definition:</b>
5036     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5037     * </p> 
5038         */
5039        public DecimalDt getFactorElement() {  
5040                if (myFactor == null) {
5041                        myFactor = new DecimalDt();
5042                }
5043                return myFactor;
5044        }
5045
5046        
5047        /**
5048         * Gets the value(s) for <b>factor</b> ().
5049         * creating it if it does
5050         * not exist. Will not return <code>null</code>.
5051         *
5052     * <p>
5053     * <b>Definition:</b>
5054     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5055     * </p> 
5056         */
5057        public BigDecimal getFactor() {  
5058                return getFactorElement().getValue();
5059        }
5060
5061        /**
5062         * Sets the value(s) for <b>factor</b> ()
5063         *
5064     * <p>
5065     * <b>Definition:</b>
5066     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5067     * </p> 
5068         */
5069        public ItemDetailSubDetail setFactor(DecimalDt theValue) {
5070                myFactor = theValue;
5071                return this;
5072        }
5073        
5074        
5075
5076        /**
5077         * Sets the value for <b>factor</b> ()
5078         *
5079     * <p>
5080     * <b>Definition:</b>
5081     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5082     * </p> 
5083         */
5084        public ItemDetailSubDetail setFactor( long theValue) {
5085                myFactor = new DecimalDt(theValue); 
5086                return this; 
5087        }
5088
5089        /**
5090         * Sets the value for <b>factor</b> ()
5091         *
5092     * <p>
5093     * <b>Definition:</b>
5094     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5095     * </p> 
5096         */
5097        public ItemDetailSubDetail setFactor( double theValue) {
5098                myFactor = new DecimalDt(theValue); 
5099                return this; 
5100        }
5101
5102        /**
5103         * Sets the value for <b>factor</b> ()
5104         *
5105     * <p>
5106     * <b>Definition:</b>
5107     * A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.
5108     * </p> 
5109         */
5110        public ItemDetailSubDetail setFactor( java.math.BigDecimal theValue) {
5111                myFactor = new DecimalDt(theValue); 
5112                return this; 
5113        }
5114
5115 
5116        /**
5117         * Gets the value(s) for <b>points</b> ().
5118         * creating it if it does
5119         * not exist. Will not return <code>null</code>.
5120         *
5121     * <p>
5122     * <b>Definition:</b>
5123     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5124     * </p> 
5125         */
5126        public DecimalDt getPointsElement() {  
5127                if (myPoints == null) {
5128                        myPoints = new DecimalDt();
5129                }
5130                return myPoints;
5131        }
5132
5133        
5134        /**
5135         * Gets the value(s) for <b>points</b> ().
5136         * creating it if it does
5137         * not exist. Will not return <code>null</code>.
5138         *
5139     * <p>
5140     * <b>Definition:</b>
5141     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5142     * </p> 
5143         */
5144        public BigDecimal getPoints() {  
5145                return getPointsElement().getValue();
5146        }
5147
5148        /**
5149         * Sets the value(s) for <b>points</b> ()
5150         *
5151     * <p>
5152     * <b>Definition:</b>
5153     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5154     * </p> 
5155         */
5156        public ItemDetailSubDetail setPoints(DecimalDt theValue) {
5157                myPoints = theValue;
5158                return this;
5159        }
5160        
5161        
5162
5163        /**
5164         * Sets the value for <b>points</b> ()
5165         *
5166     * <p>
5167     * <b>Definition:</b>
5168     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5169     * </p> 
5170         */
5171        public ItemDetailSubDetail setPoints( long theValue) {
5172                myPoints = new DecimalDt(theValue); 
5173                return this; 
5174        }
5175
5176        /**
5177         * Sets the value for <b>points</b> ()
5178         *
5179     * <p>
5180     * <b>Definition:</b>
5181     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5182     * </p> 
5183         */
5184        public ItemDetailSubDetail setPoints( double theValue) {
5185                myPoints = new DecimalDt(theValue); 
5186                return this; 
5187        }
5188
5189        /**
5190         * Sets the value for <b>points</b> ()
5191         *
5192     * <p>
5193     * <b>Definition:</b>
5194     * An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.
5195     * </p> 
5196         */
5197        public ItemDetailSubDetail setPoints( java.math.BigDecimal theValue) {
5198                myPoints = new DecimalDt(theValue); 
5199                return this; 
5200        }
5201
5202 
5203        /**
5204         * Gets the value(s) for <b>net</b> ().
5205         * creating it if it does
5206         * not exist. Will not return <code>null</code>.
5207         *
5208     * <p>
5209     * <b>Definition:</b>
5210     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
5211     * </p> 
5212         */
5213        public MoneyDt getNet() {  
5214                if (myNet == null) {
5215                        myNet = new MoneyDt();
5216                }
5217                return myNet;
5218        }
5219
5220        /**
5221         * Sets the value(s) for <b>net</b> ()
5222         *
5223     * <p>
5224     * <b>Definition:</b>
5225     * The quantity times the unit price for an additional  service or product or charge. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied.
5226     * </p> 
5227         */
5228        public ItemDetailSubDetail setNet(MoneyDt theValue) {
5229                myNet = theValue;
5230                return this;
5231        }
5232        
5233        
5234
5235  
5236        /**
5237         * Gets the value(s) for <b>udi</b> ().
5238         * creating it if it does
5239         * not exist. Will not return <code>null</code>.
5240         *
5241     * <p>
5242     * <b>Definition:</b>
5243     * List of Unique Device Identifiers associated with this line item.
5244     * </p> 
5245         */
5246        public CodingDt getUdi() {  
5247                if (myUdi == null) {
5248                        myUdi = new CodingDt();
5249                }
5250                return myUdi;
5251        }
5252
5253        /**
5254         * Sets the value(s) for <b>udi</b> ()
5255         *
5256     * <p>
5257     * <b>Definition:</b>
5258     * List of Unique Device Identifiers associated with this line item.
5259     * </p> 
5260         */
5261        public ItemDetailSubDetail setUdi(CodingDt theValue) {
5262                myUdi = theValue;
5263                return this;
5264        }
5265        
5266        
5267
5268  
5269
5270
5271        }
5272
5273
5274
5275        /**
5276         * Block class for child element: <b>Claim.item.prosthesis</b> ()
5277         *
5278     * <p>
5279     * <b>Definition:</b>
5280     * The materials and placement date of prior fixed prosthesis.
5281     * </p> 
5282         */
5283        @Block()        
5284        public static class ItemProsthesis 
5285            extends  BaseIdentifiableElement        implements IResourceBlock {
5286        
5287        @Child(name="initial", type=BooleanDt.class, order=0, min=0, max=1, summary=false, modifier=false)      
5288        @Description(
5289                shortDefinition="",
5290                formalDefinition="Indicates whether this is the initial placement of a fixed prosthesis."
5291        )
5292        private BooleanDt myInitial;
5293        
5294        @Child(name="priorDate", type=DateDt.class, order=1, min=0, max=1, summary=false, modifier=false)       
5295        @Description(
5296                shortDefinition="",
5297                formalDefinition="Date of the initial placement."
5298        )
5299        private DateDt myPriorDate;
5300        
5301        @Child(name="priorMaterial", type=CodingDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
5302        @Description(
5303                shortDefinition="",
5304                formalDefinition="Material of the prior denture or bridge prosthesis. (Oral)"
5305        )
5306        private CodingDt myPriorMaterial;
5307        
5308
5309        @Override
5310        public boolean isEmpty() {
5311                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myInitial,  myPriorDate,  myPriorMaterial);
5312        }
5313        
5314        @Override
5315        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
5316                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myInitial, myPriorDate, myPriorMaterial);
5317        }
5318
5319        /**
5320         * Gets the value(s) for <b>initial</b> ().
5321         * creating it if it does
5322         * not exist. Will not return <code>null</code>.
5323         *
5324     * <p>
5325     * <b>Definition:</b>
5326     * Indicates whether this is the initial placement of a fixed prosthesis.
5327     * </p> 
5328         */
5329        public BooleanDt getInitialElement() {  
5330                if (myInitial == null) {
5331                        myInitial = new BooleanDt();
5332                }
5333                return myInitial;
5334        }
5335
5336        
5337        /**
5338         * Gets the value(s) for <b>initial</b> ().
5339         * creating it if it does
5340         * not exist. Will not return <code>null</code>.
5341         *
5342     * <p>
5343     * <b>Definition:</b>
5344     * Indicates whether this is the initial placement of a fixed prosthesis.
5345     * </p> 
5346         */
5347        public Boolean getInitial() {  
5348                return getInitialElement().getValue();
5349        }
5350
5351        /**
5352         * Sets the value(s) for <b>initial</b> ()
5353         *
5354     * <p>
5355     * <b>Definition:</b>
5356     * Indicates whether this is the initial placement of a fixed prosthesis.
5357     * </p> 
5358         */
5359        public ItemProsthesis setInitial(BooleanDt theValue) {
5360                myInitial = theValue;
5361                return this;
5362        }
5363        
5364        
5365
5366        /**
5367         * Sets the value for <b>initial</b> ()
5368         *
5369     * <p>
5370     * <b>Definition:</b>
5371     * Indicates whether this is the initial placement of a fixed prosthesis.
5372     * </p> 
5373         */
5374        public ItemProsthesis setInitial( boolean theBoolean) {
5375                myInitial = new BooleanDt(theBoolean); 
5376                return this; 
5377        }
5378
5379 
5380        /**
5381         * Gets the value(s) for <b>priorDate</b> ().
5382         * creating it if it does
5383         * not exist. Will not return <code>null</code>.
5384         *
5385     * <p>
5386     * <b>Definition:</b>
5387     * Date of the initial placement.
5388     * </p> 
5389         */
5390        public DateDt getPriorDateElement() {  
5391                if (myPriorDate == null) {
5392                        myPriorDate = new DateDt();
5393                }
5394                return myPriorDate;
5395        }
5396
5397        
5398        /**
5399         * Gets the value(s) for <b>priorDate</b> ().
5400         * creating it if it does
5401         * not exist. Will not return <code>null</code>.
5402         *
5403     * <p>
5404     * <b>Definition:</b>
5405     * Date of the initial placement.
5406     * </p> 
5407         */
5408        public Date getPriorDate() {  
5409                return getPriorDateElement().getValue();
5410        }
5411
5412        /**
5413         * Sets the value(s) for <b>priorDate</b> ()
5414         *
5415     * <p>
5416     * <b>Definition:</b>
5417     * Date of the initial placement.
5418     * </p> 
5419         */
5420        public ItemProsthesis setPriorDate(DateDt theValue) {
5421                myPriorDate = theValue;
5422                return this;
5423        }
5424        
5425        
5426
5427        /**
5428         * Sets the value for <b>priorDate</b> ()
5429         *
5430     * <p>
5431     * <b>Definition:</b>
5432     * Date of the initial placement.
5433     * </p> 
5434         */
5435        public ItemProsthesis setPriorDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
5436                myPriorDate = new DateDt(theDate, thePrecision); 
5437                return this; 
5438        }
5439
5440        /**
5441         * Sets the value for <b>priorDate</b> ()
5442         *
5443     * <p>
5444     * <b>Definition:</b>
5445     * Date of the initial placement.
5446     * </p> 
5447         */
5448        public ItemProsthesis setPriorDateWithDayPrecision( Date theDate) {
5449                myPriorDate = new DateDt(theDate); 
5450                return this; 
5451        }
5452
5453 
5454        /**
5455         * Gets the value(s) for <b>priorMaterial</b> ().
5456         * creating it if it does
5457         * not exist. Will not return <code>null</code>.
5458         *
5459     * <p>
5460     * <b>Definition:</b>
5461     * Material of the prior denture or bridge prosthesis. (Oral)
5462     * </p> 
5463         */
5464        public CodingDt getPriorMaterial() {  
5465                if (myPriorMaterial == null) {
5466                        myPriorMaterial = new CodingDt();
5467                }
5468                return myPriorMaterial;
5469        }
5470
5471        /**
5472         * Sets the value(s) for <b>priorMaterial</b> ()
5473         *
5474     * <p>
5475     * <b>Definition:</b>
5476     * Material of the prior denture or bridge prosthesis. (Oral)
5477     * </p> 
5478         */
5479        public ItemProsthesis setPriorMaterial(CodingDt theValue) {
5480                myPriorMaterial = theValue;
5481                return this;
5482        }
5483        
5484        
5485
5486  
5487
5488
5489        }
5490
5491
5492
5493        /**
5494         * Block class for child element: <b>Claim.missingTeeth</b> ()
5495         *
5496     * <p>
5497     * <b>Definition:</b>
5498     * A list of teeth which would be expected but are not found due to having been previously  extracted or for other reasons.
5499     * </p> 
5500         */
5501        @Block()        
5502        public static class MissingTeeth 
5503            extends  BaseIdentifiableElement        implements IResourceBlock {
5504        
5505        @Child(name="tooth", type=CodingDt.class, order=0, min=1, max=1, summary=false, modifier=false) 
5506        @Description(
5507                shortDefinition="",
5508                formalDefinition="The code identifying which tooth is missing."
5509        )
5510        private CodingDt myTooth;
5511        
5512        @Child(name="reason", type=CodingDt.class, order=1, min=0, max=1, summary=false, modifier=false)        
5513        @Description(
5514                shortDefinition="",
5515                formalDefinition="Missing reason may be: E-extraction, O-other"
5516        )
5517        private CodingDt myReason;
5518        
5519        @Child(name="extractionDate", type=DateDt.class, order=2, min=0, max=1, summary=false, modifier=false)  
5520        @Description(
5521                shortDefinition="",
5522                formalDefinition="The date of the extraction either known from records or patient reported estimate."
5523        )
5524        private DateDt myExtractionDate;
5525        
5526
5527        @Override
5528        public boolean isEmpty() {
5529                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myTooth,  myReason,  myExtractionDate);
5530        }
5531        
5532        @Override
5533        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
5534                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myTooth, myReason, myExtractionDate);
5535        }
5536
5537        /**
5538         * Gets the value(s) for <b>tooth</b> ().
5539         * creating it if it does
5540         * not exist. Will not return <code>null</code>.
5541         *
5542     * <p>
5543     * <b>Definition:</b>
5544     * The code identifying which tooth is missing.
5545     * </p> 
5546         */
5547        public CodingDt getTooth() {  
5548                if (myTooth == null) {
5549                        myTooth = new CodingDt();
5550                }
5551                return myTooth;
5552        }
5553
5554        /**
5555         * Sets the value(s) for <b>tooth</b> ()
5556         *
5557     * <p>
5558     * <b>Definition:</b>
5559     * The code identifying which tooth is missing.
5560     * </p> 
5561         */
5562        public MissingTeeth setTooth(CodingDt theValue) {
5563                myTooth = theValue;
5564                return this;
5565        }
5566        
5567        
5568
5569  
5570        /**
5571         * Gets the value(s) for <b>reason</b> ().
5572         * creating it if it does
5573         * not exist. Will not return <code>null</code>.
5574         *
5575     * <p>
5576     * <b>Definition:</b>
5577     * Missing reason may be: E-extraction, O-other
5578     * </p> 
5579         */
5580        public CodingDt getReason() {  
5581                if (myReason == null) {
5582                        myReason = new CodingDt();
5583                }
5584                return myReason;
5585        }
5586
5587        /**
5588         * Sets the value(s) for <b>reason</b> ()
5589         *
5590     * <p>
5591     * <b>Definition:</b>
5592     * Missing reason may be: E-extraction, O-other
5593     * </p> 
5594         */
5595        public MissingTeeth setReason(CodingDt theValue) {
5596                myReason = theValue;
5597                return this;
5598        }
5599        
5600        
5601
5602  
5603        /**
5604         * Gets the value(s) for <b>extractionDate</b> ().
5605         * creating it if it does
5606         * not exist. Will not return <code>null</code>.
5607         *
5608     * <p>
5609     * <b>Definition:</b>
5610     * The date of the extraction either known from records or patient reported estimate.
5611     * </p> 
5612         */
5613        public DateDt getExtractionDateElement() {  
5614                if (myExtractionDate == null) {
5615                        myExtractionDate = new DateDt();
5616                }
5617                return myExtractionDate;
5618        }
5619
5620        
5621        /**
5622         * Gets the value(s) for <b>extractionDate</b> ().
5623         * creating it if it does
5624         * not exist. Will not return <code>null</code>.
5625         *
5626     * <p>
5627     * <b>Definition:</b>
5628     * The date of the extraction either known from records or patient reported estimate.
5629     * </p> 
5630         */
5631        public Date getExtractionDate() {  
5632                return getExtractionDateElement().getValue();
5633        }
5634
5635        /**
5636         * Sets the value(s) for <b>extractionDate</b> ()
5637         *
5638     * <p>
5639     * <b>Definition:</b>
5640     * The date of the extraction either known from records or patient reported estimate.
5641     * </p> 
5642         */
5643        public MissingTeeth setExtractionDate(DateDt theValue) {
5644                myExtractionDate = theValue;
5645                return this;
5646        }
5647        
5648        
5649
5650        /**
5651         * Sets the value for <b>extractionDate</b> ()
5652         *
5653     * <p>
5654     * <b>Definition:</b>
5655     * The date of the extraction either known from records or patient reported estimate.
5656     * </p> 
5657         */
5658        public MissingTeeth setExtractionDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
5659                myExtractionDate = new DateDt(theDate, thePrecision); 
5660                return this; 
5661        }
5662
5663        /**
5664         * Sets the value for <b>extractionDate</b> ()
5665         *
5666     * <p>
5667     * <b>Definition:</b>
5668     * The date of the extraction either known from records or patient reported estimate.
5669     * </p> 
5670         */
5671        public MissingTeeth setExtractionDateWithDayPrecision( Date theDate) {
5672                myExtractionDate = new DateDt(theDate); 
5673                return this; 
5674        }
5675
5676 
5677
5678
5679        }
5680
5681
5682
5683
5684    @Override
5685    public String getResourceName() {
5686        return "Claim";
5687    }
5688    
5689    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
5690        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
5691    }
5692
5693
5694}