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