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>MessageHeader</b> Resource
282 * (infrastructure.exchange)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * The header for a message exchange that is either requesting or responding to an action.  The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle.
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * Many implementations are not prepared to use REST and need a messaging based infrastructure
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/MessageHeader">http://hl7.org/fhir/profiles/MessageHeader</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="MessageHeader", profile="http://hl7.org/fhir/profiles/MessageHeader", id="messageheader")
301public class MessageHeader extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  IResource     {
303
304        /**
305         * Search parameter constant for <b>timestamp</b>
306         * <p>
307         * Description: <b></b><br>
308         * Type: <b>date</b><br>
309         * Path: <b>MessageHeader.timestamp</b><br>
310         * </p>
311         */
312        @SearchParamDefinition(name="timestamp", path="MessageHeader.timestamp", description="", type="date"  )
313        public static final String SP_TIMESTAMP = "timestamp";
314
315        /**
316         * <b>Fluent Client</b> search parameter constant for <b>timestamp</b>
317         * <p>
318         * Description: <b></b><br>
319         * Type: <b>date</b><br>
320         * Path: <b>MessageHeader.timestamp</b><br>
321         * </p>
322         */
323        public static final DateClientParam TIMESTAMP = new DateClientParam(SP_TIMESTAMP);
324
325        /**
326         * Search parameter constant for <b>event</b>
327         * <p>
328         * Description: <b></b><br>
329         * Type: <b>token</b><br>
330         * Path: <b>MessageHeader.event</b><br>
331         * </p>
332         */
333        @SearchParamDefinition(name="event", path="MessageHeader.event", description="", type="token"  )
334        public static final String SP_EVENT = "event";
335
336        /**
337         * <b>Fluent Client</b> search parameter constant for <b>event</b>
338         * <p>
339         * Description: <b></b><br>
340         * Type: <b>token</b><br>
341         * Path: <b>MessageHeader.event</b><br>
342         * </p>
343         */
344        public static final TokenClientParam EVENT = new TokenClientParam(SP_EVENT);
345
346        /**
347         * Search parameter constant for <b>response-id</b>
348         * <p>
349         * Description: <b></b><br>
350         * Type: <b>token</b><br>
351         * Path: <b>MessageHeader.response.identifier</b><br>
352         * </p>
353         */
354        @SearchParamDefinition(name="response-id", path="MessageHeader.response.identifier", description="", type="token"  )
355        public static final String SP_RESPONSE_ID = "response-id";
356
357        /**
358         * <b>Fluent Client</b> search parameter constant for <b>response-id</b>
359         * <p>
360         * Description: <b></b><br>
361         * Type: <b>token</b><br>
362         * Path: <b>MessageHeader.response.identifier</b><br>
363         * </p>
364         */
365        public static final TokenClientParam RESPONSE_ID = new TokenClientParam(SP_RESPONSE_ID);
366
367        /**
368         * Search parameter constant for <b>code</b>
369         * <p>
370         * Description: <b></b><br>
371         * Type: <b>token</b><br>
372         * Path: <b>MessageHeader.response.code</b><br>
373         * </p>
374         */
375        @SearchParamDefinition(name="code", path="MessageHeader.response.code", description="", type="token"  )
376        public static final String SP_CODE = "code";
377
378        /**
379         * <b>Fluent Client</b> search parameter constant for <b>code</b>
380         * <p>
381         * Description: <b></b><br>
382         * Type: <b>token</b><br>
383         * Path: <b>MessageHeader.response.code</b><br>
384         * </p>
385         */
386        public static final TokenClientParam CODE = new TokenClientParam(SP_CODE);
387
388        /**
389         * Search parameter constant for <b>source</b>
390         * <p>
391         * Description: <b></b><br>
392         * Type: <b>string</b><br>
393         * Path: <b>MessageHeader.source.name</b><br>
394         * </p>
395         */
396        @SearchParamDefinition(name="source", path="MessageHeader.source.name", description="", type="string"  )
397        public static final String SP_SOURCE = "source";
398
399        /**
400         * <b>Fluent Client</b> search parameter constant for <b>source</b>
401         * <p>
402         * Description: <b></b><br>
403         * Type: <b>string</b><br>
404         * Path: <b>MessageHeader.source.name</b><br>
405         * </p>
406         */
407        public static final StringClientParam SOURCE = new StringClientParam(SP_SOURCE);
408
409        /**
410         * Search parameter constant for <b>source-uri</b>
411         * <p>
412         * Description: <b></b><br>
413         * Type: <b>uri</b><br>
414         * Path: <b>MessageHeader.source.endpoint</b><br>
415         * </p>
416         */
417        @SearchParamDefinition(name="source-uri", path="MessageHeader.source.endpoint", description="", type="uri"  )
418        public static final String SP_SOURCE_URI = "source-uri";
419
420        /**
421         * <b>Fluent Client</b> search parameter constant for <b>source-uri</b>
422         * <p>
423         * Description: <b></b><br>
424         * Type: <b>uri</b><br>
425         * Path: <b>MessageHeader.source.endpoint</b><br>
426         * </p>
427         */
428        public static final UriClientParam SOURCE_URI = new UriClientParam(SP_SOURCE_URI);
429
430        /**
431         * Search parameter constant for <b>destination</b>
432         * <p>
433         * Description: <b></b><br>
434         * Type: <b>string</b><br>
435         * Path: <b>MessageHeader.destination.name</b><br>
436         * </p>
437         */
438        @SearchParamDefinition(name="destination", path="MessageHeader.destination.name", description="", type="string"  )
439        public static final String SP_DESTINATION = "destination";
440
441        /**
442         * <b>Fluent Client</b> search parameter constant for <b>destination</b>
443         * <p>
444         * Description: <b></b><br>
445         * Type: <b>string</b><br>
446         * Path: <b>MessageHeader.destination.name</b><br>
447         * </p>
448         */
449        public static final StringClientParam DESTINATION = new StringClientParam(SP_DESTINATION);
450
451        /**
452         * Search parameter constant for <b>destination-uri</b>
453         * <p>
454         * Description: <b></b><br>
455         * Type: <b>uri</b><br>
456         * Path: <b>MessageHeader.destination.endpoint</b><br>
457         * </p>
458         */
459        @SearchParamDefinition(name="destination-uri", path="MessageHeader.destination.endpoint", description="", type="uri"  )
460        public static final String SP_DESTINATION_URI = "destination-uri";
461
462        /**
463         * <b>Fluent Client</b> search parameter constant for <b>destination-uri</b>
464         * <p>
465         * Description: <b></b><br>
466         * Type: <b>uri</b><br>
467         * Path: <b>MessageHeader.destination.endpoint</b><br>
468         * </p>
469         */
470        public static final UriClientParam DESTINATION_URI = new UriClientParam(SP_DESTINATION_URI);
471
472        /**
473         * Search parameter constant for <b>data</b>
474         * <p>
475         * Description: <b></b><br>
476         * Type: <b>reference</b><br>
477         * Path: <b>MessageHeader.data</b><br>
478         * </p>
479         */
480        @SearchParamDefinition(name="data", path="MessageHeader.data", description="", type="reference"  )
481        public static final String SP_DATA = "data";
482
483        /**
484         * <b>Fluent Client</b> search parameter constant for <b>data</b>
485         * <p>
486         * Description: <b></b><br>
487         * Type: <b>reference</b><br>
488         * Path: <b>MessageHeader.data</b><br>
489         * </p>
490         */
491        public static final ReferenceClientParam DATA = new ReferenceClientParam(SP_DATA);
492
493        /**
494         * Search parameter constant for <b>receiver</b>
495         * <p>
496         * Description: <b></b><br>
497         * Type: <b>reference</b><br>
498         * Path: <b>MessageHeader.receiver</b><br>
499         * </p>
500         */
501        @SearchParamDefinition(name="receiver", path="MessageHeader.receiver", description="", type="reference" , providesMembershipIn={
502 @Compartment(name="Patient")   }
503 )
504        public static final String SP_RECEIVER = "receiver";
505
506        /**
507         * <b>Fluent Client</b> search parameter constant for <b>receiver</b>
508         * <p>
509         * Description: <b></b><br>
510         * Type: <b>reference</b><br>
511         * Path: <b>MessageHeader.receiver</b><br>
512         * </p>
513         */
514        public static final ReferenceClientParam RECEIVER = new ReferenceClientParam(SP_RECEIVER);
515
516        /**
517         * Search parameter constant for <b>author</b>
518         * <p>
519         * Description: <b></b><br>
520         * Type: <b>reference</b><br>
521         * Path: <b>MessageHeader.author</b><br>
522         * </p>
523         */
524        @SearchParamDefinition(name="author", path="MessageHeader.author", description="", type="reference" , providesMembershipIn={
525 @Compartment(name="Patient")   }
526 )
527        public static final String SP_AUTHOR = "author";
528
529        /**
530         * <b>Fluent Client</b> search parameter constant for <b>author</b>
531         * <p>
532         * Description: <b></b><br>
533         * Type: <b>reference</b><br>
534         * Path: <b>MessageHeader.author</b><br>
535         * </p>
536         */
537        public static final ReferenceClientParam AUTHOR = new ReferenceClientParam(SP_AUTHOR);
538
539        /**
540         * Search parameter constant for <b>responsible</b>
541         * <p>
542         * Description: <b></b><br>
543         * Type: <b>reference</b><br>
544         * Path: <b>MessageHeader.responsible</b><br>
545         * </p>
546         */
547        @SearchParamDefinition(name="responsible", path="MessageHeader.responsible", description="", type="reference" , providesMembershipIn={
548 @Compartment(name="Patient")   }
549 )
550        public static final String SP_RESPONSIBLE = "responsible";
551
552        /**
553         * <b>Fluent Client</b> search parameter constant for <b>responsible</b>
554         * <p>
555         * Description: <b></b><br>
556         * Type: <b>reference</b><br>
557         * Path: <b>MessageHeader.responsible</b><br>
558         * </p>
559         */
560        public static final ReferenceClientParam RESPONSIBLE = new ReferenceClientParam(SP_RESPONSIBLE);
561
562        /**
563         * Search parameter constant for <b>enterer</b>
564         * <p>
565         * Description: <b></b><br>
566         * Type: <b>reference</b><br>
567         * Path: <b>MessageHeader.enterer</b><br>
568         * </p>
569         */
570        @SearchParamDefinition(name="enterer", path="MessageHeader.enterer", description="", type="reference" , providesMembershipIn={
571 @Compartment(name="Patient")   }
572 )
573        public static final String SP_ENTERER = "enterer";
574
575        /**
576         * <b>Fluent Client</b> search parameter constant for <b>enterer</b>
577         * <p>
578         * Description: <b></b><br>
579         * Type: <b>reference</b><br>
580         * Path: <b>MessageHeader.enterer</b><br>
581         * </p>
582         */
583        public static final ReferenceClientParam ENTERER = new ReferenceClientParam(SP_ENTERER);
584
585        /**
586         * Search parameter constant for <b>target</b>
587         * <p>
588         * Description: <b></b><br>
589         * Type: <b>reference</b><br>
590         * Path: <b>MessageHeader.destination.target</b><br>
591         * </p>
592         */
593        @SearchParamDefinition(name="target", path="MessageHeader.destination.target", description="", type="reference" , providesMembershipIn={
594 @Compartment(name="Encounter")         }
595 )
596        public static final String SP_TARGET = "target";
597
598        /**
599         * <b>Fluent Client</b> search parameter constant for <b>target</b>
600         * <p>
601         * Description: <b></b><br>
602         * Type: <b>reference</b><br>
603         * Path: <b>MessageHeader.destination.target</b><br>
604         * </p>
605         */
606        public static final ReferenceClientParam TARGET = new ReferenceClientParam(SP_TARGET);
607
608
609        /**
610         * Constant for fluent queries to be used to add include statements. Specifies
611         * the path value of "<b>MessageHeader:author</b>".
612         */
613        public static final Include INCLUDE_AUTHOR = new Include("MessageHeader:author");
614
615        /**
616         * Constant for fluent queries to be used to add include statements. Specifies
617         * the path value of "<b>MessageHeader:data</b>".
618         */
619        public static final Include INCLUDE_DATA = new Include("MessageHeader:data");
620
621        /**
622         * Constant for fluent queries to be used to add include statements. Specifies
623         * the path value of "<b>MessageHeader:enterer</b>".
624         */
625        public static final Include INCLUDE_ENTERER = new Include("MessageHeader:enterer");
626
627        /**
628         * Constant for fluent queries to be used to add include statements. Specifies
629         * the path value of "<b>MessageHeader:receiver</b>".
630         */
631        public static final Include INCLUDE_RECEIVER = new Include("MessageHeader:receiver");
632
633        /**
634         * Constant for fluent queries to be used to add include statements. Specifies
635         * the path value of "<b>MessageHeader:responsible</b>".
636         */
637        public static final Include INCLUDE_RESPONSIBLE = new Include("MessageHeader:responsible");
638
639        /**
640         * Constant for fluent queries to be used to add include statements. Specifies
641         * the path value of "<b>MessageHeader:target</b>".
642         */
643        public static final Include INCLUDE_TARGET = new Include("MessageHeader:target");
644
645
646        @Child(name="timestamp", type=InstantDt.class, order=0, min=1, max=1, summary=false, modifier=false)    
647        @Description(
648                shortDefinition="when.init",
649                formalDefinition="The time that the message was sent"
650        )
651        private InstantDt myTimestamp;
652        
653        @Child(name="event", type=CodingDt.class, order=1, min=1, max=1, summary=false, modifier=true)  
654        @Description(
655                shortDefinition="what",
656                formalDefinition="Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value \"http://hl7.org/fhir/message-events\""
657        )
658        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/message-events")
659        private CodingDt myEvent;
660        
661        @Child(name="response", order=2, min=0, max=1, summary=false, modifier=true)    
662        @Description(
663                shortDefinition="",
664                formalDefinition="Information about the message that this message is a response to.  Only present if this message is a response."
665        )
666        private Response myResponse;
667        
668        @Child(name="source", order=3, min=1, max=1, summary=false, modifier=false)     
669        @Description(
670                shortDefinition="who.actor",
671                formalDefinition="The source application from which this message originated"
672        )
673        private Source mySource;
674        
675        @Child(name="destination", order=4, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)      
676        @Description(
677                shortDefinition="who.focus",
678                formalDefinition="The destination application which the message is intended for"
679        )
680        private java.util.List<Destination> myDestination;
681        
682        @Child(name="enterer", order=5, min=0, max=1, summary=false, modifier=false, type={
683                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
684        @Description(
685                shortDefinition="who.author",
686                formalDefinition="The person or device that performed the data entry leading to this message. Where there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions"
687        )
688        private ResourceReferenceDt myEnterer;
689        
690        @Child(name="author", order=6, min=0, max=1, summary=false, modifier=false, type={
691                ca.uhn.fhir.model.dstu2.resource.Practitioner.class     })
692        @Description(
693                shortDefinition="who.author",
694                formalDefinition="The logical author of the message - the person or device that decided the described event should happen. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions"
695        )
696        private ResourceReferenceDt myAuthor;
697        
698        @Child(name="receiver", order=7, min=0, max=1, summary=false, modifier=false, type={
699                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class     })
700        @Description(
701                shortDefinition="who.focus",
702                formalDefinition="Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient."
703        )
704        private ResourceReferenceDt myReceiver;
705        
706        @Child(name="responsible", order=8, min=0, max=1, summary=false, modifier=false, type={
707                ca.uhn.fhir.model.dstu2.resource.Practitioner.class,            ca.uhn.fhir.model.dstu2.resource.Organization.class     })
708        @Description(
709                shortDefinition="who.witness",
710                formalDefinition="The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party"
711        )
712        private ResourceReferenceDt myResponsible;
713        
714        @Child(name="reason", type=CodeableConceptDt.class, order=9, min=0, max=1, summary=false, modifier=false)       
715        @Description(
716                shortDefinition="why",
717                formalDefinition="Coded indication of the cause for the event - indicates  a reason for the occurrence of the event that is a focus of this message"
718        )
719        private CodeableConceptDt myReason;
720        
721        @Child(name="data", order=10, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false, type={
722                IResource.class })
723        @Description(
724                shortDefinition="",
725                formalDefinition="The actual data of the message - a reference to the root/focus class of the event."
726        )
727        private java.util.List<ResourceReferenceDt> myData;
728        
729
730        @Override
731        public boolean isEmpty() {
732                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myTimestamp,  myEvent,  myResponse,  mySource,  myDestination,  myEnterer,  myAuthor,  myReceiver,  myResponsible,  myReason,  myData);
733        }
734        
735        @Override
736        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
737                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myTimestamp, myEvent, myResponse, mySource, myDestination, myEnterer, myAuthor, myReceiver, myResponsible, myReason, myData);
738        }
739
740        /**
741         * Gets the value(s) for <b>timestamp</b> (when.init).
742         * creating it if it does
743         * not exist. Will not return <code>null</code>.
744         *
745     * <p>
746     * <b>Definition:</b>
747     * The time that the message was sent
748     * </p> 
749         */
750        public InstantDt getTimestampElement() {  
751                if (myTimestamp == null) {
752                        myTimestamp = new InstantDt();
753                }
754                return myTimestamp;
755        }
756
757        
758        /**
759         * Gets the value(s) for <b>timestamp</b> (when.init).
760         * creating it if it does
761         * not exist. This method may return <code>null</code>.
762         *
763     * <p>
764     * <b>Definition:</b>
765     * The time that the message was sent
766     * </p> 
767         */
768        public Date getTimestamp() {  
769                return getTimestampElement().getValue();
770        }
771
772        /**
773         * Sets the value(s) for <b>timestamp</b> (when.init)
774         *
775     * <p>
776     * <b>Definition:</b>
777     * The time that the message was sent
778     * </p> 
779         */
780        public MessageHeader setTimestamp(InstantDt theValue) {
781                myTimestamp = theValue;
782                return this;
783        }
784        
785        
786
787        /**
788         * Sets the value for <b>timestamp</b> (when.init)
789         *
790     * <p>
791     * <b>Definition:</b>
792     * The time that the message was sent
793     * </p> 
794         */
795        public MessageHeader setTimestampWithMillisPrecision( Date theDate) {
796                myTimestamp = new InstantDt(theDate); 
797                return this; 
798        }
799
800        /**
801         * Sets the value for <b>timestamp</b> (when.init)
802         *
803     * <p>
804     * <b>Definition:</b>
805     * The time that the message was sent
806     * </p> 
807         */
808        public MessageHeader setTimestamp( Date theDate,  TemporalPrecisionEnum thePrecision) {
809                myTimestamp = new InstantDt(theDate, thePrecision); 
810                return this; 
811        }
812
813 
814        /**
815         * Gets the value(s) for <b>event</b> (what).
816         * creating it if it does
817         * not exist. Will not return <code>null</code>.
818         *
819     * <p>
820     * <b>Definition:</b>
821     * Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value \&quot;http://hl7.org/fhir/message-events\&quot;
822     * </p> 
823         */
824        public CodingDt getEvent() {  
825                if (myEvent == null) {
826                        myEvent = new CodingDt();
827                }
828                return myEvent;
829        }
830
831        /**
832         * Sets the value(s) for <b>event</b> (what)
833         *
834     * <p>
835     * <b>Definition:</b>
836     * Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value \&quot;http://hl7.org/fhir/message-events\&quot;
837     * </p> 
838         */
839        public MessageHeader setEvent(CodingDt theValue) {
840                myEvent = theValue;
841                return this;
842        }
843        
844        
845
846  
847        /**
848         * Gets the value(s) for <b>response</b> ().
849         * creating it if it does
850         * not exist. Will not return <code>null</code>.
851         *
852     * <p>
853     * <b>Definition:</b>
854     * Information about the message that this message is a response to.  Only present if this message is a response.
855     * </p> 
856         */
857        public Response getResponse() {  
858                if (myResponse == null) {
859                        myResponse = new Response();
860                }
861                return myResponse;
862        }
863
864        /**
865         * Sets the value(s) for <b>response</b> ()
866         *
867     * <p>
868     * <b>Definition:</b>
869     * Information about the message that this message is a response to.  Only present if this message is a response.
870     * </p> 
871         */
872        public MessageHeader setResponse(Response theValue) {
873                myResponse = theValue;
874                return this;
875        }
876        
877        
878
879  
880        /**
881         * Gets the value(s) for <b>source</b> (who.actor).
882         * creating it if it does
883         * not exist. Will not return <code>null</code>.
884         *
885     * <p>
886     * <b>Definition:</b>
887     * The source application from which this message originated
888     * </p> 
889         */
890        public Source getSource() {  
891                if (mySource == null) {
892                        mySource = new Source();
893                }
894                return mySource;
895        }
896
897        /**
898         * Sets the value(s) for <b>source</b> (who.actor)
899         *
900     * <p>
901     * <b>Definition:</b>
902     * The source application from which this message originated
903     * </p> 
904         */
905        public MessageHeader setSource(Source theValue) {
906                mySource = theValue;
907                return this;
908        }
909        
910        
911
912  
913        /**
914         * Gets the value(s) for <b>destination</b> (who.focus).
915         * creating it if it does
916         * not exist. Will not return <code>null</code>.
917         *
918     * <p>
919     * <b>Definition:</b>
920     * The destination application which the message is intended for
921     * </p> 
922         */
923        public java.util.List<Destination> getDestination() {  
924                if (myDestination == null) {
925                        myDestination = new java.util.ArrayList<Destination>();
926                }
927                return myDestination;
928        }
929
930        /**
931         * Sets the value(s) for <b>destination</b> (who.focus)
932         *
933     * <p>
934     * <b>Definition:</b>
935     * The destination application which the message is intended for
936     * </p> 
937         */
938        public MessageHeader setDestination(java.util.List<Destination> theValue) {
939                myDestination = theValue;
940                return this;
941        }
942        
943        
944
945        /**
946         * Adds and returns a new value for <b>destination</b> (who.focus)
947         *
948     * <p>
949     * <b>Definition:</b>
950     * The destination application which the message is intended for
951     * </p> 
952         */
953        public Destination addDestination() {
954                Destination newType = new Destination();
955                getDestination().add(newType);
956                return newType; 
957        }
958
959        /**
960         * Adds a given new value for <b>destination</b> (who.focus)
961         *
962         * <p>
963         * <b>Definition:</b>
964         * The destination application which the message is intended for
965         * </p>
966         * @param theValue The destination to add (must not be <code>null</code>)
967         */
968        public MessageHeader addDestination(Destination theValue) {
969                if (theValue == null) {
970                        throw new NullPointerException("theValue must not be null");
971                }
972                getDestination().add(theValue);
973                return this;
974        }
975
976        /**
977         * Gets the first repetition for <b>destination</b> (who.focus),
978         * creating it if it does not already exist.
979         *
980     * <p>
981     * <b>Definition:</b>
982     * The destination application which the message is intended for
983     * </p> 
984         */
985        public Destination getDestinationFirstRep() {
986                if (getDestination().isEmpty()) {
987                        return addDestination();
988                }
989                return getDestination().get(0); 
990        }
991  
992        /**
993         * Gets the value(s) for <b>enterer</b> (who.author).
994         * creating it if it does
995         * not exist. Will not return <code>null</code>.
996         *
997     * <p>
998     * <b>Definition:</b>
999     * The person or device that performed the data entry leading to this message. Where there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions
1000     * </p> 
1001         */
1002        public ResourceReferenceDt getEnterer() {  
1003                if (myEnterer == null) {
1004                        myEnterer = new ResourceReferenceDt();
1005                }
1006                return myEnterer;
1007        }
1008
1009        /**
1010         * Sets the value(s) for <b>enterer</b> (who.author)
1011         *
1012     * <p>
1013     * <b>Definition:</b>
1014     * The person or device that performed the data entry leading to this message. Where there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions
1015     * </p> 
1016         */
1017        public MessageHeader setEnterer(ResourceReferenceDt theValue) {
1018                myEnterer = theValue;
1019                return this;
1020        }
1021        
1022        
1023
1024  
1025        /**
1026         * Gets the value(s) for <b>author</b> (who.author).
1027         * creating it if it does
1028         * not exist. Will not return <code>null</code>.
1029         *
1030     * <p>
1031     * <b>Definition:</b>
1032     * The logical author of the message - the person or device that decided the described event should happen. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions
1033     * </p> 
1034         */
1035        public ResourceReferenceDt getAuthor() {  
1036                if (myAuthor == null) {
1037                        myAuthor = new ResourceReferenceDt();
1038                }
1039                return myAuthor;
1040        }
1041
1042        /**
1043         * Sets the value(s) for <b>author</b> (who.author)
1044         *
1045     * <p>
1046     * <b>Definition:</b>
1047     * The logical author of the message - the person or device that decided the described event should happen. Where there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions
1048     * </p> 
1049         */
1050        public MessageHeader setAuthor(ResourceReferenceDt theValue) {
1051                myAuthor = theValue;
1052                return this;
1053        }
1054        
1055        
1056
1057  
1058        /**
1059         * Gets the value(s) for <b>receiver</b> (who.focus).
1060         * creating it if it does
1061         * not exist. Will not return <code>null</code>.
1062         *
1063     * <p>
1064     * <b>Definition:</b>
1065     * Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient.
1066     * </p> 
1067         */
1068        public ResourceReferenceDt getReceiver() {  
1069                if (myReceiver == null) {
1070                        myReceiver = new ResourceReferenceDt();
1071                }
1072                return myReceiver;
1073        }
1074
1075        /**
1076         * Sets the value(s) for <b>receiver</b> (who.focus)
1077         *
1078     * <p>
1079     * <b>Definition:</b>
1080     * Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient.
1081     * </p> 
1082         */
1083        public MessageHeader setReceiver(ResourceReferenceDt theValue) {
1084                myReceiver = theValue;
1085                return this;
1086        }
1087        
1088        
1089
1090  
1091        /**
1092         * Gets the value(s) for <b>responsible</b> (who.witness).
1093         * creating it if it does
1094         * not exist. Will not return <code>null</code>.
1095         *
1096     * <p>
1097     * <b>Definition:</b>
1098     * The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party
1099     * </p> 
1100         */
1101        public ResourceReferenceDt getResponsible() {  
1102                if (myResponsible == null) {
1103                        myResponsible = new ResourceReferenceDt();
1104                }
1105                return myResponsible;
1106        }
1107
1108        /**
1109         * Sets the value(s) for <b>responsible</b> (who.witness)
1110         *
1111     * <p>
1112     * <b>Definition:</b>
1113     * The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party
1114     * </p> 
1115         */
1116        public MessageHeader setResponsible(ResourceReferenceDt theValue) {
1117                myResponsible = theValue;
1118                return this;
1119        }
1120        
1121        
1122
1123  
1124        /**
1125         * Gets the value(s) for <b>reason</b> (why).
1126         * creating it if it does
1127         * not exist. Will not return <code>null</code>.
1128         *
1129     * <p>
1130     * <b>Definition:</b>
1131     * Coded indication of the cause for the event - indicates  a reason for the occurrence of the event that is a focus of this message
1132     * </p> 
1133         */
1134        public CodeableConceptDt getReason() {  
1135                if (myReason == null) {
1136                        myReason = new CodeableConceptDt();
1137                }
1138                return myReason;
1139        }
1140
1141        /**
1142         * Sets the value(s) for <b>reason</b> (why)
1143         *
1144     * <p>
1145     * <b>Definition:</b>
1146     * Coded indication of the cause for the event - indicates  a reason for the occurrence of the event that is a focus of this message
1147     * </p> 
1148         */
1149        public MessageHeader setReason(CodeableConceptDt theValue) {
1150                myReason = theValue;
1151                return this;
1152        }
1153        
1154        
1155
1156  
1157        /**
1158         * Gets the value(s) for <b>data</b> ().
1159         * creating it if it does
1160         * not exist. Will not return <code>null</code>.
1161         *
1162     * <p>
1163     * <b>Definition:</b>
1164     * The actual data of the message - a reference to the root/focus class of the event.
1165     * </p> 
1166         */
1167        public java.util.List<ResourceReferenceDt> getData() {  
1168                if (myData == null) {
1169                        myData = new java.util.ArrayList<ResourceReferenceDt>();
1170                }
1171                return myData;
1172        }
1173
1174        /**
1175         * Sets the value(s) for <b>data</b> ()
1176         *
1177     * <p>
1178     * <b>Definition:</b>
1179     * The actual data of the message - a reference to the root/focus class of the event.
1180     * </p> 
1181         */
1182        public MessageHeader setData(java.util.List<ResourceReferenceDt> theValue) {
1183                myData = theValue;
1184                return this;
1185        }
1186        
1187        
1188
1189        /**
1190         * Adds and returns a new value for <b>data</b> ()
1191         *
1192     * <p>
1193     * <b>Definition:</b>
1194     * The actual data of the message - a reference to the root/focus class of the event.
1195     * </p> 
1196         */
1197        public ResourceReferenceDt addData() {
1198                ResourceReferenceDt newType = new ResourceReferenceDt();
1199                getData().add(newType);
1200                return newType; 
1201        }
1202  
1203        /**
1204         * Block class for child element: <b>MessageHeader.response</b> ()
1205         *
1206     * <p>
1207     * <b>Definition:</b>
1208     * Information about the message that this message is a response to.  Only present if this message is a response.
1209     * </p> 
1210         */
1211        @Block()        
1212        public static class Response 
1213            extends  BaseIdentifiableElement        implements IResourceBlock {
1214        
1215        @Child(name="identifier", type=IdDt.class, order=0, min=1, max=1, summary=false, modifier=false)        
1216        @Description(
1217                shortDefinition="",
1218                formalDefinition="The id of the message that this message is a response to"
1219        )
1220        private IdDt myIdentifier;
1221        
1222        @Child(name="code", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=true)     
1223        @Description(
1224                shortDefinition="",
1225                formalDefinition="Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not"
1226        )
1227        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/response-code")
1228        private BoundCodeDt<ResponseTypeEnum> myCode;
1229        
1230        @Child(name="details", order=2, min=0, max=1, summary=false, modifier=false, type={
1231                ca.uhn.fhir.model.dstu2.resource.OperationOutcome.class })
1232        @Description(
1233                shortDefinition="",
1234                formalDefinition="Full details of any issues found in the message"
1235        )
1236        private ResourceReferenceDt myDetails;
1237        
1238
1239        @Override
1240        public boolean isEmpty() {
1241                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIdentifier,  myCode,  myDetails);
1242        }
1243        
1244        @Override
1245        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1246                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myCode, myDetails);
1247        }
1248
1249        /**
1250         * Gets the value(s) for <b>identifier</b> ().
1251         * creating it if it does
1252         * not exist. Will not return <code>null</code>.
1253         *
1254     * <p>
1255     * <b>Definition:</b>
1256     * The id of the message that this message is a response to
1257     * </p> 
1258         */
1259        public IdDt getIdentifierElement() {  
1260                if (myIdentifier == null) {
1261                        myIdentifier = new IdDt();
1262                }
1263                return myIdentifier;
1264        }
1265
1266        
1267        /**
1268         * Gets the value(s) for <b>identifier</b> ().
1269         * creating it if it does
1270         * not exist. This method may return <code>null</code>.
1271         *
1272     * <p>
1273     * <b>Definition:</b>
1274     * The id of the message that this message is a response to
1275     * </p> 
1276         */
1277        public String getIdentifier() {  
1278                return getIdentifierElement().getValue();
1279        }
1280
1281        /**
1282         * Sets the value(s) for <b>identifier</b> ()
1283         *
1284     * <p>
1285     * <b>Definition:</b>
1286     * The id of the message that this message is a response to
1287     * </p> 
1288         */
1289        public Response setIdentifier(IdDt theValue) {
1290                myIdentifier = theValue;
1291                return this;
1292        }
1293        
1294        
1295
1296        /**
1297         * Sets the value for <b>identifier</b> ()
1298         *
1299     * <p>
1300     * <b>Definition:</b>
1301     * The id of the message that this message is a response to
1302     * </p> 
1303         */
1304        public Response setIdentifier( String theId) {
1305                myIdentifier = new IdDt(theId); 
1306                return this; 
1307        }
1308
1309 
1310        /**
1311         * Gets the value(s) for <b>code</b> ().
1312         * creating it if it does
1313         * not exist. Will not return <code>null</code>.
1314         *
1315     * <p>
1316     * <b>Definition:</b>
1317     * Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not
1318     * </p> 
1319         */
1320        public BoundCodeDt<ResponseTypeEnum> getCodeElement() {  
1321                if (myCode == null) {
1322                        myCode = new BoundCodeDt<ResponseTypeEnum>(ResponseTypeEnum.VALUESET_BINDER);
1323                }
1324                return myCode;
1325        }
1326
1327        
1328        /**
1329         * Gets the value(s) for <b>code</b> ().
1330         * creating it if it does
1331         * not exist. This method may return <code>null</code>.
1332         *
1333     * <p>
1334     * <b>Definition:</b>
1335     * Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not
1336     * </p> 
1337         */
1338        public String getCode() {  
1339                return getCodeElement().getValue();
1340        }
1341
1342        /**
1343         * Sets the value(s) for <b>code</b> ()
1344         *
1345     * <p>
1346     * <b>Definition:</b>
1347     * Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not
1348     * </p> 
1349         */
1350        public Response setCode(BoundCodeDt<ResponseTypeEnum> theValue) {
1351                myCode = theValue;
1352                return this;
1353        }
1354        
1355        
1356
1357        /**
1358         * Sets the value(s) for <b>code</b> ()
1359         *
1360     * <p>
1361     * <b>Definition:</b>
1362     * Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not
1363     * </p> 
1364         */
1365        public Response setCode(ResponseTypeEnum theValue) {
1366                setCode(new BoundCodeDt<ResponseTypeEnum>(ResponseTypeEnum.VALUESET_BINDER, theValue));
1367                
1368/*
1369                getCodeElement().setValueAsEnum(theValue);
1370*/
1371                return this;
1372        }
1373
1374  
1375        /**
1376         * Gets the value(s) for <b>details</b> ().
1377         * creating it if it does
1378         * not exist. Will not return <code>null</code>.
1379         *
1380     * <p>
1381     * <b>Definition:</b>
1382     * Full details of any issues found in the message
1383     * </p> 
1384         */
1385        public ResourceReferenceDt getDetails() {  
1386                if (myDetails == null) {
1387                        myDetails = new ResourceReferenceDt();
1388                }
1389                return myDetails;
1390        }
1391
1392        /**
1393         * Sets the value(s) for <b>details</b> ()
1394         *
1395     * <p>
1396     * <b>Definition:</b>
1397     * Full details of any issues found in the message
1398     * </p> 
1399         */
1400        public Response setDetails(ResourceReferenceDt theValue) {
1401                myDetails = theValue;
1402                return this;
1403        }
1404        
1405        
1406
1407  
1408
1409
1410        }
1411
1412
1413        /**
1414         * Block class for child element: <b>MessageHeader.source</b> (who.actor)
1415         *
1416     * <p>
1417     * <b>Definition:</b>
1418     * The source application from which this message originated
1419     * </p> 
1420         */
1421        @Block()        
1422        public static class Source 
1423            extends  BaseIdentifiableElement        implements IResourceBlock {
1424        
1425        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1426        @Description(
1427                shortDefinition="",
1428                formalDefinition="Human-readable name for the source system"
1429        )
1430        private StringDt myName;
1431        
1432        @Child(name="software", type=StringDt.class, order=1, min=0, max=1, summary=false, modifier=false)      
1433        @Description(
1434                shortDefinition="",
1435                formalDefinition="May include configuration or other information useful in debugging."
1436        )
1437        private StringDt mySoftware;
1438        
1439        @Child(name="version", type=StringDt.class, order=2, min=0, max=1, summary=false, modifier=false)       
1440        @Description(
1441                shortDefinition="",
1442                formalDefinition="Can convey versions of multiple systems in situations where a message passes through multiple hands."
1443        )
1444        private StringDt myVersion;
1445        
1446        @Child(name="contact", type=ContactPointDt.class, order=3, min=0, max=1, summary=false, modifier=false) 
1447        @Description(
1448                shortDefinition="",
1449                formalDefinition="An e-mail, phone, website or other contact point to use to resolve issues with message communications."
1450        )
1451        private ContactPointDt myContact;
1452        
1453        @Child(name="endpoint", type=UriDt.class, order=4, min=1, max=1, summary=false, modifier=false) 
1454        @Description(
1455                shortDefinition="",
1456                formalDefinition="Identifies the routing target to send acknowledgements to."
1457        )
1458        private UriDt myEndpoint;
1459        
1460
1461        @Override
1462        public boolean isEmpty() {
1463                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  mySoftware,  myVersion,  myContact,  myEndpoint);
1464        }
1465        
1466        @Override
1467        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1468                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, mySoftware, myVersion, myContact, myEndpoint);
1469        }
1470
1471        /**
1472         * Gets the value(s) for <b>name</b> ().
1473         * creating it if it does
1474         * not exist. Will not return <code>null</code>.
1475         *
1476     * <p>
1477     * <b>Definition:</b>
1478     * Human-readable name for the source system
1479     * </p> 
1480         */
1481        public StringDt getNameElement() {  
1482                if (myName == null) {
1483                        myName = new StringDt();
1484                }
1485                return myName;
1486        }
1487
1488        
1489        /**
1490         * Gets the value(s) for <b>name</b> ().
1491         * creating it if it does
1492         * not exist. This method may return <code>null</code>.
1493         *
1494     * <p>
1495     * <b>Definition:</b>
1496     * Human-readable name for the source system
1497     * </p> 
1498         */
1499        public String getName() {  
1500                return getNameElement().getValue();
1501        }
1502
1503        /**
1504         * Sets the value(s) for <b>name</b> ()
1505         *
1506     * <p>
1507     * <b>Definition:</b>
1508     * Human-readable name for the source system
1509     * </p> 
1510         */
1511        public Source setName(StringDt theValue) {
1512                myName = theValue;
1513                return this;
1514        }
1515        
1516        
1517
1518        /**
1519         * Sets the value for <b>name</b> ()
1520         *
1521     * <p>
1522     * <b>Definition:</b>
1523     * Human-readable name for the source system
1524     * </p> 
1525         */
1526        public Source setName( String theString) {
1527                myName = new StringDt(theString); 
1528                return this; 
1529        }
1530
1531 
1532        /**
1533         * Gets the value(s) for <b>software</b> ().
1534         * creating it if it does
1535         * not exist. Will not return <code>null</code>.
1536         *
1537     * <p>
1538     * <b>Definition:</b>
1539     * May include configuration or other information useful in debugging.
1540     * </p> 
1541         */
1542        public StringDt getSoftwareElement() {  
1543                if (mySoftware == null) {
1544                        mySoftware = new StringDt();
1545                }
1546                return mySoftware;
1547        }
1548
1549        
1550        /**
1551         * Gets the value(s) for <b>software</b> ().
1552         * creating it if it does
1553         * not exist. This method may return <code>null</code>.
1554         *
1555     * <p>
1556     * <b>Definition:</b>
1557     * May include configuration or other information useful in debugging.
1558     * </p> 
1559         */
1560        public String getSoftware() {  
1561                return getSoftwareElement().getValue();
1562        }
1563
1564        /**
1565         * Sets the value(s) for <b>software</b> ()
1566         *
1567     * <p>
1568     * <b>Definition:</b>
1569     * May include configuration or other information useful in debugging.
1570     * </p> 
1571         */
1572        public Source setSoftware(StringDt theValue) {
1573                mySoftware = theValue;
1574                return this;
1575        }
1576        
1577        
1578
1579        /**
1580         * Sets the value for <b>software</b> ()
1581         *
1582     * <p>
1583     * <b>Definition:</b>
1584     * May include configuration or other information useful in debugging.
1585     * </p> 
1586         */
1587        public Source setSoftware( String theString) {
1588                mySoftware = new StringDt(theString); 
1589                return this; 
1590        }
1591
1592 
1593        /**
1594         * Gets the value(s) for <b>version</b> ().
1595         * creating it if it does
1596         * not exist. Will not return <code>null</code>.
1597         *
1598     * <p>
1599     * <b>Definition:</b>
1600     * Can convey versions of multiple systems in situations where a message passes through multiple hands.
1601     * </p> 
1602         */
1603        public StringDt getVersionElement() {  
1604                if (myVersion == null) {
1605                        myVersion = new StringDt();
1606                }
1607                return myVersion;
1608        }
1609
1610        
1611        /**
1612         * Gets the value(s) for <b>version</b> ().
1613         * creating it if it does
1614         * not exist. This method may return <code>null</code>.
1615         *
1616     * <p>
1617     * <b>Definition:</b>
1618     * Can convey versions of multiple systems in situations where a message passes through multiple hands.
1619     * </p> 
1620         */
1621        public String getVersion() {  
1622                return getVersionElement().getValue();
1623        }
1624
1625        /**
1626         * Sets the value(s) for <b>version</b> ()
1627         *
1628     * <p>
1629     * <b>Definition:</b>
1630     * Can convey versions of multiple systems in situations where a message passes through multiple hands.
1631     * </p> 
1632         */
1633        public Source setVersion(StringDt theValue) {
1634                myVersion = theValue;
1635                return this;
1636        }
1637        
1638        
1639
1640        /**
1641         * Sets the value for <b>version</b> ()
1642         *
1643     * <p>
1644     * <b>Definition:</b>
1645     * Can convey versions of multiple systems in situations where a message passes through multiple hands.
1646     * </p> 
1647         */
1648        public Source setVersion( String theString) {
1649                myVersion = new StringDt(theString); 
1650                return this; 
1651        }
1652
1653 
1654        /**
1655         * Gets the value(s) for <b>contact</b> ().
1656         * creating it if it does
1657         * not exist. Will not return <code>null</code>.
1658         *
1659     * <p>
1660     * <b>Definition:</b>
1661     * An e-mail, phone, website or other contact point to use to resolve issues with message communications.
1662     * </p> 
1663         */
1664        public ContactPointDt getContact() {  
1665                if (myContact == null) {
1666                        myContact = new ContactPointDt();
1667                }
1668                return myContact;
1669        }
1670
1671        /**
1672         * Sets the value(s) for <b>contact</b> ()
1673         *
1674     * <p>
1675     * <b>Definition:</b>
1676     * An e-mail, phone, website or other contact point to use to resolve issues with message communications.
1677     * </p> 
1678         */
1679        public Source setContact(ContactPointDt theValue) {
1680                myContact = theValue;
1681                return this;
1682        }
1683        
1684        
1685
1686  
1687        /**
1688         * Gets the value(s) for <b>endpoint</b> ().
1689         * creating it if it does
1690         * not exist. Will not return <code>null</code>.
1691         *
1692     * <p>
1693     * <b>Definition:</b>
1694     * Identifies the routing target to send acknowledgements to.
1695     * </p> 
1696         */
1697        public UriDt getEndpointElement() {  
1698                if (myEndpoint == null) {
1699                        myEndpoint = new UriDt();
1700                }
1701                return myEndpoint;
1702        }
1703
1704        
1705        /**
1706         * Gets the value(s) for <b>endpoint</b> ().
1707         * creating it if it does
1708         * not exist. This method may return <code>null</code>.
1709         *
1710     * <p>
1711     * <b>Definition:</b>
1712     * Identifies the routing target to send acknowledgements to.
1713     * </p> 
1714         */
1715        public String getEndpoint() {  
1716                return getEndpointElement().getValue();
1717        }
1718
1719        /**
1720         * Sets the value(s) for <b>endpoint</b> ()
1721         *
1722     * <p>
1723     * <b>Definition:</b>
1724     * Identifies the routing target to send acknowledgements to.
1725     * </p> 
1726         */
1727        public Source setEndpoint(UriDt theValue) {
1728                myEndpoint = theValue;
1729                return this;
1730        }
1731        
1732        
1733
1734        /**
1735         * Sets the value for <b>endpoint</b> ()
1736         *
1737     * <p>
1738     * <b>Definition:</b>
1739     * Identifies the routing target to send acknowledgements to.
1740     * </p> 
1741         */
1742        public Source setEndpoint( String theUri) {
1743                myEndpoint = new UriDt(theUri); 
1744                return this; 
1745        }
1746
1747 
1748
1749
1750        }
1751
1752
1753        /**
1754         * Block class for child element: <b>MessageHeader.destination</b> (who.focus)
1755         *
1756     * <p>
1757     * <b>Definition:</b>
1758     * The destination application which the message is intended for
1759     * </p> 
1760         */
1761        @Block()        
1762        public static class Destination 
1763            extends  BaseIdentifiableElement        implements IResourceBlock {
1764        
1765        @Child(name="name", type=StringDt.class, order=0, min=0, max=1, summary=false, modifier=false)  
1766        @Description(
1767                shortDefinition="",
1768                formalDefinition="Human-readable name for the target system"
1769        )
1770        private StringDt myName;
1771        
1772        @Child(name="target", order=1, min=0, max=1, summary=false, modifier=false, type={
1773                ca.uhn.fhir.model.dstu2.resource.Device.class   })
1774        @Description(
1775                shortDefinition="",
1776                formalDefinition="Identifies the target end system in situations where the initial message transmission is to an intermediary system."
1777        )
1778        private ResourceReferenceDt myTarget;
1779        
1780        @Child(name="endpoint", type=UriDt.class, order=2, min=1, max=1, summary=false, modifier=false) 
1781        @Description(
1782                shortDefinition="",
1783                formalDefinition="Indicates where the message should be routed to."
1784        )
1785        private UriDt myEndpoint;
1786        
1787
1788        @Override
1789        public boolean isEmpty() {
1790                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myName,  myTarget,  myEndpoint);
1791        }
1792        
1793        @Override
1794        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
1795                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myName, myTarget, myEndpoint);
1796        }
1797
1798        /**
1799         * Gets the value(s) for <b>name</b> ().
1800         * creating it if it does
1801         * not exist. Will not return <code>null</code>.
1802         *
1803     * <p>
1804     * <b>Definition:</b>
1805     * Human-readable name for the target system
1806     * </p> 
1807         */
1808        public StringDt getNameElement() {  
1809                if (myName == null) {
1810                        myName = new StringDt();
1811                }
1812                return myName;
1813        }
1814
1815        
1816        /**
1817         * Gets the value(s) for <b>name</b> ().
1818         * creating it if it does
1819         * not exist. This method may return <code>null</code>.
1820         *
1821     * <p>
1822     * <b>Definition:</b>
1823     * Human-readable name for the target system
1824     * </p> 
1825         */
1826        public String getName() {  
1827                return getNameElement().getValue();
1828        }
1829
1830        /**
1831         * Sets the value(s) for <b>name</b> ()
1832         *
1833     * <p>
1834     * <b>Definition:</b>
1835     * Human-readable name for the target system
1836     * </p> 
1837         */
1838        public Destination setName(StringDt theValue) {
1839                myName = theValue;
1840                return this;
1841        }
1842        
1843        
1844
1845        /**
1846         * Sets the value for <b>name</b> ()
1847         *
1848     * <p>
1849     * <b>Definition:</b>
1850     * Human-readable name for the target system
1851     * </p> 
1852         */
1853        public Destination setName( String theString) {
1854                myName = new StringDt(theString); 
1855                return this; 
1856        }
1857
1858 
1859        /**
1860         * Gets the value(s) for <b>target</b> ().
1861         * creating it if it does
1862         * not exist. Will not return <code>null</code>.
1863         *
1864     * <p>
1865     * <b>Definition:</b>
1866     * Identifies the target end system in situations where the initial message transmission is to an intermediary system.
1867     * </p> 
1868         */
1869        public ResourceReferenceDt getTarget() {  
1870                if (myTarget == null) {
1871                        myTarget = new ResourceReferenceDt();
1872                }
1873                return myTarget;
1874        }
1875
1876        /**
1877         * Sets the value(s) for <b>target</b> ()
1878         *
1879     * <p>
1880     * <b>Definition:</b>
1881     * Identifies the target end system in situations where the initial message transmission is to an intermediary system.
1882     * </p> 
1883         */
1884        public Destination setTarget(ResourceReferenceDt theValue) {
1885                myTarget = theValue;
1886                return this;
1887        }
1888        
1889        
1890
1891  
1892        /**
1893         * Gets the value(s) for <b>endpoint</b> ().
1894         * creating it if it does
1895         * not exist. Will not return <code>null</code>.
1896         *
1897     * <p>
1898     * <b>Definition:</b>
1899     * Indicates where the message should be routed to.
1900     * </p> 
1901         */
1902        public UriDt getEndpointElement() {  
1903                if (myEndpoint == null) {
1904                        myEndpoint = new UriDt();
1905                }
1906                return myEndpoint;
1907        }
1908
1909        
1910        /**
1911         * Gets the value(s) for <b>endpoint</b> ().
1912         * creating it if it does
1913         * not exist. This method may return <code>null</code>.
1914         *
1915     * <p>
1916     * <b>Definition:</b>
1917     * Indicates where the message should be routed to.
1918     * </p> 
1919         */
1920        public String getEndpoint() {  
1921                return getEndpointElement().getValue();
1922        }
1923
1924        /**
1925         * Sets the value(s) for <b>endpoint</b> ()
1926         *
1927     * <p>
1928     * <b>Definition:</b>
1929     * Indicates where the message should be routed to.
1930     * </p> 
1931         */
1932        public Destination setEndpoint(UriDt theValue) {
1933                myEndpoint = theValue;
1934                return this;
1935        }
1936        
1937        
1938
1939        /**
1940         * Sets the value for <b>endpoint</b> ()
1941         *
1942     * <p>
1943     * <b>Definition:</b>
1944     * Indicates where the message should be routed to.
1945     * </p> 
1946         */
1947        public Destination setEndpoint( String theUri) {
1948                myEndpoint = new UriDt(theUri); 
1949                return this; 
1950        }
1951
1952 
1953
1954
1955        }
1956
1957
1958
1959
1960    @Override
1961    public String getResourceName() {
1962        return "MessageHeader";
1963    }
1964    
1965    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
1966        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
1967    }
1968
1969
1970}