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>OperationOutcome</b> Resource
282 * (infrastructure)
283 *
284 * <p>
285 * <b>Definition:</b>
286 * A collection of error, warning or information messages that result from a system action.
287 * </p> 
288 *
289 * <p>
290 * <b>Requirements:</b>
291 * 
292 * </p> 
293 *
294 * <p>
295 * <b>Profile Definition:</b>
296 * <a href="http://hl7.org/fhir/profiles/OperationOutcome">http://hl7.org/fhir/profiles/OperationOutcome</a> 
297 * </p>
298 *
299 */
300@ResourceDef(name="OperationOutcome", profile="http://hl7.org/fhir/profiles/OperationOutcome", id="operationoutcome")
301public class OperationOutcome extends ca.uhn.fhir.model.dstu2.resource.BaseResource
302    implements  ca.uhn.fhir.model.base.resource.BaseOperationOutcome     {
303
304
305
306        @Child(name="issue", order=0, min=1, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
307        @Description(
308                shortDefinition="",
309                formalDefinition="An error, warning or information message that results from a system action"
310        )
311        private java.util.List<Issue> myIssue;
312        
313
314        @Override
315        public boolean isEmpty() {
316                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  myIssue);
317        }
318        
319        @Override
320        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
321                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIssue);
322        }
323
324        /**
325         * Gets the value(s) for <b>issue</b> ().
326         * creating it if it does
327         * not exist. Will not return <code>null</code>.
328         *
329     * <p>
330     * <b>Definition:</b>
331     * An error, warning or information message that results from a system action
332     * </p> 
333         */
334        public java.util.List<Issue> getIssue() {  
335                if (myIssue == null) {
336                        myIssue = new java.util.ArrayList<Issue>();
337                }
338                return myIssue;
339        }
340
341        /**
342         * Sets the value(s) for <b>issue</b> ()
343         *
344     * <p>
345     * <b>Definition:</b>
346     * An error, warning or information message that results from a system action
347     * </p> 
348         */
349        public OperationOutcome setIssue(java.util.List<Issue> theValue) {
350                myIssue = theValue;
351                return this;
352        }
353        
354        
355
356        /**
357         * Adds and returns a new value for <b>issue</b> ()
358         *
359     * <p>
360     * <b>Definition:</b>
361     * An error, warning or information message that results from a system action
362     * </p> 
363         */
364        public Issue addIssue() {
365                Issue newType = new Issue();
366                getIssue().add(newType);
367                return newType; 
368        }
369
370        /**
371         * Adds a given new value for <b>issue</b> ()
372         *
373         * <p>
374         * <b>Definition:</b>
375         * An error, warning or information message that results from a system action
376         * </p>
377         * @param theValue The issue to add (must not be <code>null</code>)
378         */
379        public OperationOutcome addIssue(Issue theValue) {
380                if (theValue == null) {
381                        throw new NullPointerException("theValue must not be null");
382                }
383                getIssue().add(theValue);
384                return this;
385        }
386
387        /**
388         * Gets the first repetition for <b>issue</b> (),
389         * creating it if it does not already exist.
390         *
391     * <p>
392     * <b>Definition:</b>
393     * An error, warning or information message that results from a system action
394     * </p> 
395         */
396        public Issue getIssueFirstRep() {
397                if (getIssue().isEmpty()) {
398                        return addIssue();
399                }
400                return getIssue().get(0); 
401        }
402  
403        /**
404         * Block class for child element: <b>OperationOutcome.issue</b> ()
405         *
406     * <p>
407     * <b>Definition:</b>
408     * An error, warning or information message that results from a system action
409     * </p> 
410         */
411        @Block()        
412        public static class Issue 
413            extends  BaseIssue      implements IResourceBlock {
414        
415        @Child(name="severity", type=CodeDt.class, order=0, min=1, max=1, summary=false, modifier=true) 
416        @Description(
417                shortDefinition="",
418                formalDefinition="Indicates whether the issue indicates a variation from successful processing"
419        )
420        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/issue-severity")
421        private BoundCodeDt<IssueSeverityEnum> mySeverity;
422        
423        @Child(name="code", type=CodeDt.class, order=1, min=1, max=1, summary=false, modifier=false)    
424        @Description(
425                shortDefinition="",
426                formalDefinition="Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element"
427        )
428        @ca.uhn.fhir.model.api.annotation.Binding(valueSet = "http://hl7.org/fhir/ValueSet/issue-type")
429        private BoundCodeDt<IssueTypeEnum> myCode;
430        
431        @Child(name="details", type=CodeableConceptDt.class, order=2, min=0, max=1, summary=false, modifier=false)      
432        @Description(
433                shortDefinition="",
434                formalDefinition="Additional details about the error. This may be a text description of the error, or a system code that identifies the error"
435        )
436        private CodeableConceptDt myDetails;
437        
438        @Child(name="diagnostics", type=StringDt.class, order=3, min=0, max=1, summary=false, modifier=false)   
439        @Description(
440                shortDefinition="",
441                formalDefinition="Additional diagnostic information about the issue.  Typically, this may be a description of how a value is erroneous, or a stack dump to help trace the issue."
442        )
443        private StringDt myDiagnostics;
444        
445        @Child(name="location", type=StringDt.class, order=4, min=0, max=Child.MAX_UNLIMITED, summary=false, modifier=false)    
446        @Description(
447                shortDefinition="",
448                formalDefinition="A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised."
449        )
450        private java.util.List<StringDt> myLocation;
451        
452
453        @Override
454        public boolean isEmpty() {
455                return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty(  mySeverity,  myCode,  myDetails,  myDiagnostics,  myLocation);
456        }
457        
458        @Override
459        public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
460                return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySeverity, myCode, myDetails, myDiagnostics, myLocation);
461        }
462
463        /**
464         * Gets the value(s) for <b>severity</b> ().
465         * creating it if it does
466         * not exist. Will not return <code>null</code>.
467         *
468     * <p>
469     * <b>Definition:</b>
470     * Indicates whether the issue indicates a variation from successful processing
471     * </p> 
472         */
473        public BoundCodeDt<IssueSeverityEnum> getSeverityElement() {  
474                if (mySeverity == null) {
475                        mySeverity = new BoundCodeDt<IssueSeverityEnum>(IssueSeverityEnum.VALUESET_BINDER);
476                }
477                return mySeverity;
478        }
479
480        
481        /**
482         * Gets the value(s) for <b>severity</b> ().
483         * creating it if it does
484         * not exist. This method may return <code>null</code>.
485         *
486     * <p>
487     * <b>Definition:</b>
488     * Indicates whether the issue indicates a variation from successful processing
489     * </p> 
490         */
491        public String getSeverity() {  
492                return getSeverityElement().getValue();
493        }
494
495        /**
496         * Sets the value(s) for <b>severity</b> ()
497         *
498     * <p>
499     * <b>Definition:</b>
500     * Indicates whether the issue indicates a variation from successful processing
501     * </p> 
502         */
503        public Issue setSeverity(BoundCodeDt<IssueSeverityEnum> theValue) {
504                mySeverity = theValue;
505                return this;
506        }
507        
508        
509
510        /**
511         * Sets the value(s) for <b>severity</b> ()
512         *
513     * <p>
514     * <b>Definition:</b>
515     * Indicates whether the issue indicates a variation from successful processing
516     * </p> 
517         */
518        public Issue setSeverity(IssueSeverityEnum theValue) {
519                setSeverity(new BoundCodeDt<IssueSeverityEnum>(IssueSeverityEnum.VALUESET_BINDER, theValue));
520                
521/*
522                getSeverityElement().setValueAsEnum(theValue);
523*/
524                return this;
525        }
526
527  
528        /**
529         * Gets the value(s) for <b>code</b> ().
530         * creating it if it does
531         * not exist. Will not return <code>null</code>.
532         *
533     * <p>
534     * <b>Definition:</b>
535     * Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element
536     * </p> 
537         */
538        public BoundCodeDt<IssueTypeEnum> getCodeElement() {  
539                if (myCode == null) {
540                        myCode = new BoundCodeDt<IssueTypeEnum>(IssueTypeEnum.VALUESET_BINDER);
541                }
542                return myCode;
543        }
544
545        
546        /**
547         * Gets the value(s) for <b>code</b> ().
548         * creating it if it does
549         * not exist. This method may return <code>null</code>.
550         *
551     * <p>
552     * <b>Definition:</b>
553     * Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element
554     * </p> 
555         */
556        public String getCode() {  
557                return getCodeElement().getValue();
558        }
559
560        /**
561         * Sets the value(s) for <b>code</b> ()
562         *
563     * <p>
564     * <b>Definition:</b>
565     * Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element
566     * </p> 
567         */
568        public Issue setCode(BoundCodeDt<IssueTypeEnum> theValue) {
569                myCode = theValue;
570                return this;
571        }
572        
573        
574
575        /**
576         * Sets the value(s) for <b>code</b> ()
577         *
578     * <p>
579     * <b>Definition:</b>
580     * Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element
581     * </p> 
582         */
583        public Issue setCode(IssueTypeEnum theValue) {
584                setCode(new BoundCodeDt<IssueTypeEnum>(IssueTypeEnum.VALUESET_BINDER, theValue));
585                
586/*
587                getCodeElement().setValueAsEnum(theValue);
588*/
589                return this;
590        }
591
592  
593        /**
594         * Gets the value(s) for <b>details</b> ().
595         * creating it if it does
596         * not exist. Will not return <code>null</code>.
597         *
598     * <p>
599     * <b>Definition:</b>
600     * Additional details about the error. This may be a text description of the error, or a system code that identifies the error
601     * </p> 
602         */
603        public CodeableConceptDt getDetails() {  
604                if (myDetails == null) {
605                        myDetails = new CodeableConceptDt();
606                }
607                return myDetails;
608        }
609
610        /**
611         * Sets the value(s) for <b>details</b> ()
612         *
613     * <p>
614     * <b>Definition:</b>
615     * Additional details about the error. This may be a text description of the error, or a system code that identifies the error
616     * </p> 
617         */
618        public Issue setDetails(CodeableConceptDt theValue) {
619                myDetails = theValue;
620                return this;
621        }
622        
623        
624
625  
626        /**
627         * Gets the value(s) for <b>diagnostics</b> ().
628         * creating it if it does
629         * not exist. Will not return <code>null</code>.
630         *
631     * <p>
632     * <b>Definition:</b>
633     * Additional diagnostic information about the issue.  Typically, this may be a description of how a value is erroneous, or a stack dump to help trace the issue.
634     * </p> 
635         */
636        public StringDt getDiagnosticsElement() {  
637                if (myDiagnostics == null) {
638                        myDiagnostics = new StringDt();
639                }
640                return myDiagnostics;
641        }
642
643        
644        /**
645         * Gets the value(s) for <b>diagnostics</b> ().
646         * creating it if it does
647         * not exist. This method may return <code>null</code>.
648         *
649     * <p>
650     * <b>Definition:</b>
651     * Additional diagnostic information about the issue.  Typically, this may be a description of how a value is erroneous, or a stack dump to help trace the issue.
652     * </p> 
653         */
654        public String getDiagnostics() {  
655                return getDiagnosticsElement().getValue();
656        }
657
658        /**
659         * Sets the value(s) for <b>diagnostics</b> ()
660         *
661     * <p>
662     * <b>Definition:</b>
663     * Additional diagnostic information about the issue.  Typically, this may be a description of how a value is erroneous, or a stack dump to help trace the issue.
664     * </p> 
665         */
666        public Issue setDiagnostics(StringDt theValue) {
667                myDiagnostics = theValue;
668                return this;
669        }
670        
671        
672
673        /**
674         * Sets the value for <b>diagnostics</b> ()
675         *
676     * <p>
677     * <b>Definition:</b>
678     * Additional diagnostic information about the issue.  Typically, this may be a description of how a value is erroneous, or a stack dump to help trace the issue.
679     * </p> 
680         */
681        public Issue setDiagnostics( String theString) {
682                myDiagnostics = new StringDt(theString); 
683                return this; 
684        }
685
686 
687        /**
688         * Gets the value(s) for <b>location</b> ().
689         * creating it if it does
690         * not exist. Will not return <code>null</code>.
691         *
692     * <p>
693     * <b>Definition:</b>
694     * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
695     * </p> 
696         */
697        public java.util.List<StringDt> getLocation() {  
698                if (myLocation == null) {
699                        myLocation = new java.util.ArrayList<StringDt>();
700                }
701                return myLocation;
702        }
703
704        /**
705         * Sets the value(s) for <b>location</b> ()
706         *
707     * <p>
708     * <b>Definition:</b>
709     * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
710     * </p> 
711         */
712        public Issue setLocation(java.util.List<StringDt> theValue) {
713                myLocation = theValue;
714                return this;
715        }
716        
717        
718
719        /**
720         * Adds and returns a new value for <b>location</b> ()
721         *
722     * <p>
723     * <b>Definition:</b>
724     * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
725     * </p> 
726         */
727        public StringDt addLocation() {
728                StringDt newType = new StringDt();
729                getLocation().add(newType);
730                return newType; 
731        }
732
733        /**
734         * Adds a given new value for <b>location</b> ()
735         *
736         * <p>
737         * <b>Definition:</b>
738         * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
739         * </p>
740         * @param theValue The location to add (must not be <code>null</code>)
741         */
742        public Issue addLocation(StringDt theValue) {
743                if (theValue == null) {
744                        throw new NullPointerException("theValue must not be null");
745                }
746                getLocation().add(theValue);
747                return this;
748        }
749
750        /**
751         * Gets the first repetition for <b>location</b> (),
752         * creating it if it does not already exist.
753         *
754     * <p>
755     * <b>Definition:</b>
756     * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
757     * </p> 
758         */
759        public StringDt getLocationFirstRep() {
760                if (getLocation().isEmpty()) {
761                        return addLocation();
762                }
763                return getLocation().get(0); 
764        }
765        /**
766         * Adds a new value for <b>location</b> ()
767         *
768     * <p>
769     * <b>Definition:</b>
770     * A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
771     * </p> 
772     *
773     * @return Returns a reference to this object, to allow for simple chaining.
774         */
775        public Issue addLocation( String theString) {
776                if (myLocation == null) {
777                        myLocation = new java.util.ArrayList<StringDt>();
778                }
779                myLocation.add(new StringDt(theString));
780                return this; 
781        }
782
783 
784
785        /**
786         * @deprecated Use {@link #getDiagnosticsElement()} instead - OperationOutcome.details was renamed to OperationOutcome.diagnostics in DSTU2 and a new OperationOutcome.details codeableconcept element was introduced
787         */
788        @Deprecated
789        @Override
790        public StringDt getDetailsElement() {
791                return getDiagnosticsElement();
792        }
793
794        /**
795         * @deprecated Use {@link #setDetails(String)} instead - OperationOutcome.details was renamed to OperationOutcome.diagnostics in DSTU2 and a new OperationOutcome.details codeableconcept element was introduced
796         */
797        @Deprecated
798        @Override
799        public BaseIssue setDetails(String theString) {
800                setDiagnostics(theString);
801                return this;
802        }
803
804        }
805
806
807
808
809    @Override
810    public String getResourceName() {
811        return "OperationOutcome";
812    }
813    
814    public ca.uhn.fhir.context.FhirVersionEnum getStructureFhirVersionEnum() {
815        return ca.uhn.fhir.context.FhirVersionEnum.DSTU2;
816    }
817
818
819}