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>Organization</b> Resource
320 * (administrative.group)
321 *
322 * <p>
323 * <b>Definition:</b>
324 * A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action.  Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, etc.
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/Organization">http://hl7.org/fhir/profiles/Organization</a> 
335 * </p>
336 *
337 */
338@ResourceDef(name="Organization", profile="http://hl7.org/fhir/profiles/Organization", id="organization")
339public class Organization extends ca.uhn.fhir.model.dstu2.resource.BaseResource
340    implements  IResource     {
341
342        /**
343         * Search parameter constant for <b>name</b>
344         * <p>
345         * Description: <b>A portion of the organization's name</b><br>
346         * Type: <b>string</b><br>
347         * Path: <b>Organization.name</b><br>
348         * </p>
349         */
350        @SearchParamDefinition(name="name", path="Organization.name", description="A portion of the organization's name", type="string"  )
351        public static final String SP_NAME = "name";
352
353        /**
354         * <b>Fluent Client</b> search parameter constant for <b>name</b>
355         * <p>
356         * Description: <b>A portion of the organization's name</b><br>
357         * Type: <b>string</b><br>
358         * Path: <b>Organization.name</b><br>
359         * </p>
360         */
361        public static final StringClientParam NAME = new StringClientParam(SP_NAME);
362
363        /**
364         * Search parameter constant for <b>phonetic</b>
365         * <p>
366         * Description: <b>A portion of the organization's name using some kind of phonetic matching algorithm</b><br>
367         * Type: <b>string</b><br>
368         * Path: <b>Organization.name</b><br>
369         * </p>
370         */
371        @SearchParamDefinition(name="phonetic", path="Organization.name", description="A portion of the organization's name using some kind of phonetic matching algorithm", type="string"  )
372        public static final String SP_PHONETIC = "phonetic";
373
374        /**
375         * <b>Fluent Client</b> search parameter constant for <b>phonetic</b>
376         * <p>
377         * Description: <b>A portion of the organization's name using some kind of phonetic matching algorithm</b><br>
378         * Type: <b>string</b><br>
379         * Path: <b>Organization.name</b><br>
380         * </p>
381         */
382        public static final StringClientParam PHONETIC = new StringClientParam(SP_PHONETIC);
383
384        /**
385         * Search parameter constant for <b>type</b>
386         * <p>
387         * Description: <b>A code for the type of organization</b><br>
388         * Type: <b>token</b><br>
389         * Path: <b>Organization.type</b><br>
390         * </p>
391         */
392        @SearchParamDefinition(name="type", path="Organization.type", description="A code for the type of organization", type="token"  )
393        public static final String SP_TYPE = "type";
394
395        /**
396         * <b>Fluent Client</b> search parameter constant for <b>type</b>
397         * <p>
398         * Description: <b>A code for the type of organization</b><br>
399         * Type: <b>token</b><br>
400         * Path: <b>Organization.type</b><br>
401         * </p>
402         */
403        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
404
405        /**
406         * Search parameter constant for <b>identifier</b>
407         * <p>
408         * Description: <b>Any identifier for the organization (not the accreditation issuer's identifier)</b><br>
409         * Type: <b>token</b><br>
410         * Path: <b>Organization.identifier</b><br>
411         * </p>
412         */
413        @SearchParamDefinition(name="identifier", path="Organization.identifier", description="Any identifier for the organization (not the accreditation issuer's identifier)", type="token"  )
414        public static final String SP_IDENTIFIER = "identifier";
415
416        /**
417         * <b>Fluent Client</b> search parameter constant for <b>identifier</b>
418         * <p>
419         * Description: <b>Any identifier for the organization (not the accreditation issuer's identifier)</b><br>
420         * Type: <b>token</b><br>
421         * Path: <b>Organization.identifier</b><br>
422         * </p>
423         */
424        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
425
426        /**
427         * Search parameter constant for <b>partof</b>
428         * <p>
429         * Description: <b>Search all organizations that are part of the given organization</b><br>
430         * Type: <b>reference</b><br>
431         * Path: <b>Organization.partOf</b><br>
432         * </p>
433         */
434        @SearchParamDefinition(name="partof", path="Organization.partOf", description="Search all organizations that are part of the given organization", type="reference"  )
435        public static final String SP_PARTOF = "partof";
436
437        /**
438         * <b>Fluent Client</b> search parameter constant for <b>partof</b>
439         * <p>
440         * Description: <b>Search all organizations that are part of the given organization</b><br>
441         * Type: <b>reference</b><br>
442         * Path: <b>Organization.partOf</b><br>
443         * </p>
444         */
445        public static final ReferenceClientParam PARTOF = new ReferenceClientParam(SP_PARTOF);
446
447        /**
448         * Search parameter constant for <b>active</b>
449         * <p>
450         * Description: <b>Whether the organization's record is active</b><br>
451         * Type: <b>token</b><br>
452         * Path: <b>Organization.active</b><br>
453         * </p>
454         */
455        @SearchParamDefinition(name="active", path="Organization.active", description="Whether the organization's record is active", type="token"  )
456        public static final String SP_ACTIVE = "active";
457
458        /**
459         * <b>Fluent Client</b> search parameter constant for <b>active</b>
460         * <p>
461         * Description: <b>Whether the organization's record is active</b><br>
462         * Type: <b>token</b><br>
463         * Path: <b>Organization.active</b><br>
464         * </p>
465         */
466        public static final TokenClientParam ACTIVE = new TokenClientParam(SP_ACTIVE);
467
468        /**
469         * Search parameter constant for <b>address</b>
470         * <p>
471         * Description: <b>A (part of the) address of the Organization</b><br>
472         * Type: <b>string</b><br>
473         * Path: <b>Organization.address</b><br>
474         * </p>
475         */
476        @SearchParamDefinition(name="address", path="Organization.address", description="A (part of the) address of the Organization", type="string"  )
477        public static final String SP_ADDRESS = "address";
478
479        /**
480         * <b>Fluent Client</b> search parameter constant for <b>address</b>
481         * <p>
482         * Description: <b>A (part of the) address of the Organization</b><br>
483         * Type: <b>string</b><br>
484         * Path: <b>Organization.address</b><br>
485         * </p>
486         */
487        public static final StringClientParam ADDRESS = new StringClientParam(SP_ADDRESS);
488
489        /**
490         * Search parameter constant for <b>address-city</b>
491         * <p>
492         * Description: <b>A city specified in an address</b><br>
493         * Type: <b>string</b><br>
494         * Path: <b>Organization.address.city</b><br>
495         * </p>
496         */
497        @SearchParamDefinition(name="address-city", path="Organization.address.city", description="A city specified in an address", type="string"  )
498        public static final String SP_ADDRESS_CITY = "address-city";
499
500        /**
501         * <b>Fluent Client</b> search parameter constant for <b>address-city</b>
502         * <p>
503         * Description: <b>A city specified in an address</b><br>
504         * Type: <b>string</b><br>
505         * Path: <b>Organization.address.city</b><br>
506         * </p>
507         */
508        public static final StringClientParam ADDRESS_CITY = new StringClientParam(SP_ADDRESS_CITY);
509
510        /**
511         * Search parameter constant for <b>address-state</b>
512         * <p>
513         * Description: <b>A state specified in an address</b><br>
514         * Type: <b>string</b><br>
515         * Path: <b>Organization.address.state</b><br>
516         * </p>
517         */
518        @SearchParamDefinition(name="address-state", path="Organization.address.state", description="A state specified in an address", type="string"  )
519        public static final String SP_ADDRESS_STATE = "address-state";
520
521        /**
522         * <b>Fluent Client</b> search parameter constant for <b>address-state</b>
523         * <p>
524         * Description: <b>A state specified in an address</b><br>
525         * Type: <b>string</b><br>
526         * Path: <b>Organization.address.state</b><br>
527         * </p>
528         */
529        public static final StringClientParam ADDRESS_STATE = new StringClientParam(SP_ADDRESS_STATE);
530
531        /**
532         * Search parameter constant for <b>address-postalcode</b>
533         * <p>
534         * Description: <b>A postal code specified in an address</b><br>
535         * Type: <b>string</b><br>
536         * Path: <b>Organization.address.postalCode</b><br>
537         * </p>
538         */
539        @SearchParamDefinition(name="address-postalcode", path="Organization.address.postalCode", description="A postal code specified in an address", type="string"  )
540        public static final String SP_ADDRESS_POSTALCODE = "address-postalcode";
541
542        /**
543         * <b>Fluent Client</b> search parameter constant for <b>address-postalcode</b>
544         * <p>
545         * Description: <b>A postal code specified in an address</b><br>
546         * Type: <b>string</b><br>
547         * Path: <b>Organization.address.postalCode</b><br>
548         * </p>
549         */
550        public static final StringClientParam ADDRESS_POSTALCODE = new StringClientParam(SP_ADDRESS_POSTALCODE);
551
552        /**
553         * Search parameter constant for <b>address-country</b>
554         * <p>
555         * Description: <b>A country specified in an address</b><br>
556         * Type: <b>string</b><br>
557         * Path: <b>Organization.address.country</b><br>
558         * </p>
559         */
560        @SearchParamDefinition(name="address-country", path="Organization.address.country", description="A country specified in an address", type="string"  )
561        public static final String SP_ADDRESS_COUNTRY = "address-country";
562
563        /**
564         * <b>Fluent Client</b> search parameter constant for <b>address-country</b>
565         * <p>
566         * Description: <b>A country specified in an address</b><br>
567         * Type: <b>string</b><br>
568         * Path: <b>Organization.address.country</b><br>
569         * </p>
570         */
571        public static final StringClientParam ADDRESS_COUNTRY = new StringClientParam(SP_ADDRESS_COUNTRY);
572
573        /**
574         * Search parameter constant for <b>address-use</b>
575         * <p>
576         * Description: <b>A use code specified in an address</b><br>
577         * Type: <b>token</b><br>
578         * Path: <b>Organization.address.use</b><br>
579         * </p>
580         */
581        @SearchParamDefinition(name="address-use", path="Organization.address.use", description="A use code specified in an address", type="token"  )
582        public static final String SP_ADDRESS_USE = "address-use";
583
584        /**
585         * <b>Fluent Client</b> search parameter constant for <b>address-use</b>
586         * <p>
587         * Description: <b>A use code specified in an address</b><br>
588         * Type: <b>token</b><br>
589         * Path: <b>Organization.address.use</b><br>
590         * </p>
591         */
592        public static final TokenClientParam ADDRESS_USE = new TokenClientParam(SP_ADDRESS_USE);
593
594
595        /**
596         * Constant for fluent queries to be used to add include statements. Specifies
597         * the path value of "<b>Organization:partof</b>".
598         */
599        public static final Include INCLUDE_PARTOF = new Include("Organization:partof");
600
601
602        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED, summary=true, modifier=false)       
603        @Description(
604                shortDefinition="id",
605                formalDefinition="Identifier for the organization that is used to identify the organization across multiple disparate systems"
606        )
607        private java.util.List<IdentifierDt> myIdentifier;
608        
609        @Child(name="active", type=BooleanDt.class, order=1, min=0, max=1, summary=true, modifier=true) 
610        @Description(
611                shortDefinition="status",
612                formalDefinition="Whether the organization's record is still in active use"
613        )
614        private BooleanDt myActive;
615        
616        @Child(name="type", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=true, modifier=false)  
617        @Description(
618                shortDefinition="class",
619                formalDefinition="The kind of organization that this is"
620        )
621        private BoundCodeableConceptDt<OrganizationTypeEnum> myType;
622        
623        @Child(name="name", type=StringDt.class, order=3, min=0, max=1, summary=true, modifier=false)   
624        @Description(
625                shortDefinition="",
626                formalDefinition="A name associated with the organization"
627        )
628        private StringDt myName;
629        
630        @Child(name="telecom", type=ContactPointDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
631        @Description(
632                shortDefinition="",
633                formalDefinition="A contact detail for the organization"
634        )
635        private java.util.List<ContactPointDt> myTelecom;
636        
637        @Child(name="address", type=AddressDt.class, order=5, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
638        @Description(
639                shortDefinition="",
640                formalDefinition="An address for the organization"
641        )
642        private java.util.List<AddressDt> myAddress;
643        
644        @Child(name="partOf", order=6, min=0, max=1, summary=true, modifier=false, type={
645                ca.uhn.fhir.model.dstu2.resource.Organization.class     })
646        @Description(
647                shortDefinition="",
648                formalDefinition="The organization of which this organization forms a part"
649        )
650        private ResourceReferenceDt myPartOf;
651        
652        @Child(name="contact", order=7, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)  
653        @Description(
654                shortDefinition="",
655                formalDefinition=""
656        )
657        private java.util.List<Contact> myContact;
658        
659
660        @Override
661        public boolean isEmpty() {
662                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myActive,  myType,  myName,  myTelecom,  myAddress,  myPartOf,  myContact);
663        }
664        
665        @Override
666        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
667                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myActive, myType, myName, myTelecom, myAddress, myPartOf, myContact);
668        }
669
670        /**
671         * Gets the value(s) for <b>identifier</b> (id).
672         * creating it if it does
673         * not exist. Will not return <code>null</code>.
674         *
675     * <p>
676     * <b>Definition:</b>
677     * Identifier for the organization that is used to identify the organization across multiple disparate systems
678     * </p> 
679         */
680        public java.util.List<IdentifierDt> getIdentifier() {  
681                if (myIdentifier == null) {
682                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
683                }
684                return myIdentifier;
685        }
686
687        /**
688         * Sets the value(s) for <b>identifier</b> (id)
689         *
690     * <p>
691     * <b>Definition:</b>
692     * Identifier for the organization that is used to identify the organization across multiple disparate systems
693     * </p> 
694         */
695        public Organization setIdentifier(java.util.List<IdentifierDt> theValue) {
696                myIdentifier = theValue;
697                return this;
698        }
699        
700        
701
702        /**
703         * Adds and returns a new value for <b>identifier</b> (id)
704         *
705     * <p>
706     * <b>Definition:</b>
707     * Identifier for the organization that is used to identify the organization across multiple disparate systems
708     * </p> 
709         */
710        public IdentifierDt addIdentifier() {
711                IdentifierDt newType = new IdentifierDt();
712                getIdentifier().add(newType);
713                return newType; 
714        }
715
716        /**
717         * Adds a given new value for <b>identifier</b> (id)
718         *
719         * <p>
720         * <b>Definition:</b>
721         * Identifier for the organization that is used to identify the organization across multiple disparate systems
722         * </p>
723         * @param theValue The identifier to add (must not be <code>null</code>)
724         */
725        public Organization addIdentifier(IdentifierDt theValue) {
726                if (theValue == null) {
727                        throw new NullPointerException("theValue must not be null");
728                }
729                getIdentifier().add(theValue);
730                return this;
731        }
732
733        /**
734         * Gets the first repetition for <b>identifier</b> (id),
735         * creating it if it does not already exist.
736         *
737     * <p>
738     * <b>Definition:</b>
739     * Identifier for the organization that is used to identify the organization across multiple disparate systems
740     * </p> 
741         */
742        public IdentifierDt getIdentifierFirstRep() {
743                if (getIdentifier().isEmpty()) {
744                        return addIdentifier();
745                }
746                return getIdentifier().get(0); 
747        }
748  
749        /**
750         * Gets the value(s) for <b>active</b> (status).
751         * creating it if it does
752         * not exist. Will not return <code>null</code>.
753         *
754     * <p>
755     * <b>Definition:</b>
756     * Whether the organization's record is still in active use
757     * </p> 
758         */
759        public BooleanDt getActiveElement() {  
760                if (myActive == null) {
761                        myActive = new BooleanDt();
762                }
763                return myActive;
764        }
765
766        
767        /**
768         * Gets the value(s) for <b>active</b> (status).
769         * creating it if it does
770         * not exist. Will not return <code>null</code>.
771         *
772     * <p>
773     * <b>Definition:</b>
774     * Whether the organization's record is still in active use
775     * </p> 
776         */
777        public Boolean getActive() {  
778                return getActiveElement().getValue();
779        }
780
781        /**
782         * Sets the value(s) for <b>active</b> (status)
783         *
784     * <p>
785     * <b>Definition:</b>
786     * Whether the organization's record is still in active use
787     * </p> 
788         */
789        public Organization setActive(BooleanDt theValue) {
790                myActive = theValue;
791                return this;
792        }
793        
794        
795
796        /**
797         * Sets the value for <b>active</b> (status)
798         *
799     * <p>
800     * <b>Definition:</b>
801     * Whether the organization's record is still in active use
802     * </p> 
803         */
804        public Organization setActive( boolean theBoolean) {
805                myActive = new BooleanDt(theBoolean); 
806                return this; 
807        }
808
809 
810        /**
811         * Gets the value(s) for <b>type</b> (class).
812         * creating it if it does
813         * not exist. Will not return <code>null</code>.
814         *
815     * <p>
816     * <b>Definition:</b>
817     * The kind of organization that this is
818     * </p> 
819         */
820        public BoundCodeableConceptDt<OrganizationTypeEnum> getType() {  
821                if (myType == null) {
822                        myType = new BoundCodeableConceptDt<OrganizationTypeEnum>(OrganizationTypeEnum.VALUESET_BINDER);
823                }
824                return myType;
825        }
826
827        /**
828         * Sets the value(s) for <b>type</b> (class)
829         *
830     * <p>
831     * <b>Definition:</b>
832     * The kind of organization that this is
833     * </p> 
834         */
835        public Organization setType(BoundCodeableConceptDt<OrganizationTypeEnum> theValue) {
836                myType = theValue;
837                return this;
838        }
839        
840        
841
842        /**
843         * Sets the value(s) for <b>type</b> (class)
844         *
845     * <p>
846     * <b>Definition:</b>
847     * The kind of organization that this is
848     * </p> 
849         */
850        public Organization setType(OrganizationTypeEnum theValue) {
851                setType(new BoundCodeableConceptDt<OrganizationTypeEnum>(OrganizationTypeEnum.VALUESET_BINDER, theValue));
852                
853/*
854                getType().setValueAsEnum(theValue);
855*/
856                return this;
857        }
858
859  
860        /**
861         * Gets the value(s) for <b>name</b> ().
862         * creating it if it does
863         * not exist. Will not return <code>null</code>.
864         *
865     * <p>
866     * <b>Definition:</b>
867     * A name associated with the organization
868     * </p> 
869         */
870        public StringDt getNameElement() {  
871                if (myName == null) {
872                        myName = new StringDt();
873                }
874                return myName;
875        }
876
877        
878        /**
879         * Gets the value(s) for <b>name</b> ().
880         * creating it if it does
881         * not exist. Will not return <code>null</code>.
882         *
883     * <p>
884     * <b>Definition:</b>
885     * A name associated with the organization
886     * </p> 
887         */
888        public String getName() {  
889                return getNameElement().getValue();
890        }
891
892        /**
893         * Sets the value(s) for <b>name</b> ()
894         *
895     * <p>
896     * <b>Definition:</b>
897     * A name associated with the organization
898     * </p> 
899         */
900        public Organization setName(StringDt theValue) {
901                myName = theValue;
902                return this;
903        }
904        
905        
906
907        /**
908         * Sets the value for <b>name</b> ()
909         *
910     * <p>
911     * <b>Definition:</b>
912     * A name associated with the organization
913     * </p> 
914         */
915        public Organization setName( String theString) {
916                myName = new StringDt(theString); 
917                return this; 
918        }
919
920 
921        /**
922         * Gets the value(s) for <b>telecom</b> ().
923         * creating it if it does
924         * not exist. Will not return <code>null</code>.
925         *
926     * <p>
927     * <b>Definition:</b>
928     * A contact detail for the organization
929     * </p> 
930         */
931        public java.util.List<ContactPointDt> getTelecom() {  
932                if (myTelecom == null) {
933                        myTelecom = new java.util.ArrayList<ContactPointDt>();
934                }
935                return myTelecom;
936        }
937
938        /**
939         * Sets the value(s) for <b>telecom</b> ()
940         *
941     * <p>
942     * <b>Definition:</b>
943     * A contact detail for the organization
944     * </p> 
945         */
946        public Organization setTelecom(java.util.List<ContactPointDt> theValue) {
947                myTelecom = theValue;
948                return this;
949        }
950        
951        
952
953        /**
954         * Adds and returns a new value for <b>telecom</b> ()
955         *
956     * <p>
957     * <b>Definition:</b>
958     * A contact detail for the organization
959     * </p> 
960         */
961        public ContactPointDt addTelecom() {
962                ContactPointDt newType = new ContactPointDt();
963                getTelecom().add(newType);
964                return newType; 
965        }
966
967        /**
968         * Adds a given new value for <b>telecom</b> ()
969         *
970         * <p>
971         * <b>Definition:</b>
972         * A contact detail for the organization
973         * </p>
974         * @param theValue The telecom to add (must not be <code>null</code>)
975         */
976        public Organization addTelecom(ContactPointDt theValue) {
977                if (theValue == null) {
978                        throw new NullPointerException("theValue must not be null");
979                }
980                getTelecom().add(theValue);
981                return this;
982        }
983
984        /**
985         * Gets the first repetition for <b>telecom</b> (),
986         * creating it if it does not already exist.
987         *
988     * <p>
989     * <b>Definition:</b>
990     * A contact detail for the organization
991     * </p> 
992         */
993        public ContactPointDt getTelecomFirstRep() {
994                if (getTelecom().isEmpty()) {
995                        return addTelecom();
996                }
997                return getTelecom().get(0); 
998        }
999  
1000        /**
1001         * Gets the value(s) for <b>address</b> ().
1002         * creating it if it does
1003         * not exist. Will not return <code>null</code>.
1004         *
1005     * <p>
1006     * <b>Definition:</b>
1007     * An address for the organization
1008     * </p> 
1009         */
1010        public java.util.List<AddressDt> getAddress() {  
1011                if (myAddress == null) {
1012                        myAddress = new java.util.ArrayList<AddressDt>();
1013                }
1014                return myAddress;
1015        }
1016
1017        /**
1018         * Sets the value(s) for <b>address</b> ()
1019         *
1020     * <p>
1021     * <b>Definition:</b>
1022     * An address for the organization
1023     * </p> 
1024         */
1025        public Organization setAddress(java.util.List<AddressDt> theValue) {
1026                myAddress = theValue;
1027                return this;
1028        }
1029        
1030        
1031
1032        /**
1033         * Adds and returns a new value for <b>address</b> ()
1034         *
1035     * <p>
1036     * <b>Definition:</b>
1037     * An address for the organization
1038     * </p> 
1039         */
1040        public AddressDt addAddress() {
1041                AddressDt newType = new AddressDt();
1042                getAddress().add(newType);
1043                return newType; 
1044        }
1045
1046        /**
1047         * Adds a given new value for <b>address</b> ()
1048         *
1049         * <p>
1050         * <b>Definition:</b>
1051         * An address for the organization
1052         * </p>
1053         * @param theValue The address to add (must not be <code>null</code>)
1054         */
1055        public Organization addAddress(AddressDt theValue) {
1056                if (theValue == null) {
1057                        throw new NullPointerException("theValue must not be null");
1058                }
1059                getAddress().add(theValue);
1060                return this;
1061        }
1062
1063        /**
1064         * Gets the first repetition for <b>address</b> (),
1065         * creating it if it does not already exist.
1066         *
1067     * <p>
1068     * <b>Definition:</b>
1069     * An address for the organization
1070     * </p> 
1071         */
1072        public AddressDt getAddressFirstRep() {
1073                if (getAddress().isEmpty()) {
1074                        return addAddress();
1075                }
1076                return getAddress().get(0); 
1077        }
1078  
1079        /**
1080         * Gets the value(s) for <b>partOf</b> ().
1081         * creating it if it does
1082         * not exist. Will not return <code>null</code>.
1083         *
1084     * <p>
1085     * <b>Definition:</b>
1086     * The organization of which this organization forms a part
1087     * </p> 
1088         */
1089        public ResourceReferenceDt getPartOf() {  
1090                if (myPartOf == null) {
1091                        myPartOf = new ResourceReferenceDt();
1092                }
1093                return myPartOf;
1094        }
1095
1096        /**
1097         * Sets the value(s) for <b>partOf</b> ()
1098         *
1099     * <p>
1100     * <b>Definition:</b>
1101     * The organization of which this organization forms a part
1102     * </p> 
1103         */
1104        public Organization setPartOf(ResourceReferenceDt theValue) {
1105                myPartOf = theValue;
1106                return this;
1107        }
1108        
1109        
1110
1111  
1112        /**
1113         * Gets the value(s) for <b>contact</b> ().
1114         * creating it if it does
1115         * not exist. Will not return <code>null</code>.
1116         *
1117     * <p>
1118     * <b>Definition:</b>
1119     * 
1120     * </p> 
1121         */
1122        public java.util.List<Contact> getContact() {  
1123                if (myContact == null) {
1124                        myContact = new java.util.ArrayList<Contact>();
1125                }
1126                return myContact;
1127        }
1128
1129        /**
1130         * Sets the value(s) for <b>contact</b> ()
1131         *
1132     * <p>
1133     * <b>Definition:</b>
1134     * 
1135     * </p> 
1136         */
1137        public Organization setContact(java.util.List<Contact> theValue) {
1138                myContact = theValue;
1139                return this;
1140        }
1141        
1142        
1143
1144        /**
1145         * Adds and returns a new value for <b>contact</b> ()
1146         *
1147     * <p>
1148     * <b>Definition:</b>
1149     * 
1150     * </p> 
1151         */
1152        public Contact addContact() {
1153                Contact newType = new Contact();
1154                getContact().add(newType);
1155                return newType; 
1156        }
1157
1158        /**
1159         * Adds a given new value for <b>contact</b> ()
1160         *
1161         * <p>
1162         * <b>Definition:</b>
1163         * 
1164         * </p>
1165         * @param theValue The contact to add (must not be <code>null</code>)
1166         */
1167        public Organization addContact(Contact theValue) {
1168                if (theValue == null) {
1169                        throw new NullPointerException("theValue must not be null");
1170                }
1171                getContact().add(theValue);
1172                return this;
1173        }
1174
1175        /**
1176         * Gets the first repetition for <b>contact</b> (),
1177         * creating it if it does not already exist.
1178         *
1179     * <p>
1180     * <b>Definition:</b>
1181     * 
1182     * </p> 
1183         */
1184        public Contact getContactFirstRep() {
1185                if (getContact().isEmpty()) {
1186                        return addContact();
1187                }
1188                return getContact().get(0); 
1189        }
1190  
1191        /**
1192         * Block class for child element: <b>Organization.contact</b> ()
1193         *
1194     * <p>
1195     * <b>Definition:</b>
1196     * 
1197     * </p> 
1198         */
1199        @Block()        
1200        public static class Contact 
1201            extends  BaseIdentifiableElement        implements IResourceBlock {
1202        
1203        @Child(name="purpose", type=CodeableConceptDt.class, order=0, min=0, max=1, summary=false, modifier=false)      
1204        @Description(
1205                shortDefinition="",
1206                formalDefinition="Indicates a purpose for which the contact can be reached"
1207        )
1208        private CodeableConceptDt myPurpose;
1209        
1210        @Child(name="name", type=HumanNameDt.class, order=1, min=0, max=1, summary=false, modifier=false)       
1211        @Description(
1212                shortDefinition="",
1213                formalDefinition="A name associated with the contact"
1214        )
1215        private HumanNameDt myName;
1216        
1217        @Child(name="telecom", type=ContactPointDt.class, order=2, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)       
1218        @Description(
1219                shortDefinition="",
1220                formalDefinition="A contact detail (e.g. a telephone number or an email address) by which the party may be contacted."
1221        )
1222        private java.util.List<ContactPointDt> myTelecom;
1223        
1224        @Child(name="address", type=AddressDt.class, order=3, min=0, max=1, summary=false, modifier=false)      
1225        @Description(
1226                shortDefinition="",
1227                formalDefinition="Visiting or postal addresses for the contact"
1228        )
1229        private AddressDt myAddress;
1230        
1231
1232        @Override
1233        public boolean isEmpty() {
1234                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myPurpose,  myName,  myTelecom,  myAddress);
1235        }
1236        
1237        @Override
1238        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1239                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myPurpose, myName, myTelecom, myAddress);
1240        }
1241
1242        /**
1243         * Gets the value(s) for <b>purpose</b> ().
1244         * creating it if it does
1245         * not exist. Will not return <code>null</code>.
1246         *
1247     * <p>
1248     * <b>Definition:</b>
1249     * Indicates a purpose for which the contact can be reached
1250     * </p> 
1251         */
1252        public CodeableConceptDt getPurpose() {  
1253                if (myPurpose == null) {
1254                        myPurpose = new CodeableConceptDt();
1255                }
1256                return myPurpose;
1257        }
1258
1259        /**
1260         * Sets the value(s) for <b>purpose</b> ()
1261         *
1262     * <p>
1263     * <b>Definition:</b>
1264     * Indicates a purpose for which the contact can be reached
1265     * </p> 
1266         */
1267        public Contact setPurpose(CodeableConceptDt theValue) {
1268                myPurpose = theValue;
1269                return this;
1270        }
1271        
1272        
1273
1274  
1275        /**
1276         * Gets the value(s) for <b>name</b> ().
1277         * creating it if it does
1278         * not exist. Will not return <code>null</code>.
1279         *
1280     * <p>
1281     * <b>Definition:</b>
1282     * A name associated with the contact
1283     * </p> 
1284         */
1285        public HumanNameDt getName() {  
1286                if (myName == null) {
1287                        myName = new HumanNameDt();
1288                }
1289                return myName;
1290        }
1291
1292        /**
1293         * Sets the value(s) for <b>name</b> ()
1294         *
1295     * <p>
1296     * <b>Definition:</b>
1297     * A name associated with the contact
1298     * </p> 
1299         */
1300        public Contact setName(HumanNameDt theValue) {
1301                myName = theValue;
1302                return this;
1303        }
1304        
1305        
1306
1307  
1308        /**
1309         * Gets the value(s) for <b>telecom</b> ().
1310         * creating it if it does
1311         * not exist. Will not return <code>null</code>.
1312         *
1313     * <p>
1314     * <b>Definition:</b>
1315     * A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
1316     * </p> 
1317         */
1318        public java.util.List<ContactPointDt> getTelecom() {  
1319                if (myTelecom == null) {
1320                        myTelecom = new java.util.ArrayList<ContactPointDt>();
1321                }
1322                return myTelecom;
1323        }
1324
1325        /**
1326         * Sets the value(s) for <b>telecom</b> ()
1327         *
1328     * <p>
1329     * <b>Definition:</b>
1330     * A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
1331     * </p> 
1332         */
1333        public Contact setTelecom(java.util.List<ContactPointDt> theValue) {
1334                myTelecom = theValue;
1335                return this;
1336        }
1337        
1338        
1339
1340        /**
1341         * Adds and returns a new value for <b>telecom</b> ()
1342         *
1343     * <p>
1344     * <b>Definition:</b>
1345     * A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
1346     * </p> 
1347         */
1348        public ContactPointDt addTelecom() {
1349                ContactPointDt newType = new ContactPointDt();
1350                getTelecom().add(newType);
1351                return newType; 
1352        }
1353
1354        /**
1355         * Adds a given new value for <b>telecom</b> ()
1356         *
1357         * <p>
1358         * <b>Definition:</b>
1359         * A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
1360         * </p>
1361         * @param theValue The telecom to add (must not be <code>null</code>)
1362         */
1363        public Contact addTelecom(ContactPointDt theValue) {
1364                if (theValue == null) {
1365                        throw new NullPointerException("theValue must not be null");
1366                }
1367                getTelecom().add(theValue);
1368                return this;
1369        }
1370
1371        /**
1372         * Gets the first repetition for <b>telecom</b> (),
1373         * creating it if it does not already exist.
1374         *
1375     * <p>
1376     * <b>Definition:</b>
1377     * A contact detail (e.g. a telephone number or an email address) by which the party may be contacted.
1378     * </p> 
1379         */
1380        public ContactPointDt getTelecomFirstRep() {
1381                if (getTelecom().isEmpty()) {
1382                        return addTelecom();
1383                }
1384                return getTelecom().get(0); 
1385        }
1386  
1387        /**
1388         * Gets the value(s) for <b>address</b> ().
1389         * creating it if it does
1390         * not exist. Will not return <code>null</code>.
1391         *
1392     * <p>
1393     * <b>Definition:</b>
1394     * Visiting or postal addresses for the contact
1395     * </p> 
1396         */
1397        public AddressDt getAddress() {  
1398                if (myAddress == null) {
1399                        myAddress = new AddressDt();
1400                }
1401                return myAddress;
1402        }
1403
1404        /**
1405         * Sets the value(s) for <b>address</b> ()
1406         *
1407     * <p>
1408     * <b>Definition:</b>
1409     * Visiting or postal addresses for the contact
1410     * </p> 
1411         */
1412        public Contact setAddress(AddressDt theValue) {
1413                myAddress = theValue;
1414                return this;
1415        }
1416        
1417        
1418
1419  
1420
1421
1422        }
1423
1424
1425
1426
1427    @Override
1428    public String getResourceName() {
1429        return "Organization";
1430    }
1431    
1432    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1433        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1434    }
1435
1436
1437}