示例#1
0
        public ActionResult Index(AnaliticaViewModel analiticaViewModel)
        {
            var Lista = db.Informe.Where(x => x.FechaMuestra >= analiticaViewModel.FechaInicio && x.FechaMuestra <= analiticaViewModel.FechaFin
                                         ).ToList();

            var respuesta = Calcular(Lista);

            respuesta.FechaFin    = analiticaViewModel.FechaFin;
            respuesta.FechaInicio = analiticaViewModel.FechaInicio;
            return(View(respuesta));


            //};
            //return View();
        }
示例#2
0
        private AnaliticaViewModel Calcular(List <Informe> Lista)
        {
            double cantidadTotal = Lista.ToList().Count;

            if (cantidadTotal != 0)
            {
                var lista = db.Informe.OrderBy(x => x.FechaMuestra).ToList();

                var fechaInicio = lista.FirstOrDefault().FechaMuestra;
                var fechaFin    = lista.LastOrDefault().FechaMuestra;

                double NegativoParaMalignidadTotal = (Lista.Where(x => x.IdDiagnosticoCitologico == 1).ToList().Count());
                double InflamacionleveTotal        = (Lista.Where(x => x.IdDiagnosticoCitologico == 2).ToList().Count());
                double InflamacionModeradaTotal    = (Lista.Where(x => x.IdDiagnosticoCitologico == 3).ToList().Count());
                double InflamacionSeveraTotal      = (Lista.Where(x => x.IdDiagnosticoCitologico == 4).ToList().Count());
                double ASCUSTotal            = (Lista.Where(x => x.IdDiagnosticoCitologico == 5).ToList().Count());
                double AGUSTotal             = (Lista.Where(x => x.IdDiagnosticoCitologico == 6).ToList().Count());
                double LIEBGTotal            = (Lista.Where(x => x.IdDiagnosticoCitologico == 7).ToList().Count());
                double LIEAGTotal            = (Lista.Where(x => x.IdDiagnosticoCitologico == 8).ToList().Count());
                double CarcinomaInvasorTotal = (Lista.Where(x => x.IdDiagnosticoCitologico == 9).ToList().Count());
                double AdenocarcinomaTotal   = (Lista.Where(x => x.IdDiagnosticoCitologico == 10).ToList().Count());
                double ASCHTotal             = (Lista.Where(x => x.IdDiagnosticoCitologico == 12).ToList().Count());
                double OtrosTotal            = (Lista.Where(x => x.IdDiagnosticoCitologico == 13).ToList().Count());


                double NegativoParaMalignidad = 0;
                double Inflamacionleve        = 0;
                double InflamacionModerada    = 0;
                double InflamacionSevera      = 0;
                double ASCUS            = 0;
                double AGUS             = 0;
                double LIEBG            = 0;
                double LIEAG            = 0;
                double CarcinomaInvasor = 0;
                double Adenocarcinoma   = 0;
                double ASCH             = 0;
                double Otros            = 0;



                var SinRealizar                   = 0;
                var CervicitisAguda               = 0;
                var CervicitisCronica             = 0;
                var AtipiaCoilociticaSinDisplasia = 0;
                var NICI              = 0;
                var NICII             = 0;
                var NICIII            = 0;
                var CIS               = 0;
                var CarcinomaEscamoso = 0;
                var DisplasiaGlandularEndocervical = 0;
                var AdenocarcinomaTipo             = 0;
                var OtrosTipo = 0;

                NegativoParaMalignidad = Math.Round((NegativoParaMalignidadTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                Inflamacionleve        = Math.Round((InflamacionleveTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                InflamacionModerada    = Math.Round((InflamacionModeradaTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                InflamacionSevera      = Math.Round((InflamacionSeveraTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                ASCUS            = Math.Round((ASCUSTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                AGUS             = Math.Round((AGUSTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                LIEBG            = Math.Round((LIEBGTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                LIEAG            = Math.Round((LIEAGTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                CarcinomaInvasor = Math.Round((CarcinomaInvasorTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                Adenocarcinoma   = Math.Round((AdenocarcinomaTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                ASCH             = Math.Round((ASCHTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);
                Otros            = Math.Round((OtrosTotal * 100) / cantidadTotal, MidpointRounding.AwayFromZero);

                ////Tipo VPN/ Histológico

                SinRealizar                   = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 0).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                CervicitisAguda               = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 1).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                CervicitisCronica             = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 2).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                AtipiaCoilociticaSinDisplasia = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 3).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                NICI              = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 4).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                NICII             = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 5).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                NICIII            = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 6).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                CIS               = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 7).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                CarcinomaEscamoso = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 8).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                DisplasiaGlandularEndocervical = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 9).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                AdenocarcinomaTipo             = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 10).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));
                OtrosTipo = Convert.ToInt32(Math.Round(Convert.ToDouble((Lista.Where(x => x.IdTipoHistologico == 11).ToList().Count() * 100) / Convert.ToInt32(cantidadTotal)), MidpointRounding.AwayFromZero));

                //

                double CitologiasTotales = Lista.Where(x => x.CitologiaVPH == true).ToList().Count();

                double NegativoParaMalignidadCitologias = 0;
                double InflamacionleveCitologias        = 0;
                double InflamacionModeradaCitologias    = 0;
                double InflamacionSeveraCitologias      = 0;
                double ASCUSCitologias            = 0;
                double AGUSCitologias             = 0;
                double LIEBGCitologias            = 0;
                double LIEAGCitologias            = 0;
                double CarcinomaInvasorCitologias = 0;
                double AdenocarcinomaCitologias   = 0;
                double ASCHCitologias             = 0;
                double OtrosCitologias            = 0;

                if (CitologiasTotales != 0)
                {
                    NegativoParaMalignidadCitologias = Math.Round((NegativoParaMalignidadTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    InflamacionleveCitologias        = Math.Round((InflamacionleveTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    InflamacionModeradaCitologias    = Math.Round((InflamacionModeradaTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    InflamacionSeveraCitologias      = Math.Round((InflamacionSeveraTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    ASCUSCitologias            = Math.Round((ASCUSTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    AGUSCitologias             = Math.Round((AGUSTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    LIEBGCitologias            = Math.Round((LIEBGTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    LIEAGCitologias            = Math.Round((LIEAGTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    CarcinomaInvasorCitologias = Math.Round((CarcinomaInvasorTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    AdenocarcinomaCitologias   = Math.Round((AdenocarcinomaTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    ASCHCitologias             = Math.Round((ASCHTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                    OtrosCitologias            = Math.Round((OtrosTotal * 100) / CitologiasTotales, MidpointRounding.AwayFromZero);
                }

                var viewModel = new AnaliticaViewModel
                {
                    NegativoParaMalignidad = NegativoParaMalignidad,
                    Adenocarcinoma         = Adenocarcinoma,
                    AGUS                = AGUS,
                    ASCH                = ASCH,
                    ASCUS               = ASCUS,
                    CarcinomaInvasor    = CarcinomaInvasor,
                    Inflamacionleve     = Inflamacionleve,
                    InflamacionModerada = InflamacionModerada,
                    InflamacionSevera   = InflamacionSevera,
                    LIEAG               = LIEAG,
                    LIEBG               = LIEBG,
                    Otros               = Otros,


                    ////Tipo VPN/ Histológico

                    AdenocarcinomaTipo            = AdenocarcinomaTipo,
                    AtipiaCoilociticaSinDisplasia = AtipiaCoilociticaSinDisplasia,
                    CarcinomaEscamoso             = CarcinomaEscamoso,
                    CervicitisAguda   = CervicitisAguda,
                    CervicitisCronica = CervicitisCronica,
                    CIS = CIS,
                    DisplasiaGlandularEndocervical = DisplasiaGlandularEndocervical,
                    NICI        = NICI,
                    NICII       = NICII,
                    NICIII      = NICIII,
                    OtrosTipo   = OtrosTipo,
                    SinRealizar = SinRealizar,

                    ////


                    AdenocarcinomaCitologias         = AdenocarcinomaCitologias,
                    AGUSCitologias                   = AGUSCitologias,
                    ASCHCitologias                   = ASCHCitologias,
                    ASCUSCitologias                  = ASCUSCitologias,
                    CarcinomaInvasorCitologias       = CarcinomaInvasorCitologias,
                    InflamacionleveCitologias        = InflamacionleveCitologias,
                    InflamacionModeradaCitologias    = InflamacionModeradaCitologias,
                    InflamacionSeveraCitologias      = InflamacionSeveraCitologias,
                    LIEAGCitologias                  = LIEAGCitologias,
                    LIEBGCitologias                  = LIEBGCitologias,
                    NegativoParaMalignidadCitologias = NegativoParaMalignidadCitologias,
                    OtrosCitologias                  = OtrosCitologias,

                    FechaInicio = fechaInicio,
                    FechaFin    = fechaFin,
                };

                return(viewModel);
            }

            else
            {
                var viewModel = new AnaliticaViewModel();
                return(viewModel);
            }
        }