예제 #1
0
        public override IDeepCopyable CopyTo(IDeepCopyable other)
        {
            var dest = other as Procedure;

            if (dest != null)
            {
                base.CopyTo(dest);
                if (Identifier != null)
                {
                    dest.Identifier = new List <Hl7.Fhir.Model.Identifier>(Identifier.DeepCopy());
                }
                if (Subject != null)
                {
                    dest.Subject = (Hl7.Fhir.Model.ResourceReference)Subject.DeepCopy();
                }
                if (Type != null)
                {
                    dest.Type = (Hl7.Fhir.Model.CodeableConcept)Type.DeepCopy();
                }
                if (BodySite != null)
                {
                    dest.BodySite = new List <Hl7.Fhir.Model.CodeableConcept>(BodySite.DeepCopy());
                }
                if (Indication != null)
                {
                    dest.Indication = new List <Hl7.Fhir.Model.CodeableConcept>(Indication.DeepCopy());
                }
                if (Performer != null)
                {
                    dest.Performer = new List <Hl7.Fhir.Model.Procedure.ProcedurePerformerComponent>(Performer.DeepCopy());
                }
                if (Date != null)
                {
                    dest.Date = (Hl7.Fhir.Model.Period)Date.DeepCopy();
                }
                if (Encounter != null)
                {
                    dest.Encounter = (Hl7.Fhir.Model.ResourceReference)Encounter.DeepCopy();
                }
                if (OutcomeElement != null)
                {
                    dest.OutcomeElement = (Hl7.Fhir.Model.FhirString)OutcomeElement.DeepCopy();
                }
                if (Report != null)
                {
                    dest.Report = new List <Hl7.Fhir.Model.ResourceReference>(Report.DeepCopy());
                }
                if (Complication != null)
                {
                    dest.Complication = new List <Hl7.Fhir.Model.CodeableConcept>(Complication.DeepCopy());
                }
                if (FollowUpElement != null)
                {
                    dest.FollowUpElement = (Hl7.Fhir.Model.FhirString)FollowUpElement.DeepCopy();
                }
                if (RelatedItem != null)
                {
                    dest.RelatedItem = new List <Hl7.Fhir.Model.Procedure.ProcedureRelatedItemComponent>(RelatedItem.DeepCopy());
                }
                if (NotesElement != null)
                {
                    dest.NotesElement = (Hl7.Fhir.Model.FhirString)NotesElement.DeepCopy();
                }
                return(dest);
            }
            else
            {
                throw new ArgumentException("Can only copy to an object of the same type", "other");
            }
        }
예제 #2
0
        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);
        }