private void PopulateProstatectomyDetails()
        {
            // build Prostatectomy: single entry
            int?      prostatectomyId = null;
            int?      pathologyId     = null;
            Procedure prostatectomy   = GetProstatectomy();

            if (prostatectomy != null && prostatectomy.PrimaryKeyHasValue)
            {
                prostatectomyId = (int?)prostatectomy[Procedure.ProcedureId];
                Pathology pathology = GetPathology(prostatectomyId.Value);
                if (pathology != null && pathology.PrimaryKeyHasValue)
                {
                    pathologyId = (int)pathology[Pathology.PathologyId];
                }
            }

            PopulateProstatectomyFields(prostatectomyId);

            // determine missed event
            ProstatectomyAbsentEvent.SetAbsentEvent(base.patientId);
            // set "yes"
            if (prostatectomyId.HasValue)
            {
                ProstatectomyAbsentEvent.YesChecked = true;
            }

            // populate Grade Details
            PopulateGradeDetails(pathologyId);
        }
        public override IEnumerable <BusinessObject> Save()
        {
            List <BusinessObject> records = new List <BusinessObject>();

            // save prostatectomy
            records.AddRange(SaveProstatectomy());

            // update absent event
            ProstatectomyAbsentEvent.SaveAbsentEvent(base.patientId);

            return(records.ToArray());
        }