public override ErrorList Validate()
        {
            var result = new ErrorList();

            result.AddRange(base.Validate());

            if (Identifier != null)
            {
                result.AddRange(Identifier.Validate());
            }
            if (Patient != null)
            {
                result.AddRange(Patient.Validate());
            }
            if (StatusElement != null)
            {
                result.AddRange(StatusElement.Validate());
            }
            if (Period != null)
            {
                result.AddRange(Period.Validate());
            }
            if (ModifiedElement != null)
            {
                result.AddRange(ModifiedElement.Validate());
            }
            if (Concern != null)
            {
                Concern.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (Participant != null)
            {
                Participant.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (Goal != null)
            {
                Goal.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (Activity != null)
            {
                Activity.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (NotesElement != null)
            {
                result.AddRange(NotesElement.Validate());
            }

            return(result);
        }
            public override ErrorList Validate()
            {
                var result = new ErrorList();

                result.AddRange(base.Validate());

                if (DescriptionElement != null)
                {
                    result.AddRange(DescriptionElement.Validate());
                }
                if (StatusElement != null)
                {
                    result.AddRange(StatusElement.Validate());
                }
                if (NotesElement != null)
                {
                    result.AddRange(NotesElement.Validate());
                }

                return(result);
            }
        public override ErrorList Validate()
        {
            var result = new ErrorList();

            result.AddRange(base.Validate());

            if (Subject != null)
            {
                result.AddRange(Subject.Validate());
            }
            if (Encounter != null)
            {
                result.AddRange(Encounter.Validate());
            }
            if (Asserter != null)
            {
                result.AddRange(Asserter.Validate());
            }
            if (DateAssertedElement != null)
            {
                result.AddRange(DateAssertedElement.Validate());
            }
            if (Code != null)
            {
                result.AddRange(Code.Validate());
            }
            if (Category != null)
            {
                result.AddRange(Category.Validate());
            }
            if (StatusElement != null)
            {
                result.AddRange(StatusElement.Validate());
            }
            if (Certainty != null)
            {
                result.AddRange(Certainty.Validate());
            }
            if (Severity != null)
            {
                result.AddRange(Severity.Validate());
            }
            if (Onset != null)
            {
                result.AddRange(Onset.Validate());
            }
            if (Abatement != null)
            {
                result.AddRange(Abatement.Validate());
            }
            if (Stage != null)
            {
                result.AddRange(Stage.Validate());
            }
            if (Evidence != null)
            {
                Evidence.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (Location != null)
            {
                Location.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (RelatedItem != null)
            {
                RelatedItem.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (NotesElement != null)
            {
                result.AddRange(NotesElement.Validate());
            }

            return(result);
        }
            public override ErrorList Validate()
            {
                var result = new ErrorList();

                result.AddRange(base.Validate());

                if (CategoryElement != null)
                {
                    result.AddRange(CategoryElement.Validate());
                }
                if (Code != null)
                {
                    result.AddRange(Code.Validate());
                }
                if (StatusElement != null)
                {
                    result.AddRange(StatusElement.Validate());
                }
                if (ProhibitedElement != null)
                {
                    result.AddRange(ProhibitedElement.Validate());
                }
                if (Timing != null)
                {
                    result.AddRange(Timing.Validate());
                }
                if (Location != null)
                {
                    result.AddRange(Location.Validate());
                }
                if (Performer != null)
                {
                    Performer.ForEach(elem => result.AddRange(elem.Validate()));
                }
                if (Product != null)
                {
                    result.AddRange(Product.Validate());
                }
                if (DailyAmount != null)
                {
                    result.AddRange(DailyAmount.Validate());
                }
                if (Quantity != null)
                {
                    result.AddRange(Quantity.Validate());
                }
                if (DetailsElement != null)
                {
                    result.AddRange(DetailsElement.Validate());
                }
                if (ActionTaken != null)
                {
                    ActionTaken.ForEach(elem => result.AddRange(elem.Validate()));
                }
                if (NotesElement != null)
                {
                    result.AddRange(NotesElement.Validate());
                }

                return(result);
            }
        public override ErrorList Validate()
        {
            var result = new ErrorList();

            result.AddRange(base.Validate());

            if (Subject != null)
            {
                result.AddRange(Subject.Validate());
            }
            if (Type != null)
            {
                result.AddRange(Type.Validate());
            }
            if (BodySite != null)
            {
                BodySite.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (IndicationElement != null)
            {
                result.AddRange(IndicationElement.Validate());
            }
            if (Performer != null)
            {
                Performer.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (Date != null)
            {
                result.AddRange(Date.Validate());
            }
            if (Encounter != null)
            {
                result.AddRange(Encounter.Validate());
            }
            if (OutcomeElement != null)
            {
                result.AddRange(OutcomeElement.Validate());
            }
            if (Report != null)
            {
                Report.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (ComplicationElement != null)
            {
                result.AddRange(ComplicationElement.Validate());
            }
            if (FollowUpElement != null)
            {
                result.AddRange(FollowUpElement.Validate());
            }
            if (RelatedItem != null)
            {
                RelatedItem.ForEach(elem => result.AddRange(elem.Validate()));
            }
            if (NotesElement != null)
            {
                result.AddRange(NotesElement.Validate());
            }

            return(result);
        }