示例#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());
            }
        }
示例#2
0
 public string Guardar(Enfermedad enfermedad)
 {
     if (enfermedad.Codigo == null || enfermedad.Nombre == null || enfermedad.Tipo == null || enfermedad.Gravedad == null)
     {
         return("Digite los campos primordiales para su registro");
     }
     else
     {
         return("Registrado correctamente");
     }
 }
        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());
            }
        }
示例#4
0
        private Enfermedad Detectar(List <double> probabilidades)
        {
            int    temporal = 0;
            double maximo   = probabilidades.Max();

            foreach (var item in probabilidades)
            {
                if (item != maximo)
                {
                    temporal += 1;
                }
                else
                {
                    break;
                }
            }

            Enfermedad enfermedad = _request.Enfermedades.ElementAt(temporal);

            return(enfermedad);
        }
示例#5
0
 public DetectarEnfermedadResponse(Enfermedad enfermedad, Diagnostico diagnostico)
 {
     Enfermedad  = enfermedad;
     Diagnostico = diagnostico;
 }
 public DetectarEnfermedadResponse(Enfermedad enfermedad, double probabilidad)
 {
     Enfermedad   = enfermedad;
     Probabilidad = probabilidad;
 }