Ejemplo n.º 1
0
        public DetectarEnfermedadResponse CalcularProbabilidad(DetectarEnfermedadRequest request)
        {
            int temp = 0;
            int suma = 0;

            _request = request;
            List <double> probabilidades  = new List <double>();
            List <double> probabilidades2 = new List <double>();
            var           pacientes       = request.Paciente;

            if (pacientes != null)
            {
                foreach (var itemEnfermedad in request.Enfermedades)
                {
                    suma = 0;
                    temp = 0;
                    foreach (var itemSintomas in itemEnfermedad.Sintomas)
                    {
                        foreach (var itemSintomaPaciente in request.Sintomas)
                        {
                            if (itemSintomas.Descripcion.Equals(itemSintomaPaciente.Descripcion))
                            {
                                suma += 1;
                            }
                        }
                        temp += 1;
                    }
                    probabilidades.Add(suma);
                    double num = (double)suma / temp;
                    double pro = (double)num * 100;
                    probabilidades2.Add(pro);
                }

                var        probabilidad = (double)probabilidades2.Max();
                Enfermedad enfermedad   = Detectar(probabilidades);

                if (enfermedad != null)
                {
                    _diagnostico.Descripcion = ($"usted tiene {probabilidad}% de tener la enfermedad pulmonar de {enfermedad.Nombre}");
                    _diagnostico.Enfermedad  = enfermedad;
                    _diagnostico.Fecha       = new DateTime();
                    _diagnostico.Paciente    = request.Paciente;
                    _diagnostico.Medico      = request.Paciente.Medico;
                    _diagnostico.Estado      = "pendiente";
                }
                else
                {
                    _diagnostico = null;
                }
                return(new DetectarEnfermedadResponse(enfermedad, _diagnostico));
            }
            else
            {
                return(new DetectarEnfermedadResponse());
            }
        }
        public DetectarEnfermedadResponse CalcularProbabilidad(DetectarEnfermedadRequest request)
        {
            int temp = 0;
            int suma = 0;

            _request = request;
            List <double> probabilidades  = new List <double>();
            List <double> probabilidades2 = new List <double>();
            var           pacientes       = request.Paciente;

            if (pacientes != null)
            {
                foreach (var itemEnfermedad in request.Enfermedades)
                {
                    suma = 0;
                    temp = 0;
                    foreach (var itemSintomaPaciente in request.Sintomas)
                    {
                        foreach (var itemSintomas in itemEnfermedad.Sintomas)
                        {
                            if (itemSintomas.Descripcion.Equals(itemSintomaPaciente.Descripcion))
                            {
                                suma += 1;
                            }
                        }
                        temp += 1;
                    }
                    probabilidades.Add(suma);
                    double num = (double)suma / temp;
                    double pro = (double)num * 100;
                    probabilidades2.Add(pro);
                }

                foreach (var itemEnfermedad in request.Enfermedades)
                {
                    itemEnfermedad.Sintomas.Clear();
                }

                var        probabilidad = (double)probabilidades2.Max();
                Enfermedad enfermedad   = Detectar(probabilidades2);
                return(new DetectarEnfermedadResponse(enfermedad, probabilidad));
            }
            else
            {
                return(new DetectarEnfermedadResponse());
            }
        }