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>PaymentReconciliation</b> Resource
282 * ()
283 *
284 * <p>
285 * <b>Definition:</b>
286 * This resource provides payment details and claim references supporting a bulk payment.
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/PaymentReconciliation">http://hl7.org/fhir/profiles/PaymentReconciliation</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="PaymentReconciliation", profile="http://hl7.org/fhir/profiles/PaymentReconciliation", id="paymentreconciliation")
301public class PaymentReconciliation 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 business identifier of the Explanation of Benefit</b><br>
309         * Type: <b>token</b><br>
310         * Path: <b>PaymentReconciliation.identifier</b><br>
311         * </p>
312         */
313        @SearchParamDefinition(name="identifier", path="PaymentReconciliation.identifier", description="The business identifier of the Explanation of Benefit", 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 business identifier of the Explanation of Benefit</b><br>
321         * Type: <b>token</b><br>
322         * Path: <b>PaymentReconciliation.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.ProcessRequest.class
338        })
339        @Description(
340                shortDefinition="",
341                formalDefinition="Original request resource reference"
342        )
343        private ResourceReferenceDt myRequest;
344        
345        @Child(name="outcome", type=CodeDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
346        @Description(
347                shortDefinition="",
348                formalDefinition="Transaction status: error, complete"
349        )
350        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/remittance-outcome")
351        private BoundCodeDt<RemittanceOutcomeEnum> myOutcome;
352        
353        @Child(name="disposition", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
354        @Description(
355                shortDefinition="",
356                formalDefinition="A description of the status of the adjudication."
357        )
358        private StringDt myDisposition;
359        
360        @Child(name="ruleset", type=CodingDt.class, order=4, min=0, max=1, summary=false, modifier=false)       
361        @Description(
362                shortDefinition="",
363                formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources."
364        )
365        private CodingDt myRuleset;
366        
367        @Child(name="originalRuleset", type=CodingDt.class, order=5, min=0, max=1, summary=false, modifier=false)       
368        @Description(
369                shortDefinition="",
370                formalDefinition="The style (standard) and version of the original material which was converted into this resource."
371        )
372        private CodingDt myOriginalRuleset;
373        
374        @Child(name="created", type=DateTimeDt.class, order=6, min=0, max=1, summary=false, modifier=false)     
375        @Description(
376                shortDefinition="",
377                formalDefinition="The date when the enclosed suite of services were performed or completed"
378        )
379        private DateTimeDt myCreated;
380        
381        @Child(name="period", type=PeriodDt.class, order=7, min=0, max=1, summary=false, modifier=false)        
382        @Description(
383                shortDefinition="",
384                formalDefinition="The period of time for which payments have been gathered into this bulk payment for settlement."
385        )
386        private PeriodDt myPeriod;
387        
388        @Child(name="organization", order=8, min=0, max=1, summary=false, modifier=false, type={
389                ca.uhn.fhir.model.dstu2.resource.Organization.class
390        })
391        @Description(
392                shortDefinition="",
393                formalDefinition="The Insurer who produced this adjudicated response."
394        )
395        private ResourceReferenceDt myOrganization;
396        
397        @Child(name="requestProvider", order=9, min=0, max=1, summary=false, modifier=false, type={
398                ca.uhn.fhir.model.dstu2.resource.Practitioner.class
399        })
400        @Description(
401                shortDefinition="",
402                formalDefinition="The practitioner who is responsible for the services rendered to the patient."
403        )
404        private ResourceReferenceDt myRequestProvider;
405        
406        @Child(name="requestOrganization", order=10, min=0, max=1, summary=false, modifier=false, type={
407                ca.uhn.fhir.model.dstu2.resource.Organization.class
408        })
409        @Description(
410                shortDefinition="",
411                formalDefinition="The organization which is responsible for the services rendered to the patient."
412        )
413        private ResourceReferenceDt myRequestOrganization;
414        
415        @Child(name="detail", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
416        @Description(
417                shortDefinition="",
418                formalDefinition="List of individual settlement amounts and the corresponding transaction."
419        )
420        private java.util.List<Detail> myDetail;
421        
422        @Child(name="form", type=CodingDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
423        @Description(
424                shortDefinition="",
425                formalDefinition="The form to be used for printing the content."
426        )
427        private CodingDt myForm;
428        
429        @Child(name="total", type=MoneyDt.class, order=13, min=1, max=1, summary=false, modifier=false) 
430        @Description(
431                shortDefinition="",
432                formalDefinition="Total payment amount."
433        )
434        private MoneyDt myTotal;
435        
436        @Child(name="note", order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
437        @Description(
438                shortDefinition="",
439                formalDefinition="Suite of notes"
440        )
441        private java.util.List<Note> myNote;
442        
443
444        @Override
445        public boolean isEmpty() {
446                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myRequest,  myOutcome,  myDisposition,  myRuleset,  myOriginalRuleset,  myCreated,  myPeriod,  myOrganization,  myRequestProvider,  myRequestOrganization,  myDetail,  myForm,  myTotal,  myNote);
447        }
448        
449        @Override
450        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
451                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myRequest, myOutcome, myDisposition, myRuleset, myOriginalRuleset, myCreated, myPeriod, myOrganization, myRequestProvider, myRequestOrganization, myDetail, myForm, myTotal, myNote);
452        }
453
454        /**
455         * Gets the value(s) for <b>identifier</b> ().
456         * creating it if it does
457         * not exist. Will not return <code>null</code>.
458         *
459     * <p>
460     * <b>Definition:</b>
461     * The Response business identifier
462     * </p> 
463         */
464        public java.util.List<IdentifierDt> getIdentifier() {  
465                if (myIdentifier == null) {
466                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
467                }
468                return myIdentifier;
469        }
470
471        /**
472         * Sets the value(s) for <b>identifier</b> ()
473         *
474     * <p>
475     * <b>Definition:</b>
476     * The Response business identifier
477     * </p> 
478         */
479        public PaymentReconciliation setIdentifier(java.util.List<IdentifierDt> theValue) {
480                myIdentifier = theValue;
481                return this;
482        }
483        
484        
485
486        /**
487         * Adds and returns a new value for <b>identifier</b> ()
488         *
489     * <p>
490     * <b>Definition:</b>
491     * The Response business identifier
492     * </p> 
493         */
494        public IdentifierDt addIdentifier() {
495                IdentifierDt newType = new IdentifierDt();
496                getIdentifier().add(newType);
497                return newType; 
498        }
499
500        /**
501         * Adds a given new value for <b>identifier</b> ()
502         *
503         * <p>
504         * <b>Definition:</b>
505         * The Response business identifier
506         * </p>
507         * @param theValue The identifier to add (must not be <code>null</code>)
508         */
509        public PaymentReconciliation addIdentifier(IdentifierDt theValue) {
510                if (theValue == null) {
511                        throw new NullPointerException("theValue must not be null");
512                }
513                getIdentifier().add(theValue);
514                return this;
515        }
516
517        /**
518         * Gets the first repetition for <b>identifier</b> (),
519         * creating it if it does not already exist.
520         *
521     * <p>
522     * <b>Definition:</b>
523     * The Response business identifier
524     * </p> 
525         */
526        public IdentifierDt getIdentifierFirstRep() {
527                if (getIdentifier().isEmpty()) {
528                        return addIdentifier();
529                }
530                return getIdentifier().get(0); 
531        }
532  
533        /**
534         * Gets the value(s) for <b>request</b> ().
535         * creating it if it does
536         * not exist. Will not return <code>null</code>.
537         *
538     * <p>
539     * <b>Definition:</b>
540     * Original request resource reference
541     * </p> 
542         */
543        public ResourceReferenceDt getRequest() {  
544                if (myRequest == null) {
545                        myRequest = new ResourceReferenceDt();
546                }
547                return myRequest;
548        }
549
550        /**
551         * Sets the value(s) for <b>request</b> ()
552         *
553     * <p>
554     * <b>Definition:</b>
555     * Original request resource reference
556     * </p> 
557         */
558        public PaymentReconciliation setRequest(ResourceReferenceDt theValue) {
559                myRequest = theValue;
560                return this;
561        }
562        
563        
564
565  
566        /**
567         * Gets the value(s) for <b>outcome</b> ().
568         * creating it if it does
569         * not exist. Will not return <code>null</code>.
570         *
571     * <p>
572     * <b>Definition:</b>
573     * Transaction status: error, complete
574     * </p> 
575         */
576        public BoundCodeDt<RemittanceOutcomeEnum> getOutcomeElement() {  
577                if (myOutcome == null) {
578                        myOutcome = new BoundCodeDt<RemittanceOutcomeEnum>(RemittanceOutcomeEnum.VALUESET_BINDER);
579                }
580                return myOutcome;
581        }
582
583        
584        /**
585         * Gets the value(s) for <b>outcome</b> ().
586         * creating it if it does
587         * not exist. This method may return <code>null</code>.
588         *
589     * <p>
590     * <b>Definition:</b>
591     * Transaction status: error, complete
592     * </p> 
593         */
594        public String getOutcome() {  
595                return getOutcomeElement().getValue();
596        }
597
598        /**
599         * Sets the value(s) for <b>outcome</b> ()
600         *
601     * <p>
602     * <b>Definition:</b>
603     * Transaction status: error, complete
604     * </p> 
605         */
606        public PaymentReconciliation setOutcome(BoundCodeDt<RemittanceOutcomeEnum> theValue) {
607                myOutcome = theValue;
608                return this;
609        }
610        
611        
612
613        /**
614         * Sets the value(s) for <b>outcome</b> ()
615         *
616     * <p>
617     * <b>Definition:</b>
618     * Transaction status: error, complete
619     * </p> 
620         */
621        public PaymentReconciliation setOutcome(RemittanceOutcomeEnum theValue) {
622                setOutcome(new BoundCodeDt<RemittanceOutcomeEnum>(RemittanceOutcomeEnum.VALUESET_BINDER, theValue));
623                
624/*
625                getOutcomeElement().setValueAsEnum(theValue);
626*/
627                return this;
628        }
629
630  
631        /**
632         * Gets the value(s) for <b>disposition</b> ().
633         * creating it if it does
634         * not exist. Will not return <code>null</code>.
635         *
636     * <p>
637     * <b>Definition:</b>
638     * A description of the status of the adjudication.
639     * </p> 
640         */
641        public StringDt getDispositionElement() {  
642                if (myDisposition == null) {
643                        myDisposition = new StringDt();
644                }
645                return myDisposition;
646        }
647
648        
649        /**
650         * Gets the value(s) for <b>disposition</b> ().
651         * creating it if it does
652         * not exist. This method may return <code>null</code>.
653         *
654     * <p>
655     * <b>Definition:</b>
656     * A description of the status of the adjudication.
657     * </p> 
658         */
659        public String getDisposition() {  
660                return getDispositionElement().getValue();
661        }
662
663        /**
664         * Sets the value(s) for <b>disposition</b> ()
665         *
666     * <p>
667     * <b>Definition:</b>
668     * A description of the status of the adjudication.
669     * </p> 
670         */
671        public PaymentReconciliation setDisposition(StringDt theValue) {
672                myDisposition = theValue;
673                return this;
674        }
675        
676        
677
678        /**
679         * Sets the value for <b>disposition</b> ()
680         *
681     * <p>
682     * <b>Definition:</b>
683     * A description of the status of the adjudication.
684     * </p> 
685         */
686        public PaymentReconciliation setDisposition( String theString) {
687                myDisposition = new StringDt(theString); 
688                return this; 
689        }
690
691 
692        /**
693         * Gets the value(s) for <b>ruleset</b> ().
694         * creating it if it does
695         * not exist. Will not return <code>null</code>.
696         *
697     * <p>
698     * <b>Definition:</b>
699     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
700     * </p> 
701         */
702        public CodingDt getRuleset() {  
703                if (myRuleset == null) {
704                        myRuleset = new CodingDt();
705                }
706                return myRuleset;
707        }
708
709        /**
710         * Sets the value(s) for <b>ruleset</b> ()
711         *
712     * <p>
713     * <b>Definition:</b>
714     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
715     * </p> 
716         */
717        public PaymentReconciliation setRuleset(CodingDt theValue) {
718                myRuleset = theValue;
719                return this;
720        }
721        
722        
723
724  
725        /**
726         * Gets the value(s) for <b>originalRuleset</b> ().
727         * creating it if it does
728         * not exist. Will not return <code>null</code>.
729         *
730     * <p>
731     * <b>Definition:</b>
732     * The style (standard) and version of the original material which was converted into this resource.
733     * </p> 
734         */
735        public CodingDt getOriginalRuleset() {  
736                if (myOriginalRuleset == null) {
737                        myOriginalRuleset = new CodingDt();
738                }
739                return myOriginalRuleset;
740        }
741
742        /**
743         * Sets the value(s) for <b>originalRuleset</b> ()
744         *
745     * <p>
746     * <b>Definition:</b>
747     * The style (standard) and version of the original material which was converted into this resource.
748     * </p> 
749         */
750        public PaymentReconciliation setOriginalRuleset(CodingDt theValue) {
751                myOriginalRuleset = theValue;
752                return this;
753        }
754        
755        
756
757  
758        /**
759         * Gets the value(s) for <b>created</b> ().
760         * creating it if it does
761         * not exist. Will not return <code>null</code>.
762         *
763     * <p>
764     * <b>Definition:</b>
765     * The date when the enclosed suite of services were performed or completed
766     * </p> 
767         */
768        public DateTimeDt getCreatedElement() {  
769                if (myCreated == null) {
770                        myCreated = new DateTimeDt();
771                }
772                return myCreated;
773        }
774
775        
776        /**
777         * Gets the value(s) for <b>created</b> ().
778         * creating it if it does
779         * not exist. This method may return <code>null</code>.
780         *
781     * <p>
782     * <b>Definition:</b>
783     * The date when the enclosed suite of services were performed or completed
784     * </p> 
785         */
786        public Date getCreated() {  
787                return getCreatedElement().getValue();
788        }
789
790        /**
791         * Sets the value(s) for <b>created</b> ()
792         *
793     * <p>
794     * <b>Definition:</b>
795     * The date when the enclosed suite of services were performed or completed
796     * </p> 
797         */
798        public PaymentReconciliation setCreated(DateTimeDt theValue) {
799                myCreated = theValue;
800                return this;
801        }
802        
803        
804
805        /**
806         * Sets the value for <b>created</b> ()
807         *
808     * <p>
809     * <b>Definition:</b>
810     * The date when the enclosed suite of services were performed or completed
811     * </p> 
812         */
813        public PaymentReconciliation setCreated( Date theDate,  TemporalPrecisionEnum thePrecision) {
814                myCreated = new DateTimeDt(theDate, thePrecision); 
815                return this; 
816        }
817
818        /**
819         * Sets the value for <b>created</b> ()
820         *
821     * <p>
822     * <b>Definition:</b>
823     * The date when the enclosed suite of services were performed or completed
824     * </p> 
825         */
826        public PaymentReconciliation setCreatedWithSecondsPrecision( Date theDate) {
827                myCreated = new DateTimeDt(theDate); 
828                return this; 
829        }
830
831 
832        /**
833         * Gets the value(s) for <b>period</b> ().
834         * creating it if it does
835         * not exist. Will not return <code>null</code>.
836         *
837     * <p>
838     * <b>Definition:</b>
839     * The period of time for which payments have been gathered into this bulk payment for settlement.
840     * </p> 
841         */
842        public PeriodDt getPeriod() {  
843                if (myPeriod == null) {
844                        myPeriod = new PeriodDt();
845                }
846                return myPeriod;
847        }
848
849        /**
850         * Sets the value(s) for <b>period</b> ()
851         *
852     * <p>
853     * <b>Definition:</b>
854     * The period of time for which payments have been gathered into this bulk payment for settlement.
855     * </p> 
856         */
857        public PaymentReconciliation setPeriod(PeriodDt theValue) {
858                myPeriod = theValue;
859                return this;
860        }
861        
862        
863
864  
865        /**
866         * Gets the value(s) for <b>organization</b> ().
867         * creating it if it does
868         * not exist. Will not return <code>null</code>.
869         *
870     * <p>
871     * <b>Definition:</b>
872     * The Insurer who produced this adjudicated response.
873     * </p> 
874         */
875        public ResourceReferenceDt getOrganization() {  
876                if (myOrganization == null) {
877                        myOrganization = new ResourceReferenceDt();
878                }
879                return myOrganization;
880        }
881
882        /**
883         * Sets the value(s) for <b>organization</b> ()
884         *
885     * <p>
886     * <b>Definition:</b>
887     * The Insurer who produced this adjudicated response.
888     * </p> 
889         */
890        public PaymentReconciliation setOrganization(ResourceReferenceDt theValue) {
891                myOrganization = theValue;
892                return this;
893        }
894        
895        
896
897  
898        /**
899         * Gets the value(s) for <b>requestProvider</b> ().
900         * creating it if it does
901         * not exist. Will not return <code>null</code>.
902         *
903     * <p>
904     * <b>Definition:</b>
905     * The practitioner who is responsible for the services rendered to the patient.
906     * </p> 
907         */
908        public ResourceReferenceDt getRequestProvider() {  
909                if (myRequestProvider == null) {
910                        myRequestProvider = new ResourceReferenceDt();
911                }
912                return myRequestProvider;
913        }
914
915        /**
916         * Sets the value(s) for <b>requestProvider</b> ()
917         *
918     * <p>
919     * <b>Definition:</b>
920     * The practitioner who is responsible for the services rendered to the patient.
921     * </p> 
922         */
923        public PaymentReconciliation setRequestProvider(ResourceReferenceDt theValue) {
924                myRequestProvider = theValue;
925                return this;
926        }
927        
928        
929
930  
931        /**
932         * Gets the value(s) for <b>requestOrganization</b> ().
933         * creating it if it does
934         * not exist. Will not return <code>null</code>.
935         *
936     * <p>
937     * <b>Definition:</b>
938     * The organization which is responsible for the services rendered to the patient.
939     * </p> 
940         */
941        public ResourceReferenceDt getRequestOrganization() {  
942                if (myRequestOrganization == null) {
943                        myRequestOrganization = new ResourceReferenceDt();
944                }
945                return myRequestOrganization;
946        }
947
948        /**
949         * Sets the value(s) for <b>requestOrganization</b> ()
950         *
951     * <p>
952     * <b>Definition:</b>
953     * The organization which is responsible for the services rendered to the patient.
954     * </p> 
955         */
956        public PaymentReconciliation setRequestOrganization(ResourceReferenceDt theValue) {
957                myRequestOrganization = theValue;
958                return this;
959        }
960        
961        
962
963  
964        /**
965         * Gets the value(s) for <b>detail</b> ().
966         * creating it if it does
967         * not exist. Will not return <code>null</code>.
968         *
969     * <p>
970     * <b>Definition:</b>
971     * List of individual settlement amounts and the corresponding transaction.
972     * </p> 
973         */
974        public java.util.List<Detail> getDetail() {  
975                if (myDetail == null) {
976                        myDetail = new java.util.ArrayList<Detail>();
977                }
978                return myDetail;
979        }
980
981        /**
982         * Sets the value(s) for <b>detail</b> ()
983         *
984     * <p>
985     * <b>Definition:</b>
986     * List of individual settlement amounts and the corresponding transaction.
987     * </p> 
988         */
989        public PaymentReconciliation setDetail(java.util.List<Detail> theValue) {
990                myDetail = theValue;
991                return this;
992        }
993        
994        
995
996        /**
997         * Adds and returns a new value for <b>detail</b> ()
998         *
999     * <p>
1000     * <b>Definition:</b>
1001     * List of individual settlement amounts and the corresponding transaction.
1002     * </p> 
1003         */
1004        public Detail addDetail() {
1005                Detail newType = new Detail();
1006                getDetail().add(newType);
1007                return newType; 
1008        }
1009
1010        /**
1011         * Adds a given new value for <b>detail</b> ()
1012         *
1013         * <p>
1014         * <b>Definition:</b>
1015         * List of individual settlement amounts and the corresponding transaction.
1016         * </p>
1017         * @param theValue The detail to add (must not be <code>null</code>)
1018         */
1019        public PaymentReconciliation addDetail(Detail theValue) {
1020                if (theValue == null) {
1021                        throw new NullPointerException("theValue must not be null");
1022                }
1023                getDetail().add(theValue);
1024                return this;
1025        }
1026
1027        /**
1028         * Gets the first repetition for <b>detail</b> (),
1029         * creating it if it does not already exist.
1030         *
1031     * <p>
1032     * <b>Definition:</b>
1033     * List of individual settlement amounts and the corresponding transaction.
1034     * </p> 
1035         */
1036        public Detail getDetailFirstRep() {
1037                if (getDetail().isEmpty()) {
1038                        return addDetail();
1039                }
1040                return getDetail().get(0); 
1041        }
1042  
1043        /**
1044         * Gets the value(s) for <b>form</b> ().
1045         * creating it if it does
1046         * not exist. Will not return <code>null</code>.
1047         *
1048     * <p>
1049     * <b>Definition:</b>
1050     * The form to be used for printing the content.
1051     * </p> 
1052         */
1053        public CodingDt getForm() {  
1054                if (myForm == null) {
1055                        myForm = new CodingDt();
1056                }
1057                return myForm;
1058        }
1059
1060        /**
1061         * Sets the value(s) for <b>form</b> ()
1062         *
1063     * <p>
1064     * <b>Definition:</b>
1065     * The form to be used for printing the content.
1066     * </p> 
1067         */
1068        public PaymentReconciliation setForm(CodingDt theValue) {
1069                myForm = theValue;
1070                return this;
1071        }
1072        
1073        
1074
1075  
1076        /**
1077         * Gets the value(s) for <b>total</b> ().
1078         * creating it if it does
1079         * not exist. Will not return <code>null</code>.
1080         *
1081     * <p>
1082     * <b>Definition:</b>
1083     * Total payment amount.
1084     * </p> 
1085         */
1086        public MoneyDt getTotal() {  
1087                if (myTotal == null) {
1088                        myTotal = new MoneyDt();
1089                }
1090                return myTotal;
1091        }
1092
1093        /**
1094         * Sets the value(s) for <b>total</b> ()
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * Total payment amount.
1099     * </p> 
1100         */
1101        public PaymentReconciliation setTotal(MoneyDt theValue) {
1102                myTotal = theValue;
1103                return this;
1104        }
1105        
1106        
1107
1108  
1109        /**
1110         * Gets the value(s) for <b>note</b> ().
1111         * creating it if it does
1112         * not exist. Will not return <code>null</code>.
1113         *
1114     * <p>
1115     * <b>Definition:</b>
1116     * Suite of notes
1117     * </p> 
1118         */
1119        public java.util.List<Note> getNote() {  
1120                if (myNote == null) {
1121                        myNote = new java.util.ArrayList<Note>();
1122                }
1123                return myNote;
1124        }
1125
1126        /**
1127         * Sets the value(s) for <b>note</b> ()
1128         *
1129     * <p>
1130     * <b>Definition:</b>
1131     * Suite of notes
1132     * </p> 
1133         */
1134        public PaymentReconciliation setNote(java.util.List<Note> theValue) {
1135                myNote = theValue;
1136                return this;
1137        }
1138        
1139        
1140
1141        /**
1142         * Adds and returns a new value for <b>note</b> ()
1143         *
1144     * <p>
1145     * <b>Definition:</b>
1146     * Suite of notes
1147     * </p> 
1148         */
1149        public Note addNote() {
1150                Note newType = new Note();
1151                getNote().add(newType);
1152                return newType; 
1153        }
1154
1155        /**
1156         * Adds a given new value for <b>note</b> ()
1157         *
1158         * <p>
1159         * <b>Definition:</b>
1160         * Suite of notes
1161         * </p>
1162         * @param theValue The note to add (must not be <code>null</code>)
1163         */
1164        public PaymentReconciliation addNote(Note theValue) {
1165                if (theValue == null) {
1166                        throw new NullPointerException("theValue must not be null");
1167                }
1168                getNote().add(theValue);
1169                return this;
1170        }
1171
1172        /**
1173         * Gets the first repetition for <b>note</b> (),
1174         * creating it if it does not already exist.
1175         *
1176     * <p>
1177     * <b>Definition:</b>
1178     * Suite of notes
1179     * </p> 
1180         */
1181        public Note getNoteFirstRep() {
1182                if (getNote().isEmpty()) {
1183                        return addNote();
1184                }
1185                return getNote().get(0); 
1186        }
1187  
1188        /**
1189         * Block class for child element: <b>PaymentReconciliation.detail</b> ()
1190         *
1191     * <p>
1192     * <b>Definition:</b>
1193     * List of individual settlement amounts and the corresponding transaction.
1194     * </p> 
1195         */
1196        @Block()        
1197        public static class Detail 
1198            extends  BaseIdentifiableElement  
1199            implements IResourceBlock {
1200        
1201        @Child(name="type", type=CodingDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
1202        @Description(
1203                shortDefinition="",
1204                formalDefinition="Code to indicate the nature of the payment, adjustment, funds advance, etc."
1205        )
1206        private CodingDt myType;
1207        
1208        @Child(name="request", order=1, min=0, max=1, summary=false, modifier=false, type={
1209                IResource.class
1210        })
1211        @Description(
1212                shortDefinition="",
1213                formalDefinition="The claim or financial resource."
1214        )
1215        private ResourceReferenceDt myRequest;
1216        
1217        @Child(name="responce", order=2, min=0, max=1, summary=false, modifier=false, type={
1218                IResource.class
1219        })
1220        @Description(
1221                shortDefinition="",
1222                formalDefinition="The claim response resource."
1223        )
1224        private ResourceReferenceDt myResponce;
1225        
1226        @Child(name="submitter", order=3, min=0, max=1, summary=false, modifier=false, type={
1227                ca.uhn.fhir.model.dstu2.resource.Organization.class
1228        })
1229        @Description(
1230                shortDefinition="",
1231                formalDefinition="The Organization which submitted the invoice or financial transaction."
1232        )
1233        private ResourceReferenceDt mySubmitter;
1234        
1235        @Child(name="payee", order=4, min=0, max=1, summary=false, modifier=false, type={
1236                ca.uhn.fhir.model.dstu2.resource.Organization.class
1237        })
1238        @Description(
1239                shortDefinition="",
1240                formalDefinition="The organization which is receiving the payment."
1241        )
1242        private ResourceReferenceDt myPayee;
1243        
1244        @Child(name="date", type=DateDt.class, order=5, min=0, max=1, summary=false, modifier=false)    
1245        @Description(
1246                shortDefinition="",
1247                formalDefinition="The date of the invoice or financial resource."
1248        )
1249        private DateDt myDate;
1250        
1251        @Child(name="amount", type=MoneyDt.class, order=6, min=0, max=1, summary=false, modifier=false) 
1252        @Description(
1253                shortDefinition="",
1254                formalDefinition="Amount paid for this detail."
1255        )
1256        private MoneyDt myAmount;
1257        
1258
1259        @Override
1260        public boolean isEmpty() {
1261                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myRequest,  myResponce,  mySubmitter,  myPayee,  myDate,  myAmount);
1262        }
1263        
1264        @Override
1265        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1266                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myRequest, myResponce, mySubmitter, myPayee, myDate, myAmount);
1267        }
1268
1269        /**
1270         * Gets the value(s) for <b>type</b> ().
1271         * creating it if it does
1272         * not exist. Will not return <code>null</code>.
1273         *
1274     * <p>
1275     * <b>Definition:</b>
1276     * Code to indicate the nature of the payment, adjustment, funds advance, etc.
1277     * </p> 
1278         */
1279        public CodingDt getType() {  
1280                if (myType == null) {
1281                        myType = new CodingDt();
1282                }
1283                return myType;
1284        }
1285
1286        /**
1287         * Sets the value(s) for <b>type</b> ()
1288         *
1289     * <p>
1290     * <b>Definition:</b>
1291     * Code to indicate the nature of the payment, adjustment, funds advance, etc.
1292     * </p> 
1293         */
1294        public Detail setType(CodingDt theValue) {
1295                myType = theValue;
1296                return this;
1297        }
1298        
1299        
1300
1301  
1302        /**
1303         * Gets the value(s) for <b>request</b> ().
1304         * creating it if it does
1305         * not exist. Will not return <code>null</code>.
1306         *
1307     * <p>
1308     * <b>Definition:</b>
1309     * The claim or financial resource.
1310     * </p> 
1311         */
1312        public ResourceReferenceDt getRequest() {  
1313                if (myRequest == null) {
1314                        myRequest = new ResourceReferenceDt();
1315                }
1316                return myRequest;
1317        }
1318
1319        /**
1320         * Sets the value(s) for <b>request</b> ()
1321         *
1322     * <p>
1323     * <b>Definition:</b>
1324     * The claim or financial resource.
1325     * </p> 
1326         */
1327        public Detail setRequest(ResourceReferenceDt theValue) {
1328                myRequest = theValue;
1329                return this;
1330        }
1331        
1332        
1333
1334  
1335        /**
1336         * Gets the value(s) for <b>responce</b> ().
1337         * creating it if it does
1338         * not exist. Will not return <code>null</code>.
1339         *
1340     * <p>
1341     * <b>Definition:</b>
1342     * The claim response resource.
1343     * </p> 
1344         */
1345        public ResourceReferenceDt getResponce() {  
1346                if (myResponce == null) {
1347                        myResponce = new ResourceReferenceDt();
1348                }
1349                return myResponce;
1350        }
1351
1352        /**
1353         * Sets the value(s) for <b>responce</b> ()
1354         *
1355     * <p>
1356     * <b>Definition:</b>
1357     * The claim response resource.
1358     * </p> 
1359         */
1360        public Detail setResponce(ResourceReferenceDt theValue) {
1361                myResponce = theValue;
1362                return this;
1363        }
1364        
1365        
1366
1367  
1368        /**
1369         * Gets the value(s) for <b>submitter</b> ().
1370         * creating it if it does
1371         * not exist. Will not return <code>null</code>.
1372         *
1373     * <p>
1374     * <b>Definition:</b>
1375     * The Organization which submitted the invoice or financial transaction.
1376     * </p> 
1377         */
1378        public ResourceReferenceDt getSubmitter() {  
1379                if (mySubmitter == null) {
1380                        mySubmitter = new ResourceReferenceDt();
1381                }
1382                return mySubmitter;
1383        }
1384
1385        /**
1386         * Sets the value(s) for <b>submitter</b> ()
1387         *
1388     * <p>
1389     * <b>Definition:</b>
1390     * The Organization which submitted the invoice or financial transaction.
1391     * </p> 
1392         */
1393        public Detail setSubmitter(ResourceReferenceDt theValue) {
1394                mySubmitter = theValue;
1395                return this;
1396        }
1397        
1398        
1399
1400  
1401        /**
1402         * Gets the value(s) for <b>payee</b> ().
1403         * creating it if it does
1404         * not exist. Will not return <code>null</code>.
1405         *
1406     * <p>
1407     * <b>Definition:</b>
1408     * The organization which is receiving the payment.
1409     * </p> 
1410         */
1411        public ResourceReferenceDt getPayee() {  
1412                if (myPayee == null) {
1413                        myPayee = new ResourceReferenceDt();
1414                }
1415                return myPayee;
1416        }
1417
1418        /**
1419         * Sets the value(s) for <b>payee</b> ()
1420         *
1421     * <p>
1422     * <b>Definition:</b>
1423     * The organization which is receiving the payment.
1424     * </p> 
1425         */
1426        public Detail setPayee(ResourceReferenceDt theValue) {
1427                myPayee = theValue;
1428                return this;
1429        }
1430        
1431        
1432
1433  
1434        /**
1435         * Gets the value(s) for <b>date</b> ().
1436         * creating it if it does
1437         * not exist. Will not return <code>null</code>.
1438         *
1439     * <p>
1440     * <b>Definition:</b>
1441     * The date of the invoice or financial resource.
1442     * </p> 
1443         */
1444        public DateDt getDateElement() {  
1445                if (myDate == null) {
1446                        myDate = new DateDt();
1447                }
1448                return myDate;
1449        }
1450
1451        
1452        /**
1453         * Gets the value(s) for <b>date</b> ().
1454         * creating it if it does
1455         * not exist. This method may return <code>null</code>.
1456         *
1457     * <p>
1458     * <b>Definition:</b>
1459     * The date of the invoice or financial resource.
1460     * </p> 
1461         */
1462        public Date getDate() {  
1463                return getDateElement().getValue();
1464        }
1465
1466        /**
1467         * Sets the value(s) for <b>date</b> ()
1468         *
1469     * <p>
1470     * <b>Definition:</b>
1471     * The date of the invoice or financial resource.
1472     * </p> 
1473         */
1474        public Detail setDate(DateDt theValue) {
1475                myDate = theValue;
1476                return this;
1477        }
1478        
1479        
1480
1481        /**
1482         * Sets the value for <b>date</b> ()
1483         *
1484     * <p>
1485     * <b>Definition:</b>
1486     * The date of the invoice or financial resource.
1487     * </p> 
1488         */
1489        public Detail setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1490                myDate = new DateDt(theDate, thePrecision); 
1491                return this; 
1492        }
1493
1494        /**
1495         * Sets the value for <b>date</b> ()
1496         *
1497     * <p>
1498     * <b>Definition:</b>
1499     * The date of the invoice or financial resource.
1500     * </p> 
1501         */
1502        public Detail setDateWithDayPrecision( Date theDate) {
1503                myDate = new DateDt(theDate); 
1504                return this; 
1505        }
1506
1507 
1508        /**
1509         * Gets the value(s) for <b>amount</b> ().
1510         * creating it if it does
1511         * not exist. Will not return <code>null</code>.
1512         *
1513     * <p>
1514     * <b>Definition:</b>
1515     * Amount paid for this detail.
1516     * </p> 
1517         */
1518        public MoneyDt getAmount() {  
1519                if (myAmount == null) {
1520                        myAmount = new MoneyDt();
1521                }
1522                return myAmount;
1523        }
1524
1525        /**
1526         * Sets the value(s) for <b>amount</b> ()
1527         *
1528     * <p>
1529     * <b>Definition:</b>
1530     * Amount paid for this detail.
1531     * </p> 
1532         */
1533        public Detail setAmount(MoneyDt theValue) {
1534                myAmount = theValue;
1535                return this;
1536        }
1537        
1538        
1539
1540  
1541
1542
1543        }
1544
1545
1546        /**
1547         * Block class for child element: <b>PaymentReconciliation.note</b> ()
1548         *
1549     * <p>
1550     * <b>Definition:</b>
1551     * Suite of notes
1552     * </p> 
1553         */
1554        @Block()        
1555        public static class Note 
1556            extends  BaseIdentifiableElement  
1557            implements IResourceBlock {
1558        
1559        @Child(name="type", type=CodingDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1560        @Description(
1561                shortDefinition="",
1562                formalDefinition="The note purpose: Print/Display."
1563        )
1564        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/note-type")
1565        private CodingDt myType;
1566        
1567        @Child(name="text", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)  
1568        @Description(
1569                shortDefinition="",
1570                formalDefinition="The note text."
1571        )
1572        private StringDt myText;
1573        
1574
1575        @Override
1576        public boolean isEmpty() {
1577                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myText);
1578        }
1579        
1580        @Override
1581        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1582                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myText);
1583        }
1584
1585        /**
1586         * Gets the value(s) for <b>type</b> ().
1587         * creating it if it does
1588         * not exist. Will not return <code>null</code>.
1589         *
1590     * <p>
1591     * <b>Definition:</b>
1592     * The note purpose: Print/Display.
1593     * </p> 
1594         */
1595        public CodingDt getType() {  
1596                if (myType == null) {
1597                        myType = new CodingDt();
1598                }
1599                return myType;
1600        }
1601
1602        /**
1603         * Sets the value(s) for <b>type</b> ()
1604         *
1605     * <p>
1606     * <b>Definition:</b>
1607     * The note purpose: Print/Display.
1608     * </p> 
1609         */
1610        public Note setType(CodingDt theValue) {
1611                myType = theValue;
1612                return this;
1613        }
1614        
1615        
1616
1617  
1618        /**
1619         * Gets the value(s) for <b>text</b> ().
1620         * creating it if it does
1621         * not exist. Will not return <code>null</code>.
1622         *
1623     * <p>
1624     * <b>Definition:</b>
1625     * The note text.
1626     * </p> 
1627         */
1628        public StringDt getTextElement() {  
1629                if (myText == null) {
1630                        myText = new StringDt();
1631                }
1632                return myText;
1633        }
1634
1635        
1636        /**
1637         * Gets the value(s) for <b>text</b> ().
1638         * creating it if it does
1639         * not exist. This method may return <code>null</code>.
1640         *
1641     * <p>
1642     * <b>Definition:</b>
1643     * The note text.
1644     * </p> 
1645         */
1646        public String getText() {  
1647                return getTextElement().getValue();
1648        }
1649
1650        /**
1651         * Sets the value(s) for <b>text</b> ()
1652         *
1653     * <p>
1654     * <b>Definition:</b>
1655     * The note text.
1656     * </p> 
1657         */
1658        public Note setText(StringDt theValue) {
1659                myText = theValue;
1660                return this;
1661        }
1662        
1663        
1664
1665        /**
1666         * Sets the value for <b>text</b> ()
1667         *
1668     * <p>
1669     * <b>Definition:</b>
1670     * The note text.
1671     * </p> 
1672         */
1673        public Note setText( String theString) {
1674                myText = new StringDt(theString); 
1675                return this; 
1676        }
1677
1678 
1679
1680
1681        }
1682
1683
1684
1685
1686    @Override
1687    public String getResourceName() {
1688        return "PaymentReconciliation";
1689    }
1690    
1691    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1692        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1693    }
1694
1695
1696}