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);
        }