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>Account</b> Resource
282 * ()
283 *
284 * <p>
285 * <b>Definition:</b>
286 * A financial tool for tracking value accrued for a particular purpose.  In the healthcare field, used to track charges for a patient, cost centres, etc.
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/Account">http://hl7.org/fhir/profiles/Account</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="Account", profile="http://hl7.org/fhir/profiles/Account", id="account")
301public class Account extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>identifier</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>token</b><br>
309         * Path: <b>Account.identifier</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="identifier", path="Account.identifier", description="", type="token"  )
313        public static final String SP_IDENTIFIER = "identifier";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>token</b><br>
320         * Path: <b>Account.identifier</b><br>
321         * </p>
322         */
323        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
324
325        /**
326         * Search parameter constant for <b>name</b>
327         * <p>
328         * Description: <b></b><br>
329         * Type: <b>string</b><br>
330         * Path: <b>Account.name</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="name", path="Account.name", description="", type="string"  )
334        public static final String SP_NAME = "name";
335
336        /**
337         * <b>Fluent Client</b> search parameter constant for <b>name</b>
338         * <p>
339         * Description: <b></b><br>
340         * Type: <b>string</b><br>
341         * Path: <b>Account.name</b><br>
342         * </p>
343         */
344        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
345
346        /**
347         * Search parameter constant for <b>type</b>
348         * <p>
349         * Description: <b></b><br>
350         * Type: <b>token</b><br>
351         * Path: <b>Account.type</b><br>
352         * </p>
353         */
354        @SearchParamDefinition(name="type", path="Account.type", description="", type="token"  )
355        public static final String SP_TYPE = "type";
356
357        /**
358         * <b>Fluent Client</b> search parameter constant for <b>type</b>
359         * <p>
360         * Description: <b></b><br>
361         * Type: <b>token</b><br>
362         * Path: <b>Account.type</b><br>
363         * </p>
364         */
365        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
366
367        /**
368         * Search parameter constant for <b>status</b>
369         * <p>
370         * Description: <b></b><br>
371         * Type: <b>token</b><br>
372         * Path: <b>Account.status</b><br>
373         * </p>
374         */
375        @SearchParamDefinition(name="status", path="Account.status", description="", type="token"  )
376        public static final String SP_STATUS = "status";
377
378        /**
379         * <b>Fluent Client</b> search parameter constant for <b>status</b>
380         * <p>
381         * Description: <b></b><br>
382         * Type: <b>token</b><br>
383         * Path: <b>Account.status</b><br>
384         * </p>
385         */
386        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
387
388        /**
389         * Search parameter constant for <b>balance</b>
390         * <p>
391         * Description: <b></b><br>
392         * Type: <b>quantity</b><br>
393         * Path: <b>Account.balance</b><br>
394         * </p>
395         */
396        @SearchParamDefinition(name="balance", path="Account.balance", description="", type="quantity"  )
397        public static final String SP_BALANCE = "balance";
398
399        /**
400         * <b>Fluent Client</b> search parameter constant for <b>balance</b>
401         * <p>
402         * Description: <b></b><br>
403         * Type: <b>quantity</b><br>
404         * Path: <b>Account.balance</b><br>
405         * </p>
406         */
407        public static final QuantityClientParam BALANCE = new QuantityClientParam(SP_BALANCE);
408
409        /**
410         * Search parameter constant for <b>period</b>
411         * <p>
412         * Description: <b></b><br>
413         * Type: <b>date</b><br>
414         * Path: <b>Account.coveragePeriod</b><br>
415         * </p>
416         */
417        @SearchParamDefinition(name="period", path="Account.coveragePeriod", description="", type="date"  )
418        public static final String SP_PERIOD = "period";
419
420        /**
421         * <b>Fluent Client</b> search parameter constant for <b>period</b>
422         * <p>
423         * Description: <b></b><br>
424         * Type: <b>date</b><br>
425         * Path: <b>Account.coveragePeriod</b><br>
426         * </p>
427         */
428        public static final DateClientParam PERIOD = new DateClientParam(SP_PERIOD);
429
430        /**
431         * Search parameter constant for <b>subject</b>
432         * <p>
433         * Description: <b></b><br>
434         * Type: <b>reference</b><br>
435         * Path: <b>Account.subject</b><br>
436         * </p>
437         */
438        @SearchParamDefinition(name="subject", path="Account.subject", description="", type="reference" , providesMembershipIn={
439 @Compartment(name="Patient") ,  @Compartment(name="Encounter") ,  @Compartment(name="RelatedPerson")   }
440 )
441        public static final String SP_SUBJECT = "subject";
442
443        /**
444         * <b>Fluent Client</b> search parameter constant for <b>subject</b>
445         * <p>
446         * Description: <b></b><br>
447         * Type: <b>reference</b><br>
448         * Path: <b>Account.subject</b><br>
449         * </p>
450         */
451        public static final ReferenceClientParam SUBJECT = new ReferenceClientParam(SP_SUBJECT);
452
453        /**
454         * Search parameter constant for <b>owner</b>
455         * <p>
456         * Description: <b></b><br>
457         * Type: <b>reference</b><br>
458         * Path: <b>Account.owner</b><br>
459         * </p>
460         */
461        @SearchParamDefinition(name="owner", path="Account.owner", description="", type="reference" , target={
462 ca.uhn.fhir.model.dstu2.resource.Organization.class    }
463 )
464        public static final String SP_OWNER = "owner";
465
466        /**
467         * <b>Fluent Client</b> search parameter constant for <b>owner</b>
468         * <p>
469         * Description: <b></b><br>
470         * Type: <b>reference</b><br>
471         * Path: <b>Account.owner</b><br>
472         * </p>
473         */
474        public static final ReferenceClientParam OWNER = new ReferenceClientParam(SP_OWNER);
475
476        /**
477         * Search parameter constant for <b>patient</b>
478         * <p>
479         * Description: <b></b><br>
480         * Type: <b>reference</b><br>
481         * Path: <b>Account.subject</b><br>
482         * </p>
483         */
484        @SearchParamDefinition(name="patient", path="Account.subject", description="", type="reference" , target={
485 ca.uhn.fhir.model.dstu2.resource.Patient.class         }
486 )
487        public static final String SP_PATIENT = "patient";
488
489        /**
490         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>reference</b><br>
494         * Path: <b>Account.subject</b><br>
495         * </p>
496         */
497        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
498
499
500        /**
501         * Constant for fluent queries to be used to add include statements. Specifies
502         * the path value of "<b>Account:owner</b>".
503         */
504        public static final Include INCLUDE_OWNER = new Include("Account:owner");
505
506        /**
507         * Constant for fluent queries to be used to add include statements. Specifies
508         * the path value of "<b>Account:patient</b>".
509         */
510        public static final Include INCLUDE_PATIENT = new Include("Account:patient");
511
512        /**
513         * Constant for fluent queries to be used to add include statements. Specifies
514         * the path value of "<b>Account:subject</b>".
515         */
516        public static final Include INCLUDE_SUBJECT = new Include("Account:subject");
517
518
519        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
520        @Description(
521                shortDefinition="",
522                formalDefinition="Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)"
523        )
524        private java.util.List<IdentifierDt> myIdentifier;
525        
526        @Child(name="name", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)  
527        @Description(
528                shortDefinition="",
529                formalDefinition="Name used for the account when displaying it to humans in reports, etc."
530        )
531        private StringDt myName;
532        
533        @Child(name="type", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=false, modifier=false) 
534        @Description(
535                shortDefinition="",
536                formalDefinition="Categorizes the account for reporting and searching purposes"
537        )
538        private CodeableConceptDt myType;
539        
540        @Child(name="status", type=CodeDt.class, order=3, min=0, max=1, summary=false, modifier=true)   
541        @Description(
542                shortDefinition="",
543                formalDefinition="Indicates whether the account is presently used/useable or not"
544        )
545        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/account-status")
546        private BoundCodeDt<AccountStatusEnum> myStatus;
547        
548        @Child(name="activePeriod", type=PeriodDt.class, order=4, min=0, max=1, summary=false, modifier=false)  
549        @Description(
550                shortDefinition="",
551                formalDefinition="Indicates the period of time over which the account is allowed"
552        )
553        private PeriodDt myActivePeriod;
554        
555        @Child(name="currency", type=CodingDt.class, order=5, min=0, max=1, summary=false, modifier=false)      
556        @Description(
557                shortDefinition="",
558                formalDefinition="Identifies the currency to which transactions must be converted when crediting or debiting the account."
559        )
560        private CodingDt myCurrency;
561        
562        @Child(name="balance", type=MoneyDt.class, order=6, min=0, max=1, summary=false, modifier=false)        
563        @Description(
564                shortDefinition="",
565                formalDefinition="Represents the sum of all credits less all debits associated with the account.  Might be positive, zero or negative."
566        )
567        private MoneyDt myBalance;
568        
569        @Child(name="coveragePeriod", type=PeriodDt.class, order=7, min=0, max=1, summary=false, modifier=false)        
570        @Description(
571                shortDefinition="",
572                formalDefinition="Identifies the period of time the account applies to; e.g. accounts created per fiscal year, quarter, etc."
573        )
574        private PeriodDt myCoveragePeriod;
575        
576        @Child(name="subject", order=8, min=0, max=1, summary=false, modifier=false, type={
577                ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.Device.class,          ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Location.class,                ca.uhn.fhir.model.dstu2.resource.HealthcareService.class,               ca.uhn.fhir.model.dstu2.resource.Organization.class     })
578        @Description(
579                shortDefinition="",
580                formalDefinition="Identifies the patient, device, practitioner, location or other object the account is associated with"
581        )
582        private ResourceReferenceDt mySubject;
583        
584        @Child(name="owner", order=9, min=0, max=1, summary=false, modifier=false, type={
585                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
586        @Description(
587                shortDefinition="",
588                formalDefinition="Indicates the organization, department, etc. with responsibility for the account."
589        )
590        private ResourceReferenceDt myOwner;
591        
592        @Child(name="description", type=StringDt.class, order=10, min=0, max=1, summary=false, modifier=false)  
593        @Description(
594                shortDefinition="",
595                formalDefinition="Provides additional information about what the account tracks and how it is used"
596        )
597        private StringDt myDescription;
598        
599
600        @Override
601        public boolean isEmpty() {
602                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myName,  myType,  myStatus,  myActivePeriod,  myCurrency,  myBalance,  myCoveragePeriod,  mySubject,  myOwner,  myDescription);
603        }
604        
605        @Override
606        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
607                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myName, myType, myStatus, myActivePeriod, myCurrency, myBalance, myCoveragePeriod, mySubject, myOwner, myDescription);
608        }
609
610        /**
611         * Gets the value(s) for <b>identifier</b> ().
612         * creating it if it does
613         * not exist. Will not return <code>null</code>.
614         *
615     * <p>
616     * <b>Definition:</b>
617     * Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)
618     * </p> 
619         */
620        public java.util.List<IdentifierDt> getIdentifier() {  
621                if (myIdentifier == null) {
622                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
623                }
624                return myIdentifier;
625        }
626
627        /**
628         * Sets the value(s) for <b>identifier</b> ()
629         *
630     * <p>
631     * <b>Definition:</b>
632     * Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)
633     * </p> 
634         */
635        public Account setIdentifier(java.util.List<IdentifierDt> theValue) {
636                myIdentifier = theValue;
637                return this;
638        }
639        
640        
641
642        /**
643         * Adds and returns a new value for <b>identifier</b> ()
644         *
645     * <p>
646     * <b>Definition:</b>
647     * Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)
648     * </p> 
649         */
650        public IdentifierDt addIdentifier() {
651                IdentifierDt newType = new IdentifierDt();
652                getIdentifier().add(newType);
653                return newType; 
654        }
655
656        /**
657         * Adds a given new value for <b>identifier</b> ()
658         *
659         * <p>
660         * <b>Definition:</b>
661         * Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)
662         * </p>
663         * @param theValue The identifier to add (must not be <code>null</code>)
664         */
665        public Account addIdentifier(IdentifierDt theValue) {
666                if (theValue == null) {
667                        throw new NullPointerException("theValue must not be null");
668                }
669                getIdentifier().add(theValue);
670                return this;
671        }
672
673        /**
674         * Gets the first repetition for <b>identifier</b> (),
675         * creating it if it does not already exist.
676         *
677     * <p>
678     * <b>Definition:</b>
679     * Unique identifier used to reference the account.  May or may not be intended for human use (e.g. credit card number)
680     * </p> 
681         */
682        public IdentifierDt getIdentifierFirstRep() {
683                if (getIdentifier().isEmpty()) {
684                        return addIdentifier();
685                }
686                return getIdentifier().get(0); 
687        }
688  
689        /**
690         * Gets the value(s) for <b>name</b> ().
691         * creating it if it does
692         * not exist. Will not return <code>null</code>.
693         *
694     * <p>
695     * <b>Definition:</b>
696     * Name used for the account when displaying it to humans in reports, etc.
697     * </p> 
698         */
699        public StringDt getNameElement() {  
700                if (myName == null) {
701                        myName = new StringDt();
702                }
703                return myName;
704        }
705
706        
707        /**
708         * Gets the value(s) for <b>name</b> ().
709         * creating it if it does
710         * not exist. This method may return <code>null</code>.
711         *
712     * <p>
713     * <b>Definition:</b>
714     * Name used for the account when displaying it to humans in reports, etc.
715     * </p> 
716         */
717        public String getName() {  
718                return getNameElement().getValue();
719        }
720
721        /**
722         * Sets the value(s) for <b>name</b> ()
723         *
724     * <p>
725     * <b>Definition:</b>
726     * Name used for the account when displaying it to humans in reports, etc.
727     * </p> 
728         */
729        public Account setName(StringDt theValue) {
730                myName = theValue;
731                return this;
732        }
733        
734        
735
736        /**
737         * Sets the value for <b>name</b> ()
738         *
739     * <p>
740     * <b>Definition:</b>
741     * Name used for the account when displaying it to humans in reports, etc.
742     * </p> 
743         */
744        public Account setName( String theString) {
745                myName = new StringDt(theString); 
746                return this; 
747        }
748
749 
750        /**
751         * Gets the value(s) for <b>type</b> ().
752         * creating it if it does
753         * not exist. Will not return <code>null</code>.
754         *
755     * <p>
756     * <b>Definition:</b>
757     * Categorizes the account for reporting and searching purposes
758     * </p> 
759         */
760        public CodeableConceptDt getType() {  
761                if (myType == null) {
762                        myType = new CodeableConceptDt();
763                }
764                return myType;
765        }
766
767        /**
768         * Sets the value(s) for <b>type</b> ()
769         *
770     * <p>
771     * <b>Definition:</b>
772     * Categorizes the account for reporting and searching purposes
773     * </p> 
774         */
775        public Account setType(CodeableConceptDt theValue) {
776                myType = theValue;
777                return this;
778        }
779        
780        
781
782  
783        /**
784         * Gets the value(s) for <b>status</b> ().
785         * creating it if it does
786         * not exist. Will not return <code>null</code>.
787         *
788     * <p>
789     * <b>Definition:</b>
790     * Indicates whether the account is presently used/useable or not
791     * </p> 
792         */
793        public BoundCodeDt<AccountStatusEnum> getStatusElement() {  
794                if (myStatus == null) {
795                        myStatus = new BoundCodeDt<AccountStatusEnum>(AccountStatusEnum.VALUESET_BINDER);
796                }
797                return myStatus;
798        }
799
800        
801        /**
802         * Gets the value(s) for <b>status</b> ().
803         * creating it if it does
804         * not exist. This method may return <code>null</code>.
805         *
806     * <p>
807     * <b>Definition:</b>
808     * Indicates whether the account is presently used/useable or not
809     * </p> 
810         */
811        public String getStatus() {  
812                return getStatusElement().getValue();
813        }
814
815        /**
816         * Sets the value(s) for <b>status</b> ()
817         *
818     * <p>
819     * <b>Definition:</b>
820     * Indicates whether the account is presently used/useable or not
821     * </p> 
822         */
823        public Account setStatus(BoundCodeDt<AccountStatusEnum> theValue) {
824                myStatus = theValue;
825                return this;
826        }
827        
828        
829
830        /**
831         * Sets the value(s) for <b>status</b> ()
832         *
833     * <p>
834     * <b>Definition:</b>
835     * Indicates whether the account is presently used/useable or not
836     * </p> 
837         */
838        public Account setStatus(AccountStatusEnum theValue) {
839                setStatus(new BoundCodeDt<AccountStatusEnum>(AccountStatusEnum.VALUESET_BINDER, theValue));
840                
841/*
842                getStatusElement().setValueAsEnum(theValue);
843*/
844                return this;
845        }
846
847  
848        /**
849         * Gets the value(s) for <b>activePeriod</b> ().
850         * creating it if it does
851         * not exist. Will not return <code>null</code>.
852         *
853     * <p>
854     * <b>Definition:</b>
855     * Indicates the period of time over which the account is allowed
856     * </p> 
857         */
858        public PeriodDt getActivePeriod() {  
859                if (myActivePeriod == null) {
860                        myActivePeriod = new PeriodDt();
861                }
862                return myActivePeriod;
863        }
864
865        /**
866         * Sets the value(s) for <b>activePeriod</b> ()
867         *
868     * <p>
869     * <b>Definition:</b>
870     * Indicates the period of time over which the account is allowed
871     * </p> 
872         */
873        public Account setActivePeriod(PeriodDt theValue) {
874                myActivePeriod = theValue;
875                return this;
876        }
877        
878        
879
880  
881        /**
882         * Gets the value(s) for <b>currency</b> ().
883         * creating it if it does
884         * not exist. Will not return <code>null</code>.
885         *
886     * <p>
887     * <b>Definition:</b>
888     * Identifies the currency to which transactions must be converted when crediting or debiting the account.
889     * </p> 
890         */
891        public CodingDt getCurrency() {  
892                if (myCurrency == null) {
893                        myCurrency = new CodingDt();
894                }
895                return myCurrency;
896        }
897
898        /**
899         * Sets the value(s) for <b>currency</b> ()
900         *
901     * <p>
902     * <b>Definition:</b>
903     * Identifies the currency to which transactions must be converted when crediting or debiting the account.
904     * </p> 
905         */
906        public Account setCurrency(CodingDt theValue) {
907                myCurrency = theValue;
908                return this;
909        }
910        
911        
912
913  
914        /**
915         * Gets the value(s) for <b>balance</b> ().
916         * creating it if it does
917         * not exist. Will not return <code>null</code>.
918         *
919     * <p>
920     * <b>Definition:</b>
921     * Represents the sum of all credits less all debits associated with the account.  Might be positive, zero or negative.
922     * </p> 
923         */
924        public MoneyDt getBalance() {  
925                if (myBalance == null) {
926                        myBalance = new MoneyDt();
927                }
928                return myBalance;
929        }
930
931        /**
932         * Sets the value(s) for <b>balance</b> ()
933         *
934     * <p>
935     * <b>Definition:</b>
936     * Represents the sum of all credits less all debits associated with the account.  Might be positive, zero or negative.
937     * </p> 
938         */
939        public Account setBalance(MoneyDt theValue) {
940                myBalance = theValue;
941                return this;
942        }
943        
944        
945
946  
947        /**
948         * Gets the value(s) for <b>coveragePeriod</b> ().
949         * creating it if it does
950         * not exist. Will not return <code>null</code>.
951         *
952     * <p>
953     * <b>Definition:</b>
954     * Identifies the period of time the account applies to; e.g. accounts created per fiscal year, quarter, etc.
955     * </p> 
956         */
957        public PeriodDt getCoveragePeriod() {  
958                if (myCoveragePeriod == null) {
959                        myCoveragePeriod = new PeriodDt();
960                }
961                return myCoveragePeriod;
962        }
963
964        /**
965         * Sets the value(s) for <b>coveragePeriod</b> ()
966         *
967     * <p>
968     * <b>Definition:</b>
969     * Identifies the period of time the account applies to; e.g. accounts created per fiscal year, quarter, etc.
970     * </p> 
971         */
972        public Account setCoveragePeriod(PeriodDt theValue) {
973                myCoveragePeriod = theValue;
974                return this;
975        }
976        
977        
978
979  
980        /**
981         * Gets the value(s) for <b>subject</b> ().
982         * creating it if it does
983         * not exist. Will not return <code>null</code>.
984         *
985     * <p>
986     * <b>Definition:</b>
987     * Identifies the patient, device, practitioner, location or other object the account is associated with
988     * </p> 
989         */
990        public ResourceReferenceDt getSubject() {  
991                if (mySubject == null) {
992                        mySubject = new ResourceReferenceDt();
993                }
994                return mySubject;
995        }
996
997        /**
998         * Sets the value(s) for <b>subject</b> ()
999         *
1000     * <p>
1001     * <b>Definition:</b>
1002     * Identifies the patient, device, practitioner, location or other object the account is associated with
1003     * </p> 
1004         */
1005        public Account setSubject(ResourceReferenceDt theValue) {
1006                mySubject = theValue;
1007                return this;
1008        }
1009        
1010        
1011
1012  
1013        /**
1014         * Gets the value(s) for <b>owner</b> ().
1015         * creating it if it does
1016         * not exist. Will not return <code>null</code>.
1017         *
1018     * <p>
1019     * <b>Definition:</b>
1020     * Indicates the organization, department, etc. with responsibility for the account.
1021     * </p> 
1022         */
1023        public ResourceReferenceDt getOwner() {  
1024                if (myOwner == null) {
1025                        myOwner = new ResourceReferenceDt();
1026                }
1027                return myOwner;
1028        }
1029
1030        /**
1031         * Sets the value(s) for <b>owner</b> ()
1032         *
1033     * <p>
1034     * <b>Definition:</b>
1035     * Indicates the organization, department, etc. with responsibility for the account.
1036     * </p> 
1037         */
1038        public Account setOwner(ResourceReferenceDt theValue) {
1039                myOwner = theValue;
1040                return this;
1041        }
1042        
1043        
1044
1045  
1046        /**
1047         * Gets the value(s) for <b>description</b> ().
1048         * creating it if it does
1049         * not exist. Will not return <code>null</code>.
1050         *
1051     * <p>
1052     * <b>Definition:</b>
1053     * Provides additional information about what the account tracks and how it is used
1054     * </p> 
1055         */
1056        public StringDt getDescriptionElement() {  
1057                if (myDescription == null) {
1058                        myDescription = new StringDt();
1059                }
1060                return myDescription;
1061        }
1062
1063        
1064        /**
1065         * Gets the value(s) for <b>description</b> ().
1066         * creating it if it does
1067         * not exist. This method may return <code>null</code>.
1068         *
1069     * <p>
1070     * <b>Definition:</b>
1071     * Provides additional information about what the account tracks and how it is used
1072     * </p> 
1073         */
1074        public String getDescription() {  
1075                return getDescriptionElement().getValue();
1076        }
1077
1078        /**
1079         * Sets the value(s) for <b>description</b> ()
1080         *
1081     * <p>
1082     * <b>Definition:</b>
1083     * Provides additional information about what the account tracks and how it is used
1084     * </p> 
1085         */
1086        public Account setDescription(StringDt theValue) {
1087                myDescription = theValue;
1088                return this;
1089        }
1090        
1091        
1092
1093        /**
1094         * Sets the value for <b>description</b> ()
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * Provides additional information about what the account tracks and how it is used
1099     * </p> 
1100         */
1101        public Account setDescription( String theString) {
1102                myDescription = new StringDt(theString); 
1103                return this; 
1104        }
1105
1106 
1107
1108
1109    @Override
1110    public String getResourceName() {
1111        return "Account";
1112    }
1113    
1114    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1115        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1116    }
1117
1118
1119}