001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017package ca.uhn.fhir.model.dstu2.resource;
018
019import java.math.BigDecimal;
020import java.net.URI;
021import java.util.*;
022import ca.uhn.fhir.model.api.*;
023import ca.uhn.fhir.model.api.annotation.*;
024import ca.uhn.fhir.rest.gclient.*;
025
026import ca.uhn.fhir.model.dstu2.valueset.AccountStatusEnum;
027import ca.uhn.fhir.model.dstu2.valueset.ActionListEnum;
028import ca.uhn.fhir.model.dstu2.composite.AddressDt;
029import ca.uhn.fhir.model.dstu2.valueset.AdjudicationCodesEnum;
030import ca.uhn.fhir.model.dstu2.valueset.AdjudicationErrorCodesEnum;
031import ca.uhn.fhir.model.dstu2.valueset.AdjustmentReasonCodesEnum;
032import ca.uhn.fhir.model.dstu2.valueset.AdministrativeGenderEnum;
033import ca.uhn.fhir.model.dstu2.valueset.AdmitSourceEnum;
034import ca.uhn.fhir.model.dstu2.resource.AllergyIntolerance;
035import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCategoryEnum;
036import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCertaintyEnum;
037import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceCriticalityEnum;
038import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceSeverityEnum;
039import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceStatusEnum;
040import ca.uhn.fhir.model.dstu2.valueset.AllergyIntoleranceTypeEnum;
041import ca.uhn.fhir.model.dstu2.valueset.AnimalSpeciesEnum;
042import ca.uhn.fhir.model.dstu2.composite.AnnotationDt;
043import ca.uhn.fhir.model.dstu2.valueset.AnswerFormatEnum;
044import ca.uhn.fhir.model.dstu2.resource.Appointment;
045import ca.uhn.fhir.model.dstu2.valueset.AppointmentStatusEnum;
046import ca.uhn.fhir.model.dstu2.valueset.AssertionDirectionTypeEnum;
047import ca.uhn.fhir.model.dstu2.valueset.AssertionOperatorTypeEnum;
048import ca.uhn.fhir.model.dstu2.valueset.AssertionResponseTypesEnum;
049import ca.uhn.fhir.model.dstu2.composite.AttachmentDt;
050import ca.uhn.fhir.model.dstu2.valueset.AuditEventActionEnum;
051import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectLifecycleEnum;
052import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectRoleEnum;
053import ca.uhn.fhir.model.dstu2.valueset.AuditEventObjectTypeEnum;
054import ca.uhn.fhir.model.dstu2.valueset.AuditEventOutcomeEnum;
055import ca.uhn.fhir.model.dstu2.valueset.AuditEventParticipantNetworkTypeEnum;
056import ca.uhn.fhir.model.dstu2.valueset.AuditEventSourceTypeEnum;
057import ca.uhn.fhir.model.dstu2.valueset.BindingStrengthEnum;
058import ca.uhn.fhir.model.dstu2.resource.BodySite;
059import ca.uhn.fhir.model.dstu2.valueset.BundleTypeEnum;
060import ca.uhn.fhir.model.dstu2.resource.CarePlan;
061import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityCategoryEnum;
062import ca.uhn.fhir.model.dstu2.valueset.CarePlanActivityStatusEnum;
063import ca.uhn.fhir.model.dstu2.valueset.CarePlanRelationshipEnum;
064import ca.uhn.fhir.model.dstu2.valueset.CarePlanStatusEnum;
065import ca.uhn.fhir.model.dstu2.resource.Claim;
066import ca.uhn.fhir.model.dstu2.resource.ClaimResponse;
067import ca.uhn.fhir.model.dstu2.valueset.ClaimTypeEnum;
068import ca.uhn.fhir.model.dstu2.resource.ClinicalImpression;
069import ca.uhn.fhir.model.dstu2.valueset.ClinicalImpressionStatusEnum;
070import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
071import ca.uhn.fhir.model.dstu2.composite.CodingDt;
072import ca.uhn.fhir.model.dstu2.resource.CommunicationRequest;
073import ca.uhn.fhir.model.dstu2.valueset.CommunicationRequestStatusEnum;
074import ca.uhn.fhir.model.dstu2.valueset.CommunicationStatusEnum;
075import ca.uhn.fhir.model.dstu2.resource.Composition;
076import ca.uhn.fhir.model.dstu2.valueset.CompositionAttestationModeEnum;
077import ca.uhn.fhir.model.dstu2.valueset.CompositionStatusEnum;
078import ca.uhn.fhir.model.dstu2.valueset.ConceptMapEquivalenceEnum;
079import ca.uhn.fhir.model.dstu2.resource.Condition;
080import ca.uhn.fhir.model.dstu2.valueset.ConditionCategoryCodesEnum;
081import ca.uhn.fhir.model.dstu2.valueset.ConditionClinicalStatusCodesEnum;
082import ca.uhn.fhir.model.dstu2.valueset.ConditionVerificationStatusEnum;
083import ca.uhn.fhir.model.dstu2.valueset.ConditionalDeleteStatusEnum;
084import ca.uhn.fhir.model.dstu2.valueset.ConditionsCodesEnum;
085import ca.uhn.fhir.model.dstu2.resource.Conformance;
086import ca.uhn.fhir.model.dstu2.valueset.ConformanceEventModeEnum;
087import ca.uhn.fhir.model.dstu2.valueset.ConformanceResourceStatusEnum;
088import ca.uhn.fhir.model.dstu2.valueset.ConformanceStatementKindEnum;
089import ca.uhn.fhir.model.dstu2.composite.ContactPointDt;
090import ca.uhn.fhir.model.dstu2.valueset.ContentTypeEnum;
091import ca.uhn.fhir.model.dstu2.resource.Contract;
092import ca.uhn.fhir.model.dstu2.valueset.ContractActionCodesEnum;
093import ca.uhn.fhir.model.dstu2.valueset.ContractActorRoleCodesEnum;
094import ca.uhn.fhir.model.dstu2.valueset.ContractSubtypeCodesEnum;
095import ca.uhn.fhir.model.dstu2.valueset.ContractTermTypeCodesEnum;
096import ca.uhn.fhir.model.dstu2.valueset.ContractTypeCodesEnum;
097import ca.uhn.fhir.model.dstu2.resource.Coverage;
098import ca.uhn.fhir.model.dstu2.valueset.DataElementStringencyEnum;
099import ca.uhn.fhir.model.dstu2.valueset.DaysOfWeekEnum;
100import ca.uhn.fhir.model.dstu2.valueset.DetectedIssueSeverityEnum;
101import ca.uhn.fhir.model.dstu2.resource.Device;
102import ca.uhn.fhir.model.dstu2.resource.DeviceComponent;
103import ca.uhn.fhir.model.dstu2.resource.DeviceMetric;
104import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationStateEnum;
105import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCalibrationTypeEnum;
106import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricCategoryEnum;
107import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricColorEnum;
108import ca.uhn.fhir.model.dstu2.valueset.DeviceMetricOperationalStatusEnum;
109import ca.uhn.fhir.model.dstu2.valueset.DeviceStatusEnum;
110import ca.uhn.fhir.model.dstu2.resource.DeviceUseRequest;
111import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestPriorityEnum;
112import ca.uhn.fhir.model.dstu2.valueset.DeviceUseRequestStatusEnum;
113import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
114import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderPriorityEnum;
115import ca.uhn.fhir.model.dstu2.valueset.DiagnosticOrderStatusEnum;
116import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
117import ca.uhn.fhir.model.dstu2.valueset.DiagnosticReportStatusEnum;
118import ca.uhn.fhir.model.dstu2.valueset.DigitalMediaTypeEnum;
119import ca.uhn.fhir.model.dstu2.valueset.DocumentModeEnum;
120import ca.uhn.fhir.model.dstu2.resource.DocumentReference;
121import ca.uhn.fhir.model.dstu2.valueset.DocumentReferenceStatusEnum;
122import ca.uhn.fhir.model.dstu2.valueset.DocumentRelationshipTypeEnum;
123import ca.uhn.fhir.model.dstu2.composite.ElementDefinitionDt;
124import ca.uhn.fhir.model.dstu2.resource.EligibilityRequest;
125import ca.uhn.fhir.model.dstu2.resource.Encounter;
126import ca.uhn.fhir.model.dstu2.valueset.EncounterClassEnum;
127import ca.uhn.fhir.model.dstu2.valueset.EncounterLocationStatusEnum;
128import ca.uhn.fhir.model.dstu2.valueset.EncounterStateEnum;
129import ca.uhn.fhir.model.dstu2.valueset.EncounterTypeEnum;
130import ca.uhn.fhir.model.dstu2.resource.EnrollmentRequest;
131import ca.uhn.fhir.model.dstu2.valueset.EnteralFormulaTypeCodesEnum;
132import ca.uhn.fhir.model.dstu2.resource.EpisodeOfCare;
133import ca.uhn.fhir.model.dstu2.valueset.EpisodeOfCareStatusEnum;
134import ca.uhn.fhir.model.dstu2.valueset.ExceptionCodesEnum;
135import ca.uhn.fhir.model.dstu2.valueset.ExtensionContextEnum;
136import ca.uhn.fhir.model.dstu2.valueset.FamilyHistoryStatusEnum;
137import ca.uhn.fhir.model.dstu2.resource.FamilyMemberHistory;
138import ca.uhn.fhir.model.dstu2.valueset.FilterOperatorEnum;
139import ca.uhn.fhir.model.dstu2.valueset.FlagCategoryCodesEnum;
140import ca.uhn.fhir.model.dstu2.valueset.FlagStatusEnum;
141import ca.uhn.fhir.model.dstu2.valueset.FluidConsistencyTypeCodesEnum;
142import ca.uhn.fhir.model.dstu2.resource.Goal;
143import ca.uhn.fhir.model.dstu2.valueset.GoalCategoryEnum;
144import ca.uhn.fhir.model.dstu2.valueset.GoalPriorityEnum;
145import ca.uhn.fhir.model.dstu2.valueset.GoalStartEventEnum;
146import ca.uhn.fhir.model.dstu2.valueset.GoalStatusEnum;
147import ca.uhn.fhir.model.dstu2.valueset.GoalStatusReasonEnum;
148import ca.uhn.fhir.model.dstu2.resource.Group;
149import ca.uhn.fhir.model.dstu2.valueset.GroupTypeEnum;
150import ca.uhn.fhir.model.dstu2.valueset.GuideDependencyTypeEnum;
151import ca.uhn.fhir.model.dstu2.valueset.GuidePageKindEnum;
152import ca.uhn.fhir.model.dstu2.valueset.GuideResourcePurposeEnum;
153import ca.uhn.fhir.model.dstu2.valueset.HTTPVerbEnum;
154import ca.uhn.fhir.model.dstu2.resource.HealthcareService;
155import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
156import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
157import ca.uhn.fhir.model.dstu2.valueset.IdentifierTypeCodesEnum;
158import ca.uhn.fhir.model.dstu2.valueset.IdentityAssuranceLevelEnum;
159import ca.uhn.fhir.model.dstu2.resource.ImagingObjectSelection;
160import ca.uhn.fhir.model.dstu2.resource.ImagingStudy;
161import ca.uhn.fhir.model.dstu2.resource.Immunization;
162import ca.uhn.fhir.model.dstu2.valueset.ImmunizationReasonCodesEnum;
163import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationDateCriterionCodesEnum;
164import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRecommendationStatusCodesEnum;
165import ca.uhn.fhir.model.dstu2.valueset.ImmunizationRouteCodesEnum;
166import ca.uhn.fhir.model.dstu2.valueset.InstanceAvailabilityEnum;
167import ca.uhn.fhir.model.dstu2.valueset.InterventionCodesEnum;
168import ca.uhn.fhir.model.dstu2.valueset.IssueSeverityEnum;
169import ca.uhn.fhir.model.dstu2.valueset.IssueTypeEnum;
170import ca.uhn.fhir.model.dstu2.valueset.KOStitleEnum;
171import ca.uhn.fhir.model.dstu2.valueset.LateralityEnum;
172import ca.uhn.fhir.model.dstu2.valueset.LinkTypeEnum;
173import ca.uhn.fhir.model.dstu2.valueset.ListModeEnum;
174import ca.uhn.fhir.model.dstu2.valueset.ListOrderCodesEnum;
175import ca.uhn.fhir.model.dstu2.valueset.ListStatusEnum;
176import ca.uhn.fhir.model.dstu2.resource.Location;
177import ca.uhn.fhir.model.dstu2.valueset.LocationModeEnum;
178import ca.uhn.fhir.model.dstu2.valueset.LocationStatusEnum;
179import ca.uhn.fhir.model.dstu2.valueset.LocationTypeEnum;
180import ca.uhn.fhir.model.dstu2.valueset.MaritalStatusCodesEnum;
181import ca.uhn.fhir.model.dstu2.valueset.MeasmntPrincipleEnum;
182import ca.uhn.fhir.model.dstu2.resource.Media;
183import ca.uhn.fhir.model.dstu2.resource.Medication;
184import ca.uhn.fhir.model.dstu2.valueset.MedicationAdministrationStatusEnum;
185import ca.uhn.fhir.model.dstu2.valueset.MedicationDispenseStatusEnum;
186import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
187import ca.uhn.fhir.model.dstu2.valueset.MedicationOrderStatusEnum;
188import ca.uhn.fhir.model.dstu2.resource.MedicationStatement;
189import ca.uhn.fhir.model.dstu2.valueset.MedicationStatementStatusEnum;
190import ca.uhn.fhir.model.dstu2.valueset.MessageEventEnum;
191import ca.uhn.fhir.model.dstu2.valueset.MessageSignificanceCategoryEnum;
192import ca.uhn.fhir.model.dstu2.valueset.MessageTransportEnum;
193import ca.uhn.fhir.model.dstu2.resource.NamingSystem;
194import ca.uhn.fhir.model.dstu2.valueset.NamingSystemIdentifierTypeEnum;
195import ca.uhn.fhir.model.dstu2.valueset.NamingSystemTypeEnum;
196import ca.uhn.fhir.model.dstu2.valueset.NoteTypeEnum;
197import ca.uhn.fhir.model.dstu2.valueset.NutrientModifierCodesEnum;
198import ca.uhn.fhir.model.dstu2.resource.NutritionOrder;
199import ca.uhn.fhir.model.dstu2.valueset.NutritionOrderStatusEnum;
200import ca.uhn.fhir.model.dstu2.resource.Observation;
201import ca.uhn.fhir.model.dstu2.valueset.ObservationCategoryCodesEnum;
202import ca.uhn.fhir.model.dstu2.valueset.ObservationRelationshipTypeEnum;
203import ca.uhn.fhir.model.dstu2.valueset.ObservationStatusEnum;
204import ca.uhn.fhir.model.dstu2.resource.OperationDefinition;
205import ca.uhn.fhir.model.dstu2.valueset.OperationKindEnum;
206import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
207import ca.uhn.fhir.model.dstu2.valueset.OperationParameterUseEnum;
208import ca.uhn.fhir.model.dstu2.resource.Order;
209import ca.uhn.fhir.model.dstu2.valueset.OrderStatusEnum;
210import ca.uhn.fhir.model.dstu2.resource.Organization;
211import ca.uhn.fhir.model.dstu2.valueset.OrganizationTypeEnum;
212import ca.uhn.fhir.model.dstu2.valueset.ParticipantRequiredEnum;
213import ca.uhn.fhir.model.dstu2.valueset.ParticipantStatusEnum;
214import ca.uhn.fhir.model.dstu2.valueset.ParticipantTypeEnum;
215import ca.uhn.fhir.model.dstu2.valueset.ParticipationStatusEnum;
216import ca.uhn.fhir.model.dstu2.resource.Patient;
217import ca.uhn.fhir.model.dstu2.valueset.PayeeTypeCodesEnum;
218import ca.uhn.fhir.model.dstu2.valueset.PaymentStatusCodesEnum;
219import ca.uhn.fhir.model.dstu2.valueset.PaymentTypeCodesEnum;
220import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
221import ca.uhn.fhir.model.dstu2.resource.Person;
222import ca.uhn.fhir.model.dstu2.resource.Practitioner;
223import ca.uhn.fhir.model.dstu2.valueset.PractitionerRoleEnum;
224import ca.uhn.fhir.model.dstu2.valueset.PractitionerSpecialtyEnum;
225import ca.uhn.fhir.model.dstu2.valueset.PriorityCodesEnum;
226import ca.uhn.fhir.model.dstu2.resource.Procedure;
227import ca.uhn.fhir.model.dstu2.resource.ProcedureRequest;
228import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestPriorityEnum;
229import ca.uhn.fhir.model.dstu2.valueset.ProcedureRequestStatusEnum;
230import ca.uhn.fhir.model.dstu2.valueset.ProcedureStatusEnum;
231import ca.uhn.fhir.model.dstu2.resource.ProcessRequest;
232import ca.uhn.fhir.model.dstu2.valueset.ProvenanceEntityRoleEnum;
233import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
234import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
235import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
236import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireResponseStatusEnum;
237import ca.uhn.fhir.model.dstu2.valueset.QuestionnaireStatusEnum;
238import ca.uhn.fhir.model.dstu2.composite.RangeDt;
239import ca.uhn.fhir.model.dstu2.composite.RatioDt;
240import ca.uhn.fhir.model.dstu2.valueset.ReferralMethodEnum;
241import ca.uhn.fhir.model.dstu2.resource.ReferralRequest;
242import ca.uhn.fhir.model.dstu2.valueset.ReferralStatusEnum;
243import ca.uhn.fhir.model.dstu2.resource.RelatedPerson;
244import ca.uhn.fhir.model.dstu2.valueset.RemittanceOutcomeEnum;
245import ca.uhn.fhir.model.dstu2.valueset.ResourceTypeEnum;
246import ca.uhn.fhir.model.dstu2.valueset.ResourceVersionPolicyEnum;
247import ca.uhn.fhir.model.dstu2.valueset.ResponseTypeEnum;
248import ca.uhn.fhir.model.dstu2.valueset.RestfulConformanceModeEnum;
249import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
250import ca.uhn.fhir.model.dstu2.resource.RiskAssessment;
251import ca.uhn.fhir.model.dstu2.valueset.RulesetCodesEnum;
252import ca.uhn.fhir.model.dstu2.composite.SampledDataDt;
253import ca.uhn.fhir.model.dstu2.resource.Schedule;
254import ca.uhn.fhir.model.dstu2.valueset.SearchEntryModeEnum;
255import ca.uhn.fhir.model.dstu2.valueset.SearchModifierCodeEnum;
256import ca.uhn.fhir.model.dstu2.valueset.SearchParamTypeEnum;
257import ca.uhn.fhir.model.dstu2.valueset.ServiceProvisionConditionsEnum;
258import ca.uhn.fhir.model.dstu2.composite.SignatureDt;
259import ca.uhn.fhir.model.dstu2.resource.Slot;
260import ca.uhn.fhir.model.dstu2.valueset.SlotStatusEnum;
261import ca.uhn.fhir.model.dstu2.resource.Specimen;
262import ca.uhn.fhir.model.dstu2.valueset.SpecimenCollectionMethodEnum;
263import ca.uhn.fhir.model.dstu2.valueset.SpecimenStatusEnum;
264import ca.uhn.fhir.model.dstu2.resource.StructureDefinition;
265import ca.uhn.fhir.model.dstu2.valueset.StructureDefinitionKindEnum;
266import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
267import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
268import ca.uhn.fhir.model.dstu2.valueset.SubscriptionTagEnum;
269import ca.uhn.fhir.model.dstu2.resource.Substance;
270import ca.uhn.fhir.model.dstu2.valueset.SubstanceCategoryCodesEnum;
271import ca.uhn.fhir.model.dstu2.valueset.SupplementTypeCodesEnum;
272import ca.uhn.fhir.model.dstu2.valueset.SupplyDeliveryStatusEnum;
273import ca.uhn.fhir.model.dstu2.resource.SupplyRequest;
274import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestReasonEnum;
275import ca.uhn.fhir.model.dstu2.valueset.SupplyRequestStatusEnum;
276import ca.uhn.fhir.model.dstu2.valueset.SurfaceCodesEnum;
277import ca.uhn.fhir.model.dstu2.valueset.SystemRestfulInteractionEnum;
278import ca.uhn.fhir.model.api.TemporalPrecisionEnum;
279import ca.uhn.fhir.model.dstu2.valueset.TextureModifiedFoodTypeCodesEnum;
280import ca.uhn.fhir.model.dstu2.valueset.TextureModifierCodesEnum;
281import ca.uhn.fhir.model.dstu2.composite.TimingDt;
282import ca.uhn.fhir.model.dstu2.valueset.TransactionModeEnum;
283import ca.uhn.fhir.model.dstu2.valueset.TypeRestfulInteractionEnum;
284import ca.uhn.fhir.model.dstu2.valueset.UDICodesEnum;
285import ca.uhn.fhir.model.dstu2.valueset.UnknownContentCodeEnum;
286import ca.uhn.fhir.model.dstu2.valueset.UseEnum;
287import ca.uhn.fhir.model.dstu2.resource.ValueSet;
288import ca.uhn.fhir.model.dstu2.valueset.VisionBaseEnum;
289import ca.uhn.fhir.model.dstu2.valueset.VisionEyesEnum;
290import ca.uhn.fhir.model.dstu2.resource.VisionPrescription;
291import ca.uhn.fhir.model.dstu2.valueset.XPathUsageTypeEnum;
292import ca.uhn.fhir.model.api.IResource;
293import ca.uhn.fhir.model.dstu2.composite.AgeDt;
294import ca.uhn.fhir.model.dstu2.composite.BoundCodeableConceptDt;
295import ca.uhn.fhir.model.dstu2.composite.DurationDt;
296import ca.uhn.fhir.model.dstu2.composite.MoneyDt;
297import ca.uhn.fhir.model.dstu2.composite.NarrativeDt;
298import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
299import ca.uhn.fhir.model.dstu2.composite.SimpleQuantityDt;
300import ca.uhn.fhir.model.primitive.Base64BinaryDt;
301import ca.uhn.fhir.model.primitive.BooleanDt;
302import ca.uhn.fhir.model.primitive.BoundCodeDt;
303import ca.uhn.fhir.model.primitive.CodeDt;
304import ca.uhn.fhir.model.primitive.DateDt;
305import ca.uhn.fhir.model.primitive.DateTimeDt;
306import ca.uhn.fhir.model.primitive.DecimalDt;
307import ca.uhn.fhir.model.primitive.IdDt;
308import ca.uhn.fhir.model.primitive.InstantDt;
309import ca.uhn.fhir.model.primitive.IntegerDt;
310import ca.uhn.fhir.model.primitive.OidDt;
311import ca.uhn.fhir.model.primitive.PositiveIntDt;
312import ca.uhn.fhir.model.primitive.StringDt;
313import ca.uhn.fhir.model.primitive.TimeDt;
314import ca.uhn.fhir.model.primitive.UnsignedIntDt;
315import ca.uhn.fhir.model.primitive.UriDt;
316
317
318/**
319 * HAPI/FHIR <b>PaymentReconciliation</b> Resource
320 * ()
321 *
322 * <p>
323 * <b>Definition:</b>
324 * This resource provides payment details and claim references supporting a bulk payment.
325 * </p> 
326 *
327 * <p>
328 * <b>Requirements:</b>
329 * 
330 * </p> 
331 *
332 * <p>
333 * <b>Profile Definition:</b>
334 * <a href="http://hl7.org/fhir/profiles/PaymentReconciliation">http://hl7.org/fhir/profiles/PaymentReconciliation</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="PaymentReconciliation", profile="http://hl7.org/fhir/profiles/PaymentReconciliation", id="paymentreconciliation")
339public class PaymentReconciliation extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>identifier</b>
344         * <p>
345         * Description: <b>The business identifier of the Explanation of Benefit</b><br>
346         * Type: <b>token</b><br>
347         * Path: <b>PaymentReconciliation.identifier</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="identifier", path="PaymentReconciliation.identifier", description="The business identifier of the Explanation of Benefit", type="token"  )
351        public static final String SP_IDENTIFIER = "identifier";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
355         * <p>
356         * Description: <b>The business identifier of the Explanation of Benefit</b><br>
357         * Type: <b>token</b><br>
358         * Path: <b>PaymentReconciliation.identifier</b><br>
359         * </p>
360         */
361        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
362
363
364
365        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
366        @Description(
367                shortDefinition="",
368                formalDefinition="The Response business identifier"
369        )
370        private java.util.List<IdentifierDt> myIdentifier;
371        
372        @Child(name="request", order=1, min=0, max=1, summary=false, modifier=false, type={
373                ca.uhn.fhir.model.dstu2.resource.ProcessRequest.class   })
374        @Description(
375                shortDefinition="",
376                formalDefinition="Original request resource reference"
377        )
378        private ResourceReferenceDt myRequest;
379        
380        @Child(name="outcome", type=CodeDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
381        @Description(
382                shortDefinition="",
383                formalDefinition="Transaction status: error, complete"
384        )
385        private BoundCodeDt<RemittanceOutcomeEnum> myOutcome;
386        
387        @Child(name="disposition", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
388        @Description(
389                shortDefinition="",
390                formalDefinition="A description of the status of the adjudication."
391        )
392        private StringDt myDisposition;
393        
394        @Child(name="ruleset", type=CodingDt.class, order=4, min=0, max=1, summary=false, modifier=false)       
395        @Description(
396                shortDefinition="",
397                formalDefinition="The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources."
398        )
399        private CodingDt myRuleset;
400        
401        @Child(name="originalRuleset", type=CodingDt.class, order=5, min=0, max=1, summary=false, modifier=false)       
402        @Description(
403                shortDefinition="",
404                formalDefinition="The style (standard) and version of the original material which was converted into this resource."
405        )
406        private CodingDt myOriginalRuleset;
407        
408        @Child(name="created", type=DateTimeDt.class, order=6, min=0, max=1, summary=false, modifier=false)     
409        @Description(
410                shortDefinition="",
411                formalDefinition="The date when the enclosed suite of services were performed or completed"
412        )
413        private DateTimeDt myCreated;
414        
415        @Child(name="period", type=PeriodDt.class, order=7, min=0, max=1, summary=false, modifier=false)        
416        @Description(
417                shortDefinition="",
418                formalDefinition="The period of time for which payments have been gathered into this bulk payment for settlement."
419        )
420        private PeriodDt myPeriod;
421        
422        @Child(name="organization", order=8, min=0, max=1, summary=false, modifier=false, type={
423                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
424        @Description(
425                shortDefinition="",
426                formalDefinition="The Insurer who produced this adjudicated response."
427        )
428        private ResourceReferenceDt myOrganization;
429        
430        @Child(name="requestProvider", order=9, min=0, max=1, summary=false, modifier=false, type={
431                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
432        @Description(
433                shortDefinition="",
434                formalDefinition="The practitioner who is responsible for the services rendered to the patient."
435        )
436        private ResourceReferenceDt myRequestProvider;
437        
438        @Child(name="requestOrganization", order=10, min=0, max=1, summary=false, modifier=false, type={
439                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
440        @Description(
441                shortDefinition="",
442                formalDefinition="The organization which is responsible for the services rendered to the patient."
443        )
444        private ResourceReferenceDt myRequestOrganization;
445        
446        @Child(name="detail", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
447        @Description(
448                shortDefinition="",
449                formalDefinition="List of individual settlement amounts and the corresponding transaction."
450        )
451        private java.util.List<Detail> myDetail;
452        
453        @Child(name="form", type=CodingDt.class, order=12, min=0, max=1, summary=false, modifier=false) 
454        @Description(
455                shortDefinition="",
456                formalDefinition="The form to be used for printing the content."
457        )
458        private CodingDt myForm;
459        
460        @Child(name="total", type=MoneyDt.class, order=13, min=1, max=1, summary=false, modifier=false) 
461        @Description(
462                shortDefinition="",
463                formalDefinition="Total payment amount."
464        )
465        private MoneyDt myTotal;
466        
467        @Child(name="note", order=14, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
468        @Description(
469                shortDefinition="",
470                formalDefinition="Suite of notes"
471        )
472        private java.util.List<Note> myNote;
473        
474
475        @Override
476        public boolean isEmpty() {
477                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myRequest,  myOutcome,  myDisposition,  myRuleset,  myOriginalRuleset,  myCreated,  myPeriod,  myOrganization,  myRequestProvider,  myRequestOrganization,  myDetail,  myForm,  myTotal,  myNote);
478        }
479        
480        @Override
481        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
482                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myRequest, myOutcome, myDisposition, myRuleset, myOriginalRuleset, myCreated, myPeriod, myOrganization, myRequestProvider, myRequestOrganization, myDetail, myForm, myTotal, myNote);
483        }
484
485        /**
486         * Gets the value(s) for <b>identifier</b> ().
487         * creating it if it does
488         * not exist. Will not return <code>null</code>.
489         *
490     * <p>
491     * <b>Definition:</b>
492     * The Response business identifier
493     * </p> 
494         */
495        public java.util.List<IdentifierDt> getIdentifier() {  
496                if (myIdentifier == null) {
497                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
498                }
499                return myIdentifier;
500        }
501
502        /**
503         * Sets the value(s) for <b>identifier</b> ()
504         *
505     * <p>
506     * <b>Definition:</b>
507     * The Response business identifier
508     * </p> 
509         */
510        public PaymentReconciliation setIdentifier(java.util.List<IdentifierDt> theValue) {
511                myIdentifier = theValue;
512                return this;
513        }
514        
515        
516
517        /**
518         * Adds and returns a new value for <b>identifier</b> ()
519         *
520     * <p>
521     * <b>Definition:</b>
522     * The Response business identifier
523     * </p> 
524         */
525        public IdentifierDt addIdentifier() {
526                IdentifierDt newType = new IdentifierDt();
527                getIdentifier().add(newType);
528                return newType; 
529        }
530
531        /**
532         * Adds a given new value for <b>identifier</b> ()
533         *
534         * <p>
535         * <b>Definition:</b>
536         * The Response business identifier
537         * </p>
538         * @param theValue The identifier to add (must not be <code>null</code>)
539         */
540        public PaymentReconciliation addIdentifier(IdentifierDt theValue) {
541                if (theValue == null) {
542                        throw new NullPointerException("theValue must not be null");
543                }
544                getIdentifier().add(theValue);
545                return this;
546        }
547
548        /**
549         * Gets the first repetition for <b>identifier</b> (),
550         * creating it if it does not already exist.
551         *
552     * <p>
553     * <b>Definition:</b>
554     * The Response business identifier
555     * </p> 
556         */
557        public IdentifierDt getIdentifierFirstRep() {
558                if (getIdentifier().isEmpty()) {
559                        return addIdentifier();
560                }
561                return getIdentifier().get(0); 
562        }
563  
564        /**
565         * Gets the value(s) for <b>request</b> ().
566         * creating it if it does
567         * not exist. Will not return <code>null</code>.
568         *
569     * <p>
570     * <b>Definition:</b>
571     * Original request resource reference
572     * </p> 
573         */
574        public ResourceReferenceDt getRequest() {  
575                if (myRequest == null) {
576                        myRequest = new ResourceReferenceDt();
577                }
578                return myRequest;
579        }
580
581        /**
582         * Sets the value(s) for <b>request</b> ()
583         *
584     * <p>
585     * <b>Definition:</b>
586     * Original request resource reference
587     * </p> 
588         */
589        public PaymentReconciliation setRequest(ResourceReferenceDt theValue) {
590                myRequest = theValue;
591                return this;
592        }
593        
594        
595
596  
597        /**
598         * Gets the value(s) for <b>outcome</b> ().
599         * creating it if it does
600         * not exist. Will not return <code>null</code>.
601         *
602     * <p>
603     * <b>Definition:</b>
604     * Transaction status: error, complete
605     * </p> 
606         */
607        public BoundCodeDt<RemittanceOutcomeEnum> getOutcomeElement() {  
608                if (myOutcome == null) {
609                        myOutcome = new BoundCodeDt<RemittanceOutcomeEnum>(RemittanceOutcomeEnum.VALUESET_BINDER);
610                }
611                return myOutcome;
612        }
613
614        
615        /**
616         * Gets the value(s) for <b>outcome</b> ().
617         * creating it if it does
618         * not exist. Will not return <code>null</code>.
619         *
620     * <p>
621     * <b>Definition:</b>
622     * Transaction status: error, complete
623     * </p> 
624         */
625        public String getOutcome() {  
626                return getOutcomeElement().getValue();
627        }
628
629        /**
630         * Sets the value(s) for <b>outcome</b> ()
631         *
632     * <p>
633     * <b>Definition:</b>
634     * Transaction status: error, complete
635     * </p> 
636         */
637        public PaymentReconciliation setOutcome(BoundCodeDt<RemittanceOutcomeEnum> theValue) {
638                myOutcome = theValue;
639                return this;
640        }
641        
642        
643
644        /**
645         * Sets the value(s) for <b>outcome</b> ()
646         *
647     * <p>
648     * <b>Definition:</b>
649     * Transaction status: error, complete
650     * </p> 
651         */
652        public PaymentReconciliation setOutcome(RemittanceOutcomeEnum theValue) {
653                setOutcome(new BoundCodeDt<RemittanceOutcomeEnum>(RemittanceOutcomeEnum.VALUESET_BINDER, theValue));
654                
655/*
656                getOutcomeElement().setValueAsEnum(theValue);
657*/
658                return this;
659        }
660
661  
662        /**
663         * Gets the value(s) for <b>disposition</b> ().
664         * creating it if it does
665         * not exist. Will not return <code>null</code>.
666         *
667     * <p>
668     * <b>Definition:</b>
669     * A description of the status of the adjudication.
670     * </p> 
671         */
672        public StringDt getDispositionElement() {  
673                if (myDisposition == null) {
674                        myDisposition = new StringDt();
675                }
676                return myDisposition;
677        }
678
679        
680        /**
681         * Gets the value(s) for <b>disposition</b> ().
682         * creating it if it does
683         * not exist. Will not return <code>null</code>.
684         *
685     * <p>
686     * <b>Definition:</b>
687     * A description of the status of the adjudication.
688     * </p> 
689         */
690        public String getDisposition() {  
691                return getDispositionElement().getValue();
692        }
693
694        /**
695         * Sets the value(s) for <b>disposition</b> ()
696         *
697     * <p>
698     * <b>Definition:</b>
699     * A description of the status of the adjudication.
700     * </p> 
701         */
702        public PaymentReconciliation setDisposition(StringDt theValue) {
703                myDisposition = theValue;
704                return this;
705        }
706        
707        
708
709        /**
710         * Sets the value for <b>disposition</b> ()
711         *
712     * <p>
713     * <b>Definition:</b>
714     * A description of the status of the adjudication.
715     * </p> 
716         */
717        public PaymentReconciliation setDisposition( String theString) {
718                myDisposition = new StringDt(theString); 
719                return this; 
720        }
721
722 
723        /**
724         * Gets the value(s) for <b>ruleset</b> ().
725         * creating it if it does
726         * not exist. Will not return <code>null</code>.
727         *
728     * <p>
729     * <b>Definition:</b>
730     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
731     * </p> 
732         */
733        public CodingDt getRuleset() {  
734                if (myRuleset == null) {
735                        myRuleset = new CodingDt();
736                }
737                return myRuleset;
738        }
739
740        /**
741         * Sets the value(s) for <b>ruleset</b> ()
742         *
743     * <p>
744     * <b>Definition:</b>
745     * The version of the style of resource contents. This should be mapped to the allowable profiles for this and supporting resources.
746     * </p> 
747         */
748        public PaymentReconciliation setRuleset(CodingDt theValue) {
749                myRuleset = theValue;
750                return this;
751        }
752        
753        
754
755  
756        /**
757         * Gets the value(s) for <b>originalRuleset</b> ().
758         * creating it if it does
759         * not exist. Will not return <code>null</code>.
760         *
761     * <p>
762     * <b>Definition:</b>
763     * The style (standard) and version of the original material which was converted into this resource.
764     * </p> 
765         */
766        public CodingDt getOriginalRuleset() {  
767                if (myOriginalRuleset == null) {
768                        myOriginalRuleset = new CodingDt();
769                }
770                return myOriginalRuleset;
771        }
772
773        /**
774         * Sets the value(s) for <b>originalRuleset</b> ()
775         *
776     * <p>
777     * <b>Definition:</b>
778     * The style (standard) and version of the original material which was converted into this resource.
779     * </p> 
780         */
781        public PaymentReconciliation setOriginalRuleset(CodingDt theValue) {
782                myOriginalRuleset = theValue;
783                return this;
784        }
785        
786        
787
788  
789        /**
790         * Gets the value(s) for <b>created</b> ().
791         * creating it if it does
792         * not exist. Will not return <code>null</code>.
793         *
794     * <p>
795     * <b>Definition:</b>
796     * The date when the enclosed suite of services were performed or completed
797     * </p> 
798         */
799        public DateTimeDt getCreatedElement() {  
800                if (myCreated == null) {
801                        myCreated = new DateTimeDt();
802                }
803                return myCreated;
804        }
805
806        
807        /**
808         * Gets the value(s) for <b>created</b> ().
809         * creating it if it does
810         * not exist. Will not return <code>null</code>.
811         *
812     * <p>
813     * <b>Definition:</b>
814     * The date when the enclosed suite of services were performed or completed
815     * </p> 
816         */
817        public Date getCreated() {  
818                return getCreatedElement().getValue();
819        }
820
821        /**
822         * Sets the value(s) for <b>created</b> ()
823         *
824     * <p>
825     * <b>Definition:</b>
826     * The date when the enclosed suite of services were performed or completed
827     * </p> 
828         */
829        public PaymentReconciliation setCreated(DateTimeDt theValue) {
830                myCreated = theValue;
831                return this;
832        }
833        
834        
835
836        /**
837         * Sets the value for <b>created</b> ()
838         *
839     * <p>
840     * <b>Definition:</b>
841     * The date when the enclosed suite of services were performed or completed
842     * </p> 
843         */
844        public PaymentReconciliation setCreated( Date theDate,  TemporalPrecisionEnum thePrecision) {
845                myCreated = new DateTimeDt(theDate, thePrecision); 
846                return this; 
847        }
848
849        /**
850         * Sets the value for <b>created</b> ()
851         *
852     * <p>
853     * <b>Definition:</b>
854     * The date when the enclosed suite of services were performed or completed
855     * </p> 
856         */
857        public PaymentReconciliation setCreatedWithSecondsPrecision( Date theDate) {
858                myCreated = new DateTimeDt(theDate); 
859                return this; 
860        }
861
862 
863        /**
864         * Gets the value(s) for <b>period</b> ().
865         * creating it if it does
866         * not exist. Will not return <code>null</code>.
867         *
868     * <p>
869     * <b>Definition:</b>
870     * The period of time for which payments have been gathered into this bulk payment for settlement.
871     * </p> 
872         */
873        public PeriodDt getPeriod() {  
874                if (myPeriod == null) {
875                        myPeriod = new PeriodDt();
876                }
877                return myPeriod;
878        }
879
880        /**
881         * Sets the value(s) for <b>period</b> ()
882         *
883     * <p>
884     * <b>Definition:</b>
885     * The period of time for which payments have been gathered into this bulk payment for settlement.
886     * </p> 
887         */
888        public PaymentReconciliation setPeriod(PeriodDt theValue) {
889                myPeriod = theValue;
890                return this;
891        }
892        
893        
894
895  
896        /**
897         * Gets the value(s) for <b>organization</b> ().
898         * creating it if it does
899         * not exist. Will not return <code>null</code>.
900         *
901     * <p>
902     * <b>Definition:</b>
903     * The Insurer who produced this adjudicated response.
904     * </p> 
905         */
906        public ResourceReferenceDt getOrganization() {  
907                if (myOrganization == null) {
908                        myOrganization = new ResourceReferenceDt();
909                }
910                return myOrganization;
911        }
912
913        /**
914         * Sets the value(s) for <b>organization</b> ()
915         *
916     * <p>
917     * <b>Definition:</b>
918     * The Insurer who produced this adjudicated response.
919     * </p> 
920         */
921        public PaymentReconciliation setOrganization(ResourceReferenceDt theValue) {
922                myOrganization = theValue;
923                return this;
924        }
925        
926        
927
928  
929        /**
930         * Gets the value(s) for <b>requestProvider</b> ().
931         * creating it if it does
932         * not exist. Will not return <code>null</code>.
933         *
934     * <p>
935     * <b>Definition:</b>
936     * The practitioner who is responsible for the services rendered to the patient.
937     * </p> 
938         */
939        public ResourceReferenceDt getRequestProvider() {  
940                if (myRequestProvider == null) {
941                        myRequestProvider = new ResourceReferenceDt();
942                }
943                return myRequestProvider;
944        }
945
946        /**
947         * Sets the value(s) for <b>requestProvider</b> ()
948         *
949     * <p>
950     * <b>Definition:</b>
951     * The practitioner who is responsible for the services rendered to the patient.
952     * </p> 
953         */
954        public PaymentReconciliation setRequestProvider(ResourceReferenceDt theValue) {
955                myRequestProvider = theValue;
956                return this;
957        }
958        
959        
960
961  
962        /**
963         * Gets the value(s) for <b>requestOrganization</b> ().
964         * creating it if it does
965         * not exist. Will not return <code>null</code>.
966         *
967     * <p>
968     * <b>Definition:</b>
969     * The organization which is responsible for the services rendered to the patient.
970     * </p> 
971         */
972        public ResourceReferenceDt getRequestOrganization() {  
973                if (myRequestOrganization == null) {
974                        myRequestOrganization = new ResourceReferenceDt();
975                }
976                return myRequestOrganization;
977        }
978
979        /**
980         * Sets the value(s) for <b>requestOrganization</b> ()
981         *
982     * <p>
983     * <b>Definition:</b>
984     * The organization which is responsible for the services rendered to the patient.
985     * </p> 
986         */
987        public PaymentReconciliation setRequestOrganization(ResourceReferenceDt theValue) {
988                myRequestOrganization = theValue;
989                return this;
990        }
991        
992        
993
994  
995        /**
996         * Gets the value(s) for <b>detail</b> ().
997         * creating it if it does
998         * not exist. Will not return <code>null</code>.
999         *
1000     * <p>
1001     * <b>Definition:</b>
1002     * List of individual settlement amounts and the corresponding transaction.
1003     * </p> 
1004         */
1005        public java.util.List<Detail> getDetail() {  
1006                if (myDetail == null) {
1007                        myDetail = new java.util.ArrayList<Detail>();
1008                }
1009                return myDetail;
1010        }
1011
1012        /**
1013         * Sets the value(s) for <b>detail</b> ()
1014         *
1015     * <p>
1016     * <b>Definition:</b>
1017     * List of individual settlement amounts and the corresponding transaction.
1018     * </p> 
1019         */
1020        public PaymentReconciliation setDetail(java.util.List<Detail> theValue) {
1021                myDetail = theValue;
1022                return this;
1023        }
1024        
1025        
1026
1027        /**
1028         * Adds and returns a new value for <b>detail</b> ()
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * List of individual settlement amounts and the corresponding transaction.
1033     * </p> 
1034         */
1035        public Detail addDetail() {
1036                Detail newType = new Detail();
1037                getDetail().add(newType);
1038                return newType; 
1039        }
1040
1041        /**
1042         * Adds a given new value for <b>detail</b> ()
1043         *
1044         * <p>
1045         * <b>Definition:</b>
1046         * List of individual settlement amounts and the corresponding transaction.
1047         * </p>
1048         * @param theValue The detail to add (must not be <code>null</code>)
1049         */
1050        public PaymentReconciliation addDetail(Detail theValue) {
1051                if (theValue == null) {
1052                        throw new NullPointerException("theValue must not be null");
1053                }
1054                getDetail().add(theValue);
1055                return this;
1056        }
1057
1058        /**
1059         * Gets the first repetition for <b>detail</b> (),
1060         * creating it if it does not already exist.
1061         *
1062     * <p>
1063     * <b>Definition:</b>
1064     * List of individual settlement amounts and the corresponding transaction.
1065     * </p> 
1066         */
1067        public Detail getDetailFirstRep() {
1068                if (getDetail().isEmpty()) {
1069                        return addDetail();
1070                }
1071                return getDetail().get(0); 
1072        }
1073  
1074        /**
1075         * Gets the value(s) for <b>form</b> ().
1076         * creating it if it does
1077         * not exist. Will not return <code>null</code>.
1078         *
1079     * <p>
1080     * <b>Definition:</b>
1081     * The form to be used for printing the content.
1082     * </p> 
1083         */
1084        public CodingDt getForm() {  
1085                if (myForm == null) {
1086                        myForm = new CodingDt();
1087                }
1088                return myForm;
1089        }
1090
1091        /**
1092         * Sets the value(s) for <b>form</b> ()
1093         *
1094     * <p>
1095     * <b>Definition:</b>
1096     * The form to be used for printing the content.
1097     * </p> 
1098         */
1099        public PaymentReconciliation setForm(CodingDt theValue) {
1100                myForm = theValue;
1101                return this;
1102        }
1103        
1104        
1105
1106  
1107        /**
1108         * Gets the value(s) for <b>total</b> ().
1109         * creating it if it does
1110         * not exist. Will not return <code>null</code>.
1111         *
1112     * <p>
1113     * <b>Definition:</b>
1114     * Total payment amount.
1115     * </p> 
1116         */
1117        public MoneyDt getTotal() {  
1118                if (myTotal == null) {
1119                        myTotal = new MoneyDt();
1120                }
1121                return myTotal;
1122        }
1123
1124        /**
1125         * Sets the value(s) for <b>total</b> ()
1126         *
1127     * <p>
1128     * <b>Definition:</b>
1129     * Total payment amount.
1130     * </p> 
1131         */
1132        public PaymentReconciliation setTotal(MoneyDt theValue) {
1133                myTotal = theValue;
1134                return this;
1135        }
1136        
1137        
1138
1139  
1140        /**
1141         * Gets the value(s) for <b>note</b> ().
1142         * creating it if it does
1143         * not exist. Will not return <code>null</code>.
1144         *
1145     * <p>
1146     * <b>Definition:</b>
1147     * Suite of notes
1148     * </p> 
1149         */
1150        public java.util.List<Note> getNote() {  
1151                if (myNote == null) {
1152                        myNote = new java.util.ArrayList<Note>();
1153                }
1154                return myNote;
1155        }
1156
1157        /**
1158         * Sets the value(s) for <b>note</b> ()
1159         *
1160     * <p>
1161     * <b>Definition:</b>
1162     * Suite of notes
1163     * </p> 
1164         */
1165        public PaymentReconciliation setNote(java.util.List<Note> theValue) {
1166                myNote = theValue;
1167                return this;
1168        }
1169        
1170        
1171
1172        /**
1173         * Adds and returns a new value for <b>note</b> ()
1174         *
1175     * <p>
1176     * <b>Definition:</b>
1177     * Suite of notes
1178     * </p> 
1179         */
1180        public Note addNote() {
1181                Note newType = new Note();
1182                getNote().add(newType);
1183                return newType; 
1184        }
1185
1186        /**
1187         * Adds a given new value for <b>note</b> ()
1188         *
1189         * <p>
1190         * <b>Definition:</b>
1191         * Suite of notes
1192         * </p>
1193         * @param theValue The note to add (must not be <code>null</code>)
1194         */
1195        public PaymentReconciliation addNote(Note theValue) {
1196                if (theValue == null) {
1197                        throw new NullPointerException("theValue must not be null");
1198                }
1199                getNote().add(theValue);
1200                return this;
1201        }
1202
1203        /**
1204         * Gets the first repetition for <b>note</b> (),
1205         * creating it if it does not already exist.
1206         *
1207     * <p>
1208     * <b>Definition:</b>
1209     * Suite of notes
1210     * </p> 
1211         */
1212        public Note getNoteFirstRep() {
1213                if (getNote().isEmpty()) {
1214                        return addNote();
1215                }
1216                return getNote().get(0); 
1217        }
1218  
1219        /**
1220         * Block class for child element: <b>PaymentReconciliation.detail</b> ()
1221         *
1222     * <p>
1223     * <b>Definition:</b>
1224     * List of individual settlement amounts and the corresponding transaction.
1225     * </p> 
1226         */
1227        @Block()        
1228        public static class Detail 
1229            extends  BaseIdentifiableElement        implements IResourceBlock {
1230        
1231        @Child(name="type", type=CodingDt.class, order=0, min=1, max=1, summary=false, modifier=false)  
1232        @Description(
1233                shortDefinition="",
1234                formalDefinition="Code to indicate the nature of the payment, adjustment, funds advance, etc."
1235        )
1236        private CodingDt myType;
1237        
1238        @Child(name="request", order=1, min=0, max=1, summary=false, modifier=false, type={
1239                IResource.class })
1240        @Description(
1241                shortDefinition="",
1242                formalDefinition="The claim or financial resource."
1243        )
1244        private ResourceReferenceDt myRequest;
1245        
1246        @Child(name="responce", order=2, min=0, max=1, summary=false, modifier=false, type={
1247                IResource.class })
1248        @Description(
1249                shortDefinition="",
1250                formalDefinition="The claim response resource."
1251        )
1252        private ResourceReferenceDt myResponce;
1253        
1254        @Child(name="submitter", order=3, min=0, max=1, summary=false, modifier=false, type={
1255                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
1256        @Description(
1257                shortDefinition="",
1258                formalDefinition="The Organization which submitted the invoice or financial transaction."
1259        )
1260        private ResourceReferenceDt mySubmitter;
1261        
1262        @Child(name="payee", order=4, min=0, max=1, summary=false, modifier=false, type={
1263                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
1264        @Description(
1265                shortDefinition="",
1266                formalDefinition="The organization which is receiving the payment."
1267        )
1268        private ResourceReferenceDt myPayee;
1269        
1270        @Child(name="date", type=DateDt.class, order=5, min=0, max=1, summary=false, modifier=false)    
1271        @Description(
1272                shortDefinition="",
1273                formalDefinition="The date of the invoice or financial resource."
1274        )
1275        private DateDt myDate;
1276        
1277        @Child(name="amount", type=MoneyDt.class, order=6, min=0, max=1, summary=false, modifier=false) 
1278        @Description(
1279                shortDefinition="",
1280                formalDefinition="Amount paid for this detail."
1281        )
1282        private MoneyDt myAmount;
1283        
1284
1285        @Override
1286        public boolean isEmpty() {
1287                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myRequest,  myResponce,  mySubmitter,  myPayee,  myDate,  myAmount);
1288        }
1289        
1290        @Override
1291        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1292                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myRequest, myResponce, mySubmitter, myPayee, myDate, myAmount);
1293        }
1294
1295        /**
1296         * Gets the value(s) for <b>type</b> ().
1297         * creating it if it does
1298         * not exist. Will not return <code>null</code>.
1299         *
1300     * <p>
1301     * <b>Definition:</b>
1302     * Code to indicate the nature of the payment, adjustment, funds advance, etc.
1303     * </p> 
1304         */
1305        public CodingDt getType() {  
1306                if (myType == null) {
1307                        myType = new CodingDt();
1308                }
1309                return myType;
1310        }
1311
1312        /**
1313         * Sets the value(s) for <b>type</b> ()
1314         *
1315     * <p>
1316     * <b>Definition:</b>
1317     * Code to indicate the nature of the payment, adjustment, funds advance, etc.
1318     * </p> 
1319         */
1320        public Detail setType(CodingDt theValue) {
1321                myType = theValue;
1322                return this;
1323        }
1324        
1325        
1326
1327  
1328        /**
1329         * Gets the value(s) for <b>request</b> ().
1330         * creating it if it does
1331         * not exist. Will not return <code>null</code>.
1332         *
1333     * <p>
1334     * <b>Definition:</b>
1335     * The claim or financial resource.
1336     * </p> 
1337         */
1338        public ResourceReferenceDt getRequest() {  
1339                if (myRequest == null) {
1340                        myRequest = new ResourceReferenceDt();
1341                }
1342                return myRequest;
1343        }
1344
1345        /**
1346         * Sets the value(s) for <b>request</b> ()
1347         *
1348     * <p>
1349     * <b>Definition:</b>
1350     * The claim or financial resource.
1351     * </p> 
1352         */
1353        public Detail setRequest(ResourceReferenceDt theValue) {
1354                myRequest = theValue;
1355                return this;
1356        }
1357        
1358        
1359
1360  
1361        /**
1362         * Gets the value(s) for <b>responce</b> ().
1363         * creating it if it does
1364         * not exist. Will not return <code>null</code>.
1365         *
1366     * <p>
1367     * <b>Definition:</b>
1368     * The claim response resource.
1369     * </p> 
1370         */
1371        public ResourceReferenceDt getResponce() {  
1372                if (myResponce == null) {
1373                        myResponce = new ResourceReferenceDt();
1374                }
1375                return myResponce;
1376        }
1377
1378        /**
1379         * Sets the value(s) for <b>responce</b> ()
1380         *
1381     * <p>
1382     * <b>Definition:</b>
1383     * The claim response resource.
1384     * </p> 
1385         */
1386        public Detail setResponce(ResourceReferenceDt theValue) {
1387                myResponce = theValue;
1388                return this;
1389        }
1390        
1391        
1392
1393  
1394        /**
1395         * Gets the value(s) for <b>submitter</b> ().
1396         * creating it if it does
1397         * not exist. Will not return <code>null</code>.
1398         *
1399     * <p>
1400     * <b>Definition:</b>
1401     * The Organization which submitted the invoice or financial transaction.
1402     * </p> 
1403         */
1404        public ResourceReferenceDt getSubmitter() {  
1405                if (mySubmitter == null) {
1406                        mySubmitter = new ResourceReferenceDt();
1407                }
1408                return mySubmitter;
1409        }
1410
1411        /**
1412         * Sets the value(s) for <b>submitter</b> ()
1413         *
1414     * <p>
1415     * <b>Definition:</b>
1416     * The Organization which submitted the invoice or financial transaction.
1417     * </p> 
1418         */
1419        public Detail setSubmitter(ResourceReferenceDt theValue) {
1420                mySubmitter = theValue;
1421                return this;
1422        }
1423        
1424        
1425
1426  
1427        /**
1428         * Gets the value(s) for <b>payee</b> ().
1429         * creating it if it does
1430         * not exist. Will not return <code>null</code>.
1431         *
1432     * <p>
1433     * <b>Definition:</b>
1434     * The organization which is receiving the payment.
1435     * </p> 
1436         */
1437        public ResourceReferenceDt getPayee() {  
1438                if (myPayee == null) {
1439                        myPayee = new ResourceReferenceDt();
1440                }
1441                return myPayee;
1442        }
1443
1444        /**
1445         * Sets the value(s) for <b>payee</b> ()
1446         *
1447     * <p>
1448     * <b>Definition:</b>
1449     * The organization which is receiving the payment.
1450     * </p> 
1451         */
1452        public Detail setPayee(ResourceReferenceDt theValue) {
1453                myPayee = theValue;
1454                return this;
1455        }
1456        
1457        
1458
1459  
1460        /**
1461         * Gets the value(s) for <b>date</b> ().
1462         * creating it if it does
1463         * not exist. Will not return <code>null</code>.
1464         *
1465     * <p>
1466     * <b>Definition:</b>
1467     * The date of the invoice or financial resource.
1468     * </p> 
1469         */
1470        public DateDt getDateElement() {  
1471                if (myDate == null) {
1472                        myDate = new DateDt();
1473                }
1474                return myDate;
1475        }
1476
1477        
1478        /**
1479         * Gets the value(s) for <b>date</b> ().
1480         * creating it if it does
1481         * not exist. Will not return <code>null</code>.
1482         *
1483     * <p>
1484     * <b>Definition:</b>
1485     * The date of the invoice or financial resource.
1486     * </p> 
1487         */
1488        public Date getDate() {  
1489                return getDateElement().getValue();
1490        }
1491
1492        /**
1493         * Sets the value(s) for <b>date</b> ()
1494         *
1495     * <p>
1496     * <b>Definition:</b>
1497     * The date of the invoice or financial resource.
1498     * </p> 
1499         */
1500        public Detail setDate(DateDt theValue) {
1501                myDate = theValue;
1502                return this;
1503        }
1504        
1505        
1506
1507        /**
1508         * Sets the value for <b>date</b> ()
1509         *
1510     * <p>
1511     * <b>Definition:</b>
1512     * The date of the invoice or financial resource.
1513     * </p> 
1514         */
1515        public Detail setDate( Date theDate,  TemporalPrecisionEnum thePrecision) {
1516                myDate = new DateDt(theDate, thePrecision); 
1517                return this; 
1518        }
1519
1520        /**
1521         * Sets the value for <b>date</b> ()
1522         *
1523     * <p>
1524     * <b>Definition:</b>
1525     * The date of the invoice or financial resource.
1526     * </p> 
1527         */
1528        public Detail setDateWithDayPrecision( Date theDate) {
1529                myDate = new DateDt(theDate); 
1530                return this; 
1531        }
1532
1533 
1534        /**
1535         * Gets the value(s) for <b>amount</b> ().
1536         * creating it if it does
1537         * not exist. Will not return <code>null</code>.
1538         *
1539     * <p>
1540     * <b>Definition:</b>
1541     * Amount paid for this detail.
1542     * </p> 
1543         */
1544        public MoneyDt getAmount() {  
1545                if (myAmount == null) {
1546                        myAmount = new MoneyDt();
1547                }
1548                return myAmount;
1549        }
1550
1551        /**
1552         * Sets the value(s) for <b>amount</b> ()
1553         *
1554     * <p>
1555     * <b>Definition:</b>
1556     * Amount paid for this detail.
1557     * </p> 
1558         */
1559        public Detail setAmount(MoneyDt theValue) {
1560                myAmount = theValue;
1561                return this;
1562        }
1563        
1564        
1565
1566  
1567
1568
1569        }
1570
1571
1572        /**
1573         * Block class for child element: <b>PaymentReconciliation.note</b> ()
1574         *
1575     * <p>
1576     * <b>Definition:</b>
1577     * Suite of notes
1578     * </p> 
1579         */
1580        @Block()        
1581        public static class Note 
1582            extends  BaseIdentifiableElement        implements IResourceBlock {
1583        
1584        @Child(name="type", type=CodingDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1585        @Description(
1586                shortDefinition="",
1587                formalDefinition="The note purpose: Print/Display."
1588        )
1589        private CodingDt myType;
1590        
1591        @Child(name="text", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)  
1592        @Description(
1593                shortDefinition="",
1594                formalDefinition="The note text."
1595        )
1596        private StringDt myText;
1597        
1598
1599        @Override
1600        public boolean isEmpty() {
1601                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myType,  myText);
1602        }
1603        
1604        @Override
1605        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1606                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myType, myText);
1607        }
1608
1609        /**
1610         * Gets the value(s) for <b>type</b> ().
1611         * creating it if it does
1612         * not exist. Will not return <code>null</code>.
1613         *
1614     * <p>
1615     * <b>Definition:</b>
1616     * The note purpose: Print/Display.
1617     * </p> 
1618         */
1619        public CodingDt getType() {  
1620                if (myType == null) {
1621                        myType = new CodingDt();
1622                }
1623                return myType;
1624        }
1625
1626        /**
1627         * Sets the value(s) for <b>type</b> ()
1628         *
1629     * <p>
1630     * <b>Definition:</b>
1631     * The note purpose: Print/Display.
1632     * </p> 
1633         */
1634        public Note setType(CodingDt theValue) {
1635                myType = theValue;
1636                return this;
1637        }
1638        
1639        
1640
1641  
1642        /**
1643         * Gets the value(s) for <b>text</b> ().
1644         * creating it if it does
1645         * not exist. Will not return <code>null</code>.
1646         *
1647     * <p>
1648     * <b>Definition:</b>
1649     * The note text.
1650     * </p> 
1651         */
1652        public StringDt getTextElement() {  
1653                if (myText == null) {
1654                        myText = new StringDt();
1655                }
1656                return myText;
1657        }
1658
1659        
1660        /**
1661         * Gets the value(s) for <b>text</b> ().
1662         * creating it if it does
1663         * not exist. Will not return <code>null</code>.
1664         *
1665     * <p>
1666     * <b>Definition:</b>
1667     * The note text.
1668     * </p> 
1669         */
1670        public String getText() {  
1671                return getTextElement().getValue();
1672        }
1673
1674        /**
1675         * Sets the value(s) for <b>text</b> ()
1676         *
1677     * <p>
1678     * <b>Definition:</b>
1679     * The note text.
1680     * </p> 
1681         */
1682        public Note setText(StringDt theValue) {
1683                myText = theValue;
1684                return this;
1685        }
1686        
1687        
1688
1689        /**
1690         * Sets the value for <b>text</b> ()
1691         *
1692     * <p>
1693     * <b>Definition:</b>
1694     * The note text.
1695     * </p> 
1696         */
1697        public Note setText( String theString) {
1698                myText = new StringDt(theString); 
1699                return this; 
1700        }
1701
1702 
1703
1704
1705        }
1706
1707
1708
1709
1710    @Override
1711    public String getResourceName() {
1712        return "PaymentReconciliation";
1713    }
1714    
1715    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1716        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1717    }
1718
1719
1720}