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