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