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>DocumentManifest</b> Resource
282 * (infrastructure.documents)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * A manifest that defines a set of documents.
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/DocumentManifest">http://hl7.org/fhir/profiles/DocumentManifest</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="DocumentManifest", profile="http://hl7.org/fhir/profiles/DocumentManifest", id="documentmanifest")
301public class DocumentManifest 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>DocumentManifest.masterIdentifier | DocumentManifest.identifier</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="identifier", path="DocumentManifest.masterIdentifier | DocumentManifest.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>DocumentManifest.masterIdentifier | DocumentManifest.identifier</b><br>
321         * </p>
322         */
323        public static final TokenClientParam IDENTIFIER = new TokenClientParam(SP_IDENTIFIER);
324
325        /**
326         * Search parameter constant for <b>subject</b>
327         * <p>
328         * Description: <b></b><br>
329         * Type: <b>reference</b><br>
330         * Path: <b>DocumentManifest.subject</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="subject", path="DocumentManifest.subject", description="", type="reference" , providesMembershipIn={
334 @Compartment(name="Patient") ,  @Compartment(name="RelatedPerson") ,  @Compartment(name="Practitioner")        }
335 )
336        public static final String SP_SUBJECT = "subject";
337
338        /**
339         * <b>Fluent Client</b> search parameter constant for <b>subject</b>
340         * <p>
341         * Description: <b></b><br>
342         * Type: <b>reference</b><br>
343         * Path: <b>DocumentManifest.subject</b><br>
344         * </p>
345         */
346        public static final ReferenceClientParam SUBJECT = new ReferenceClientParam(SP_SUBJECT);
347
348        /**
349         * Search parameter constant for <b>type</b>
350         * <p>
351         * Description: <b></b><br>
352         * Type: <b>token</b><br>
353         * Path: <b>DocumentManifest.type</b><br>
354         * </p>
355         */
356        @SearchParamDefinition(name="type", path="DocumentManifest.type", description="", type="token"  )
357        public static final String SP_TYPE = "type";
358
359        /**
360         * <b>Fluent Client</b> search parameter constant for <b>type</b>
361         * <p>
362         * Description: <b></b><br>
363         * Type: <b>token</b><br>
364         * Path: <b>DocumentManifest.type</b><br>
365         * </p>
366         */
367        public static final TokenClientParam TYPE = new TokenClientParam(SP_TYPE);
368
369        /**
370         * Search parameter constant for <b>recipient</b>
371         * <p>
372         * Description: <b></b><br>
373         * Type: <b>reference</b><br>
374         * Path: <b>DocumentManifest.recipient</b><br>
375         * </p>
376         */
377        @SearchParamDefinition(name="recipient", path="DocumentManifest.recipient", description="", type="reference" , providesMembershipIn={
378 @Compartment(name="Patient") ,  @Compartment(name="RelatedPerson")     }
379 )
380        public static final String SP_RECIPIENT = "recipient";
381
382        /**
383         * <b>Fluent Client</b> search parameter constant for <b>recipient</b>
384         * <p>
385         * Description: <b></b><br>
386         * Type: <b>reference</b><br>
387         * Path: <b>DocumentManifest.recipient</b><br>
388         * </p>
389         */
390        public static final ReferenceClientParam RECIPIENT = new ReferenceClientParam(SP_RECIPIENT);
391
392        /**
393         * Search parameter constant for <b>author</b>
394         * <p>
395         * Description: <b></b><br>
396         * Type: <b>reference</b><br>
397         * Path: <b>DocumentManifest.author</b><br>
398         * </p>
399         */
400        @SearchParamDefinition(name="author", path="DocumentManifest.author", description="", type="reference" , providesMembershipIn={
401 @Compartment(name="Patient") ,  @Compartment(name="Encounter") ,  @Compartment(name="RelatedPerson") ,  @Compartment(name="Practitioner")      }
402 )
403        public static final String SP_AUTHOR = "author";
404
405        /**
406         * <b>Fluent Client</b> search parameter constant for <b>author</b>
407         * <p>
408         * Description: <b></b><br>
409         * Type: <b>reference</b><br>
410         * Path: <b>DocumentManifest.author</b><br>
411         * </p>
412         */
413        public static final ReferenceClientParam AUTHOR = new ReferenceClientParam(SP_AUTHOR);
414
415        /**
416         * Search parameter constant for <b>created</b>
417         * <p>
418         * Description: <b></b><br>
419         * Type: <b>date</b><br>
420         * Path: <b>DocumentManifest.created</b><br>
421         * </p>
422         */
423        @SearchParamDefinition(name="created", path="DocumentManifest.created", description="", type="date"  )
424        public static final String SP_CREATED = "created";
425
426        /**
427         * <b>Fluent Client</b> search parameter constant for <b>created</b>
428         * <p>
429         * Description: <b></b><br>
430         * Type: <b>date</b><br>
431         * Path: <b>DocumentManifest.created</b><br>
432         * </p>
433         */
434        public static final DateClientParam CREATED = new DateClientParam(SP_CREATED);
435
436        /**
437         * Search parameter constant for <b>status</b>
438         * <p>
439         * Description: <b></b><br>
440         * Type: <b>token</b><br>
441         * Path: <b>DocumentManifest.status</b><br>
442         * </p>
443         */
444        @SearchParamDefinition(name="status", path="DocumentManifest.status", description="", type="token"  )
445        public static final String SP_STATUS = "status";
446
447        /**
448         * <b>Fluent Client</b> search parameter constant for <b>status</b>
449         * <p>
450         * Description: <b></b><br>
451         * Type: <b>token</b><br>
452         * Path: <b>DocumentManifest.status</b><br>
453         * </p>
454         */
455        public static final TokenClientParam STATUS = new TokenClientParam(SP_STATUS);
456
457        /**
458         * Search parameter constant for <b>description</b>
459         * <p>
460         * Description: <b></b><br>
461         * Type: <b>string</b><br>
462         * Path: <b>DocumentManifest.description</b><br>
463         * </p>
464         */
465        @SearchParamDefinition(name="description", path="DocumentManifest.description", description="", type="string"  )
466        public static final String SP_DESCRIPTION = "description";
467
468        /**
469         * <b>Fluent Client</b> search parameter constant for <b>description</b>
470         * <p>
471         * Description: <b></b><br>
472         * Type: <b>string</b><br>
473         * Path: <b>DocumentManifest.description</b><br>
474         * </p>
475         */
476        public static final StringClientParam DESCRIPTION = new StringClientParam(SP_DESCRIPTION);
477
478        /**
479         * Search parameter constant for <b>content-ref</b>
480         * <p>
481         * Description: <b></b><br>
482         * Type: <b>reference</b><br>
483         * Path: <b>DocumentManifest.content.pReference</b><br>
484         * </p>
485         */
486        @SearchParamDefinition(name="content-ref", path="DocumentManifest.content.pReference", description="", type="reference"  )
487        public static final String SP_CONTENT_REF = "content-ref";
488
489        /**
490         * <b>Fluent Client</b> search parameter constant for <b>content-ref</b>
491         * <p>
492         * Description: <b></b><br>
493         * Type: <b>reference</b><br>
494         * Path: <b>DocumentManifest.content.pReference</b><br>
495         * </p>
496         */
497        public static final ReferenceClientParam CONTENT_REF = new ReferenceClientParam(SP_CONTENT_REF);
498
499        /**
500         * Search parameter constant for <b>patient</b>
501         * <p>
502         * Description: <b></b><br>
503         * Type: <b>reference</b><br>
504         * Path: <b>DocumentManifest.subject</b><br>
505         * </p>
506         */
507        @SearchParamDefinition(name="patient", path="DocumentManifest.subject", description="", type="reference" , target={
508 ca.uhn.fhir.model.dstu2.resource.Patient.class         }
509 )
510        public static final String SP_PATIENT = "patient";
511
512        /**
513         * <b>Fluent Client</b> search parameter constant for <b>patient</b>
514         * <p>
515         * Description: <b></b><br>
516         * Type: <b>reference</b><br>
517         * Path: <b>DocumentManifest.subject</b><br>
518         * </p>
519         */
520        public static final ReferenceClientParam PATIENT = new ReferenceClientParam(SP_PATIENT);
521
522        /**
523         * Search parameter constant for <b>source</b>
524         * <p>
525         * Description: <b></b><br>
526         * Type: <b>uri</b><br>
527         * Path: <b>DocumentManifest.source</b><br>
528         * </p>
529         */
530        @SearchParamDefinition(name="source", path="DocumentManifest.source", description="", type="uri"  )
531        public static final String SP_SOURCE = "source";
532
533        /**
534         * <b>Fluent Client</b> search parameter constant for <b>source</b>
535         * <p>
536         * Description: <b></b><br>
537         * Type: <b>uri</b><br>
538         * Path: <b>DocumentManifest.source</b><br>
539         * </p>
540         */
541        public static final UriClientParam SOURCE = new UriClientParam(SP_SOURCE);
542
543        /**
544         * Search parameter constant for <b>related-id</b>
545         * <p>
546         * Description: <b></b><br>
547         * Type: <b>token</b><br>
548         * Path: <b>DocumentManifest.related.identifier</b><br>
549         * </p>
550         */
551        @SearchParamDefinition(name="related-id", path="DocumentManifest.related.identifier", description="", type="token"  )
552        public static final String SP_RELATED_ID = "related-id";
553
554        /**
555         * <b>Fluent Client</b> search parameter constant for <b>related-id</b>
556         * <p>
557         * Description: <b></b><br>
558         * Type: <b>token</b><br>
559         * Path: <b>DocumentManifest.related.identifier</b><br>
560         * </p>
561         */
562        public static final TokenClientParam RELATED_ID = new TokenClientParam(SP_RELATED_ID);
563
564        /**
565         * Search parameter constant for <b>related-ref</b>
566         * <p>
567         * Description: <b></b><br>
568         * Type: <b>reference</b><br>
569         * Path: <b>DocumentManifest.related.ref</b><br>
570         * </p>
571         */
572        @SearchParamDefinition(name="related-ref", path="DocumentManifest.related.ref", description="", type="reference"  )
573        public static final String SP_RELATED_REF = "related-ref";
574
575        /**
576         * <b>Fluent Client</b> search parameter constant for <b>related-ref</b>
577         * <p>
578         * Description: <b></b><br>
579         * Type: <b>reference</b><br>
580         * Path: <b>DocumentManifest.related.ref</b><br>
581         * </p>
582         */
583        public static final ReferenceClientParam RELATED_REF = new ReferenceClientParam(SP_RELATED_REF);
584
585
586        /**
587         * Constant for fluent queries to be used to add include statements. Specifies
588         * the path value of "<b>DocumentManifest:author</b>".
589         */
590        public static final Include INCLUDE_AUTHOR = new Include("DocumentManifest:author");
591
592        /**
593         * Constant for fluent queries to be used to add include statements. Specifies
594         * the path value of "<b>DocumentManifest:content-ref</b>".
595         */
596        public static final Include INCLUDE_CONTENT_REF = new Include("DocumentManifest:content-ref");
597
598        /**
599         * Constant for fluent queries to be used to add include statements. Specifies
600         * the path value of "<b>DocumentManifest:patient</b>".
601         */
602        public static final Include INCLUDE_PATIENT = new Include("DocumentManifest:patient");
603
604        /**
605         * Constant for fluent queries to be used to add include statements. Specifies
606         * the path value of "<b>DocumentManifest:recipient</b>".
607         */
608        public static final Include INCLUDE_RECIPIENT = new Include("DocumentManifest:recipient");
609
610        /**
611         * Constant for fluent queries to be used to add include statements. Specifies
612         * the path value of "<b>DocumentManifest:related-ref</b>".
613         */
614        public static final Include INCLUDE_RELATED_REF = new Include("DocumentManifest:related-ref");
615
616        /**
617         * Constant for fluent queries to be used to add include statements. Specifies
618         * the path value of "<b>DocumentManifest:subject</b>".
619         */
620        public static final Include INCLUDE_SUBJECT = new Include("DocumentManifest:subject");
621
622
623        @Child(name="masterIdentifier", type=IdentifierDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
624        @Description(
625                shortDefinition="id",
626                formalDefinition="A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts"
627        )
628        private IdentifierDt myMasterIdentifier;
629        
630        @Child(name="identifier", type=IdentifierDt.class, order=1, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
631        @Description(
632                shortDefinition="id",
633                formalDefinition="Other identifiers associated with the document manifest, including version independent  identifiers"
634        )
635        private java.util.List<IdentifierDt> myIdentifier;
636        
637        @Child(name="subject", order=2, min=0, max=1, summary=false, modifier=false, type={
638                ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Group.class,           ca.uhn.fhir.model.dstu2.resource.Device.class   })
639        @Description(
640                shortDefinition="who.focus",
641                formalDefinition="Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)"
642        )
643        private ResourceReferenceDt mySubject;
644        
645        @Child(name="recipient", order=3, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
646                ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class,           ca.uhn.fhir.model.dstu2.resource.Organization.class     })
647        @Description(
648                shortDefinition="who.cause",
649                formalDefinition="A patient, practitioner, or organization for which this set of documents is intended"
650        )
651        private java.util.List<ResourceReferenceDt> myRecipient;
652        
653        @Child(name="type", type=CodeableConceptDt.class, order=4, min=0, max=1, summary=false, modifier=false) 
654        @Description(
655                shortDefinition="class",
656                formalDefinition="Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider"
657        )
658        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/c80-doc-typecodes")
659        private CodeableConceptDt myType;
660        
661        @Child(name="author", order=5, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
662                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class,            ca.uhn.fhir.model.dstu2.resource.Device.class,          ca.uhn.fhir.model.dstu2.resource.Patient.class,                 ca.uhn.fhir.model.dstu2.resource.RelatedPerson.class    })
663        @Description(
664                shortDefinition="who.author",
665                formalDefinition="Identifies who is responsible for creating the manifest, and adding  documents to it"
666        )
667        private java.util.List<ResourceReferenceDt> myAuthor;
668        
669        @Child(name="created", type=DateTimeDt.class, order=6, min=0, max=1, summary=false, modifier=false)     
670        @Description(
671                shortDefinition="when.done",
672                formalDefinition="When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)"
673        )
674        private DateTimeDt myCreated;
675        
676        @Child(name="source", type=UriDt.class, order=7, min=0, max=1, summary=false, modifier=false)   
677        @Description(
678                shortDefinition="",
679                formalDefinition="Identifies the source system, application, or software that produced the document manifest"
680        )
681        private UriDt mySource;
682        
683        @Child(name="status", type=CodeDt.class, order=8, min=1, max=1, summary=false, modifier=true)   
684        @Description(
685                shortDefinition="status",
686                formalDefinition="The status of this document manifest"
687        )
688        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/document-reference-status")
689        private BoundCodeDt<DocumentReferenceStatusEnum> myStatus;
690        
691        @Child(name="description", type=StringDt.class, order=9, min=0, max=1, summary=false, modifier=false)   
692        @Description(
693                shortDefinition="",
694                formalDefinition="Human-readable description of the source document. This is sometimes known as the \"title\""
695        )
696        private StringDt myDescription;
697        
698        @Child(name="content", order=10, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
699        @Description(
700                shortDefinition="",
701                formalDefinition="The list of Documents included in the manifest."
702        )
703        private java.util.List<Content> myContent;
704        
705        @Child(name="related", order=11, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false) 
706        @Description(
707                shortDefinition="",
708                formalDefinition="Related identifiers or resources associated with the DocumentManifest."
709        )
710        private java.util.List<Related> myRelated;
711        
712
713        @Override
714        public boolean isEmpty() {
715                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myMasterIdentifier,  myIdentifier,  mySubject,  myRecipient,  myType,  myAuthor,  myCreated,  mySource,  myStatus,  myDescription,  myContent,  myRelated);
716        }
717        
718        @Override
719        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
720                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myMasterIdentifier, myIdentifier, mySubject, myRecipient, myType, myAuthor, myCreated, mySource, myStatus, myDescription, myContent, myRelated);
721        }
722
723        /**
724         * Gets the value(s) for <b>masterIdentifier</b> (id).
725         * creating it if it does
726         * not exist. Will not return <code>null</code>.
727         *
728     * <p>
729     * <b>Definition:</b>
730     * A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts
731     * </p> 
732         */
733        public IdentifierDt getMasterIdentifier() {  
734                if (myMasterIdentifier == null) {
735                        myMasterIdentifier = new IdentifierDt();
736                }
737                return myMasterIdentifier;
738        }
739
740        /**
741         * Sets the value(s) for <b>masterIdentifier</b> (id)
742         *
743     * <p>
744     * <b>Definition:</b>
745     * A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts
746     * </p> 
747         */
748        public DocumentManifest setMasterIdentifier(IdentifierDt theValue) {
749                myMasterIdentifier = theValue;
750                return this;
751        }
752        
753        
754
755  
756        /**
757         * Gets the value(s) for <b>identifier</b> (id).
758         * creating it if it does
759         * not exist. Will not return <code>null</code>.
760         *
761     * <p>
762     * <b>Definition:</b>
763     * Other identifiers associated with the document manifest, including version independent  identifiers
764     * </p> 
765         */
766        public java.util.List<IdentifierDt> getIdentifier() {  
767                if (myIdentifier == null) {
768                        myIdentifier = new java.util.ArrayList<IdentifierDt>();
769                }
770                return myIdentifier;
771        }
772
773        /**
774         * Sets the value(s) for <b>identifier</b> (id)
775         *
776     * <p>
777     * <b>Definition:</b>
778     * Other identifiers associated with the document manifest, including version independent  identifiers
779     * </p> 
780         */
781        public DocumentManifest setIdentifier(java.util.List<IdentifierDt> theValue) {
782                myIdentifier = theValue;
783                return this;
784        }
785        
786        
787
788        /**
789         * Adds and returns a new value for <b>identifier</b> (id)
790         *
791     * <p>
792     * <b>Definition:</b>
793     * Other identifiers associated with the document manifest, including version independent  identifiers
794     * </p> 
795         */
796        public IdentifierDt addIdentifier() {
797                IdentifierDt newType = new IdentifierDt();
798                getIdentifier().add(newType);
799                return newType; 
800        }
801
802        /**
803         * Adds a given new value for <b>identifier</b> (id)
804         *
805         * <p>
806         * <b>Definition:</b>
807         * Other identifiers associated with the document manifest, including version independent  identifiers
808         * </p>
809         * @param theValue The identifier to add (must not be <code>null</code>)
810         */
811        public DocumentManifest addIdentifier(IdentifierDt theValue) {
812                if (theValue == null) {
813                        throw new NullPointerException("theValue must not be null");
814                }
815                getIdentifier().add(theValue);
816                return this;
817        }
818
819        /**
820         * Gets the first repetition for <b>identifier</b> (id),
821         * creating it if it does not already exist.
822         *
823     * <p>
824     * <b>Definition:</b>
825     * Other identifiers associated with the document manifest, including version independent  identifiers
826     * </p> 
827         */
828        public IdentifierDt getIdentifierFirstRep() {
829                if (getIdentifier().isEmpty()) {
830                        return addIdentifier();
831                }
832                return getIdentifier().get(0); 
833        }
834  
835        /**
836         * Gets the value(s) for <b>subject</b> (who.focus).
837         * creating it if it does
838         * not exist. Will not return <code>null</code>.
839         *
840     * <p>
841     * <b>Definition:</b>
842     * Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)
843     * </p> 
844         */
845        public ResourceReferenceDt getSubject() {  
846                if (mySubject == null) {
847                        mySubject = new ResourceReferenceDt();
848                }
849                return mySubject;
850        }
851
852        /**
853         * Sets the value(s) for <b>subject</b> (who.focus)
854         *
855     * <p>
856     * <b>Definition:</b>
857     * Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)
858     * </p> 
859         */
860        public DocumentManifest setSubject(ResourceReferenceDt theValue) {
861                mySubject = theValue;
862                return this;
863        }
864        
865        
866
867  
868        /**
869         * Gets the value(s) for <b>recipient</b> (who.cause).
870         * creating it if it does
871         * not exist. Will not return <code>null</code>.
872         *
873     * <p>
874     * <b>Definition:</b>
875     * A patient, practitioner, or organization for which this set of documents is intended
876     * </p> 
877         */
878        public java.util.List<ResourceReferenceDt> getRecipient() {  
879                if (myRecipient == null) {
880                        myRecipient = new java.util.ArrayList<ResourceReferenceDt>();
881                }
882                return myRecipient;
883        }
884
885        /**
886         * Sets the value(s) for <b>recipient</b> (who.cause)
887         *
888     * <p>
889     * <b>Definition:</b>
890     * A patient, practitioner, or organization for which this set of documents is intended
891     * </p> 
892         */
893        public DocumentManifest setRecipient(java.util.List<ResourceReferenceDt> theValue) {
894                myRecipient = theValue;
895                return this;
896        }
897        
898        
899
900        /**
901         * Adds and returns a new value for <b>recipient</b> (who.cause)
902         *
903     * <p>
904     * <b>Definition:</b>
905     * A patient, practitioner, or organization for which this set of documents is intended
906     * </p> 
907         */
908        public ResourceReferenceDt addRecipient() {
909                ResourceReferenceDt newType = new ResourceReferenceDt();
910                getRecipient().add(newType);
911                return newType; 
912        }
913  
914        /**
915         * Gets the value(s) for <b>type</b> (class).
916         * creating it if it does
917         * not exist. Will not return <code>null</code>.
918         *
919     * <p>
920     * <b>Definition:</b>
921     * Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider
922     * </p> 
923         */
924        public CodeableConceptDt getType() {  
925                if (myType == null) {
926                        myType = new CodeableConceptDt();
927                }
928                return myType;
929        }
930
931        /**
932         * Sets the value(s) for <b>type</b> (class)
933         *
934     * <p>
935     * <b>Definition:</b>
936     * Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider
937     * </p> 
938         */
939        public DocumentManifest setType(CodeableConceptDt theValue) {
940                myType = theValue;
941                return this;
942        }
943        
944        
945
946  
947        /**
948         * Gets the value(s) for <b>author</b> (who.author).
949         * creating it if it does
950         * not exist. Will not return <code>null</code>.
951         *
952     * <p>
953     * <b>Definition:</b>
954     * Identifies who is responsible for creating the manifest, and adding  documents to it
955     * </p> 
956         */
957        public java.util.List<ResourceReferenceDt> getAuthor() {  
958                if (myAuthor == null) {
959                        myAuthor = new java.util.ArrayList<ResourceReferenceDt>();
960                }
961                return myAuthor;
962        }
963
964        /**
965         * Sets the value(s) for <b>author</b> (who.author)
966         *
967     * <p>
968     * <b>Definition:</b>
969     * Identifies who is responsible for creating the manifest, and adding  documents to it
970     * </p> 
971         */
972        public DocumentManifest setAuthor(java.util.List<ResourceReferenceDt> theValue) {
973                myAuthor = theValue;
974                return this;
975        }
976        
977        
978
979        /**
980         * Adds and returns a new value for <b>author</b> (who.author)
981         *
982     * <p>
983     * <b>Definition:</b>
984     * Identifies who is responsible for creating the manifest, and adding  documents to it
985     * </p> 
986         */
987        public ResourceReferenceDt addAuthor() {
988                ResourceReferenceDt newType = new ResourceReferenceDt();
989                getAuthor().add(newType);
990                return newType; 
991        }
992  
993        /**
994         * Gets the value(s) for <b>created</b> (when.done).
995         * creating it if it does
996         * not exist. Will not return <code>null</code>.
997         *
998     * <p>
999     * <b>Definition:</b>
1000     * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)
1001     * </p> 
1002         */
1003        public DateTimeDt getCreatedElement() {  
1004                if (myCreated == null) {
1005                        myCreated = new DateTimeDt();
1006                }
1007                return myCreated;
1008        }
1009
1010        
1011        /**
1012         * Gets the value(s) for <b>created</b> (when.done).
1013         * creating it if it does
1014         * not exist. This method may return <code>null</code>.
1015         *
1016     * <p>
1017     * <b>Definition:</b>
1018     * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)
1019     * </p> 
1020         */
1021        public Date getCreated() {  
1022                return getCreatedElement().getValue();
1023        }
1024
1025        /**
1026         * Sets the value(s) for <b>created</b> (when.done)
1027         *
1028     * <p>
1029     * <b>Definition:</b>
1030     * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)
1031     * </p> 
1032         */
1033        public DocumentManifest setCreated(DateTimeDt theValue) {
1034                myCreated = theValue;
1035                return this;
1036        }
1037        
1038        
1039
1040        /**
1041         * Sets the value for <b>created</b> (when.done)
1042         *
1043     * <p>
1044     * <b>Definition:</b>
1045     * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)
1046     * </p> 
1047         */
1048        public DocumentManifest setCreatedWithSecondsPrecision( Date theDate) {
1049                myCreated = new DateTimeDt(theDate); 
1050                return this; 
1051        }
1052
1053        /**
1054         * Sets the value for <b>created</b> (when.done)
1055         *
1056     * <p>
1057     * <b>Definition:</b>
1058     * When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)
1059     * </p> 
1060         */
1061        public DocumentManifest setCreated( Date theDate,  TemporalPrecisionEnum thePrecision) {
1062                myCreated = new DateTimeDt(theDate, thePrecision); 
1063                return this; 
1064        }
1065
1066 
1067        /**
1068         * Gets the value(s) for <b>source</b> ().
1069         * creating it if it does
1070         * not exist. Will not return <code>null</code>.
1071         *
1072     * <p>
1073     * <b>Definition:</b>
1074     * Identifies the source system, application, or software that produced the document manifest
1075     * </p> 
1076         */
1077        public UriDt getSourceElement() {  
1078                if (mySource == null) {
1079                        mySource = new UriDt();
1080                }
1081                return mySource;
1082        }
1083
1084        
1085        /**
1086         * Gets the value(s) for <b>source</b> ().
1087         * creating it if it does
1088         * not exist. This method may return <code>null</code>.
1089         *
1090     * <p>
1091     * <b>Definition:</b>
1092     * Identifies the source system, application, or software that produced the document manifest
1093     * </p> 
1094         */
1095        public String getSource() {  
1096                return getSourceElement().getValue();
1097        }
1098
1099        /**
1100         * Sets the value(s) for <b>source</b> ()
1101         *
1102     * <p>
1103     * <b>Definition:</b>
1104     * Identifies the source system, application, or software that produced the document manifest
1105     * </p> 
1106         */
1107        public DocumentManifest setSource(UriDt theValue) {
1108                mySource = theValue;
1109                return this;
1110        }
1111        
1112        
1113
1114        /**
1115         * Sets the value for <b>source</b> ()
1116         *
1117     * <p>
1118     * <b>Definition:</b>
1119     * Identifies the source system, application, or software that produced the document manifest
1120     * </p> 
1121         */
1122        public DocumentManifest setSource( String theUri) {
1123                mySource = new UriDt(theUri); 
1124                return this; 
1125        }
1126
1127 
1128        /**
1129         * Gets the value(s) for <b>status</b> (status).
1130         * creating it if it does
1131         * not exist. Will not return <code>null</code>.
1132         *
1133     * <p>
1134     * <b>Definition:</b>
1135     * The status of this document manifest
1136     * </p> 
1137         */
1138        public BoundCodeDt<DocumentReferenceStatusEnum> getStatusElement() {  
1139                if (myStatus == null) {
1140                        myStatus = new BoundCodeDt<DocumentReferenceStatusEnum>(DocumentReferenceStatusEnum.VALUESET_BINDER);
1141                }
1142                return myStatus;
1143        }
1144
1145        
1146        /**
1147         * Gets the value(s) for <b>status</b> (status).
1148         * creating it if it does
1149         * not exist. This method may return <code>null</code>.
1150         *
1151     * <p>
1152     * <b>Definition:</b>
1153     * The status of this document manifest
1154     * </p> 
1155         */
1156        public String getStatus() {  
1157                return getStatusElement().getValue();
1158        }
1159
1160        /**
1161         * Sets the value(s) for <b>status</b> (status)
1162         *
1163     * <p>
1164     * <b>Definition:</b>
1165     * The status of this document manifest
1166     * </p> 
1167         */
1168        public DocumentManifest setStatus(BoundCodeDt<DocumentReferenceStatusEnum> theValue) {
1169                myStatus = theValue;
1170                return this;
1171        }
1172        
1173        
1174
1175        /**
1176         * Sets the value(s) for <b>status</b> (status)
1177         *
1178     * <p>
1179     * <b>Definition:</b>
1180     * The status of this document manifest
1181     * </p> 
1182         */
1183        public DocumentManifest setStatus(DocumentReferenceStatusEnum theValue) {
1184                setStatus(new BoundCodeDt<DocumentReferenceStatusEnum>(DocumentReferenceStatusEnum.VALUESET_BINDER, theValue));
1185                
1186/*
1187                getStatusElement().setValueAsEnum(theValue);
1188*/
1189                return this;
1190        }
1191
1192  
1193        /**
1194         * Gets the value(s) for <b>description</b> ().
1195         * creating it if it does
1196         * not exist. Will not return <code>null</code>.
1197         *
1198     * <p>
1199     * <b>Definition:</b>
1200     * Human-readable description of the source document. This is sometimes known as the \&quot;title\&quot;
1201     * </p> 
1202         */
1203        public StringDt getDescriptionElement() {  
1204                if (myDescription == null) {
1205                        myDescription = new StringDt();
1206                }
1207                return myDescription;
1208        }
1209
1210        
1211        /**
1212         * Gets the value(s) for <b>description</b> ().
1213         * creating it if it does
1214         * not exist. This method may return <code>null</code>.
1215         *
1216     * <p>
1217     * <b>Definition:</b>
1218     * Human-readable description of the source document. This is sometimes known as the \&quot;title\&quot;
1219     * </p> 
1220         */
1221        public String getDescription() {  
1222                return getDescriptionElement().getValue();
1223        }
1224
1225        /**
1226         * Sets the value(s) for <b>description</b> ()
1227         *
1228     * <p>
1229     * <b>Definition:</b>
1230     * Human-readable description of the source document. This is sometimes known as the \&quot;title\&quot;
1231     * </p> 
1232         */
1233        public DocumentManifest setDescription(StringDt theValue) {
1234                myDescription = theValue;
1235                return this;
1236        }
1237        
1238        
1239
1240        /**
1241         * Sets the value for <b>description</b> ()
1242         *
1243     * <p>
1244     * <b>Definition:</b>
1245     * Human-readable description of the source document. This is sometimes known as the \&quot;title\&quot;
1246     * </p> 
1247         */
1248        public DocumentManifest setDescription( String theString) {
1249                myDescription = new StringDt(theString); 
1250                return this; 
1251        }
1252
1253 
1254        /**
1255         * Gets the value(s) for <b>content</b> ().
1256         * creating it if it does
1257         * not exist. Will not return <code>null</code>.
1258         *
1259     * <p>
1260     * <b>Definition:</b>
1261     * The list of Documents included in the manifest.
1262     * </p> 
1263         */
1264        public java.util.List<Content> getContent() {  
1265                if (myContent == null) {
1266                        myContent = new java.util.ArrayList<Content>();
1267                }
1268                return myContent;
1269        }
1270
1271        /**
1272         * Sets the value(s) for <b>content</b> ()
1273         *
1274     * <p>
1275     * <b>Definition:</b>
1276     * The list of Documents included in the manifest.
1277     * </p> 
1278         */
1279        public DocumentManifest setContent(java.util.List<Content> theValue) {
1280                myContent = theValue;
1281                return this;
1282        }
1283        
1284        
1285
1286        /**
1287         * Adds and returns a new value for <b>content</b> ()
1288         *
1289     * <p>
1290     * <b>Definition:</b>
1291     * The list of Documents included in the manifest.
1292     * </p> 
1293         */
1294        public Content addContent() {
1295                Content newType = new Content();
1296                getContent().add(newType);
1297                return newType; 
1298        }
1299
1300        /**
1301         * Adds a given new value for <b>content</b> ()
1302         *
1303         * <p>
1304         * <b>Definition:</b>
1305         * The list of Documents included in the manifest.
1306         * </p>
1307         * @param theValue The content to add (must not be <code>null</code>)
1308         */
1309        public DocumentManifest addContent(Content theValue) {
1310                if (theValue == null) {
1311                        throw new NullPointerException("theValue must not be null");
1312                }
1313                getContent().add(theValue);
1314                return this;
1315        }
1316
1317        /**
1318         * Gets the first repetition for <b>content</b> (),
1319         * creating it if it does not already exist.
1320         *
1321     * <p>
1322     * <b>Definition:</b>
1323     * The list of Documents included in the manifest.
1324     * </p> 
1325         */
1326        public Content getContentFirstRep() {
1327                if (getContent().isEmpty()) {
1328                        return addContent();
1329                }
1330                return getContent().get(0); 
1331        }
1332  
1333        /**
1334         * Gets the value(s) for <b>related</b> ().
1335         * creating it if it does
1336         * not exist. Will not return <code>null</code>.
1337         *
1338     * <p>
1339     * <b>Definition:</b>
1340     * Related identifiers or resources associated with the DocumentManifest.
1341     * </p> 
1342         */
1343        public java.util.List<Related> getRelated() {  
1344                if (myRelated == null) {
1345                        myRelated = new java.util.ArrayList<Related>();
1346                }
1347                return myRelated;
1348        }
1349
1350        /**
1351         * Sets the value(s) for <b>related</b> ()
1352         *
1353     * <p>
1354     * <b>Definition:</b>
1355     * Related identifiers or resources associated with the DocumentManifest.
1356     * </p> 
1357         */
1358        public DocumentManifest setRelated(java.util.List<Related> theValue) {
1359                myRelated = theValue;
1360                return this;
1361        }
1362        
1363        
1364
1365        /**
1366         * Adds and returns a new value for <b>related</b> ()
1367         *
1368     * <p>
1369     * <b>Definition:</b>
1370     * Related identifiers or resources associated with the DocumentManifest.
1371     * </p> 
1372         */
1373        public Related addRelated() {
1374                Related newType = new Related();
1375                getRelated().add(newType);
1376                return newType; 
1377        }
1378
1379        /**
1380         * Adds a given new value for <b>related</b> ()
1381         *
1382         * <p>
1383         * <b>Definition:</b>
1384         * Related identifiers or resources associated with the DocumentManifest.
1385         * </p>
1386         * @param theValue The related to add (must not be <code>null</code>)
1387         */
1388        public DocumentManifest addRelated(Related theValue) {
1389                if (theValue == null) {
1390                        throw new NullPointerException("theValue must not be null");
1391                }
1392                getRelated().add(theValue);
1393                return this;
1394        }
1395
1396        /**
1397         * Gets the first repetition for <b>related</b> (),
1398         * creating it if it does not already exist.
1399         *
1400     * <p>
1401     * <b>Definition:</b>
1402     * Related identifiers or resources associated with the DocumentManifest.
1403     * </p> 
1404         */
1405        public Related getRelatedFirstRep() {
1406                if (getRelated().isEmpty()) {
1407                        return addRelated();
1408                }
1409                return getRelated().get(0); 
1410        }
1411  
1412        /**
1413         * Block class for child element: <b>DocumentManifest.content</b> ()
1414         *
1415     * <p>
1416     * <b>Definition:</b>
1417     * The list of Documents included in the manifest.
1418     * </p> 
1419         */
1420        @Block()        
1421        public static class Content 
1422            extends  BaseIdentifiableElement        implements IResourceBlock {
1423        
1424        @Child(name="p", order=0, min=1, max=1, summary=false, modifier=false, type={
1425                AttachmentDt.class,             IResource.class })
1426        @Description(
1427                shortDefinition="",
1428                formalDefinition="The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed"
1429        )
1430        private IDatatype myP;
1431        
1432
1433        @Override
1434        public boolean isEmpty() {
1435                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myP);
1436        }
1437        
1438        @Override
1439        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1440                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myP);
1441        }
1442
1443        /**
1444         * Gets the value(s) for <b>p[x]</b> ().
1445         * creating it if it does
1446         * not exist. Will not return <code>null</code>.
1447         *
1448     * <p>
1449     * <b>Definition:</b>
1450     * The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed
1451     * </p> 
1452         */
1453        public IDatatype getP() {  
1454                return myP;
1455        }
1456
1457        /**
1458         * Sets the value(s) for <b>p[x]</b> ()
1459         *
1460     * <p>
1461     * <b>Definition:</b>
1462     * The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed
1463     * </p> 
1464         */
1465        public Content setP(IDatatype theValue) {
1466                myP = theValue;
1467                return this;
1468        }
1469        
1470        
1471
1472  
1473
1474
1475        }
1476
1477
1478        /**
1479         * Block class for child element: <b>DocumentManifest.related</b> ()
1480         *
1481     * <p>
1482     * <b>Definition:</b>
1483     * Related identifiers or resources associated with the DocumentManifest.
1484     * </p> 
1485         */
1486        @Block()        
1487        public static class Related 
1488            extends  BaseIdentifiableElement        implements IResourceBlock {
1489        
1490        @Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=1, summary=false, modifier=false)        
1491        @Description(
1492                shortDefinition="",
1493                formalDefinition="Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers."
1494        )
1495        private IdentifierDt myIdentifier;
1496        
1497        @Child(name="ref", order=1, min=0, max=1, summary=false, modifier=false, type={
1498                IResource.class })
1499        @Description(
1500                shortDefinition="",
1501                formalDefinition="Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder,  Procedure, EligibilityRequest, etc."
1502        )
1503        private ResourceReferenceDt myRef;
1504        
1505
1506        @Override
1507        public boolean isEmpty() {
1508                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myRef);
1509        }
1510        
1511        @Override
1512        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1513                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myRef);
1514        }
1515
1516        /**
1517         * Gets the value(s) for <b>identifier</b> ().
1518         * creating it if it does
1519         * not exist. Will not return <code>null</code>.
1520         *
1521     * <p>
1522     * <b>Definition:</b>
1523     * Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers.
1524     * </p> 
1525         */
1526        public IdentifierDt getIdentifier() {  
1527                if (myIdentifier == null) {
1528                        myIdentifier = new IdentifierDt();
1529                }
1530                return myIdentifier;
1531        }
1532
1533        /**
1534         * Sets the value(s) for <b>identifier</b> ()
1535         *
1536     * <p>
1537     * <b>Definition:</b>
1538     * Related identifier to this DocumentManifest.  For example, Order numbers, accession numbers, XDW workflow numbers.
1539     * </p> 
1540         */
1541        public Related setIdentifier(IdentifierDt theValue) {
1542                myIdentifier = theValue;
1543                return this;
1544        }
1545        
1546        
1547
1548  
1549        /**
1550         * Gets the value(s) for <b>ref</b> ().
1551         * creating it if it does
1552         * not exist. Will not return <code>null</code>.
1553         *
1554     * <p>
1555     * <b>Definition:</b>
1556     * Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder,  Procedure, EligibilityRequest, etc.
1557     * </p> 
1558         */
1559        public ResourceReferenceDt getRef() {  
1560                if (myRef == null) {
1561                        myRef = new ResourceReferenceDt();
1562                }
1563                return myRef;
1564        }
1565
1566        /**
1567         * Sets the value(s) for <b>ref</b> ()
1568         *
1569     * <p>
1570     * <b>Definition:</b>
1571     * Related Resource to this DocumentManifest. For example, Order, DiagnosticOrder,  Procedure, EligibilityRequest, etc.
1572     * </p> 
1573         */
1574        public Related setRef(ResourceReferenceDt theValue) {
1575                myRef = theValue;
1576                return this;
1577        }
1578        
1579        
1580
1581  
1582
1583
1584        }
1585
1586
1587
1588
1589    @Override
1590    public String getResourceName() {
1591        return "DocumentManifest";
1592    }
1593    
1594    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1595        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1596    }
1597
1598
1599}