public DetectarResponseapp detectar(DetectarRequestapp request) { var paciente = _unitOfWork.IPacienteRepository.FindFirstOrDefault(x => x.Identificacion == request.IdPaciente); if (paciente == null) { return(new DetectarResponseapp() { Message = $"el paciente no existe" }); } DetectarEnfermedadService detectarEnfermedad = new DetectarEnfermedadService(); DetectarEnfermedadRequest enfermedadRequest = new DetectarEnfermedadRequest(); var enfermedades = _unitOfWork.EnfermedadRepository.FindBy(includeProperties: "Sintomas").ToList(); enfermedadRequest.Enfermedades = enfermedades; //asociar sintomas a cada enfermedad////////////////////////////////////////////////////////////////////////////////////////// foreach (var Item in enfermedadRequest.Enfermedades) { Console.WriteLine(Item.Nombre + " " + Item.Id); var enfermedadsintoma = _unitOfWork.IEnfermedadSintoma.FindBy(p => p.Enfermedad.Codigo == Item.Codigo, includeProperties: "Sintoma,Enfermedad").ToList(); Console.WriteLine("sintomas asociadas de " + Item.Nombre); foreach (var item2 in enfermedadsintoma) { //var sintoma = _unitOfWork.SintomaRepository.FindFirstOrDefault(p => p.Codigo.Equals(item2.Sintoma.Codigo)); Console.WriteLine(item2.Sintoma.Descripcion); Item.Sintomas.Add(item2.Sintoma); } Console.WriteLine("---------------------------------------"); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////buscar sintomas//////////////////////////////////////////////////////////////////////////////////////////// foreach (var item3 in request.Descipciones) { var sintomapaciente = _unitOfWork.SintomaRepository.FindFirstOrDefault(p => p.Descripcion == (item3)); if (sintomapaciente != null) { enfermedadRequest.Sintomas.Add(sintomapaciente); Console.WriteLine(sintomapaciente.Descripcion); } } Console.WriteLine("numero de sistomas del paciente : " + enfermedadRequest.Sintomas.Count()); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////calcilar probabilidad enfermedad//////////////////////////////////////////////////////////////////////////////////////// if (enfermedadRequest.Sintomas.Count() > 1) { enfermedadRequest.Paciente = paciente; var deteccion = detectarEnfermedad.CalcularProbabilidad(enfermedadRequest); ConsultarEnfermedadTratamientoService consultarEnfermedadTratamiento = new ConsultarEnfermedadTratamientoService(_unitOfWork); request.tratamientosEnfermedad = consultarEnfermedadTratamiento.GetTratamiento(deteccion.Enfermedad.Codigo); return(new DetectarResponseapp() { Message = $"se le manda tratamiento", enfermedad = deteccion.Enfermedad, diagnostico = deteccion.Diagnostico }); } else { return(new DetectarResponseapp() { Message = $"sus sintomas no estan asociados a una enfermedad pulmonar" }); } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* * if (deteccion.Enfermedad.Gravedad == "ALTA" || deteccion.Enfermedad.Gravedad == "MEDIA") * { * CrearCitaService crearCitaService = new CrearCitaService(_unitOfWork); * CitaRequest citaRequest = new CitaRequest(enfermedadRequest.Paciente.Medico, enfermedadRequest.Paciente); * crearCitaService.CrearCita(citaRequest); * ConsultarMedicoService consultarMedico = new ConsultarMedicoService(_unitOfWork); * var medicoPaciente=consultarMedico.GetId(enfermedadRequest.Paciente.Medico.Id); * medicoPaciente.Diagnosticos.Add(deteccion. * Diagnostico); * _unitOfWork.IMedicoRepository.Edit(medicoPaciente); * * //llamar diagnitco service * CrearDiagnosticoService crearDiagnosticoService = new CrearDiagnosticoService(_unitOfWork); * DiagnosticoRequest diagnosticoRequest = new DiagnosticoRequest(deteccion.Diagnostico.Descripcion,deteccion.Diagnostico.Enfermedad,deteccion.Diagnostico.Paciente,deteccion.Diagnostico.Medico,deteccion.Diagnostico.Estado); * * crearDiagnosticoService.CrearDiagnostico(diagnosticoRequest); * _unitOfWork.Commit(); * _unitOfWork.Dispose(); * return new DetectarResponse() { Message = $"se registro cita" }; * } * else * { * * return new DetectarResponse() { Message = $"se le manda tratamiento" }; * //var consultar = _unitOfWork.IEnfermedadTratamientoRepository.FindBy(c => c.enfermedad == deteccion.Enfermedad); * * //var consulta = _unitOfWork.TratamientoRepository.FindBy() * }*/ }
public DetectarResponseapp detectar(DetectarRequestapp2 request2) { DetectarRequestapp request = new DetectarRequestapp(request2.IdPaciente, request2.Descripciones); var paciente_prueba = _unitOfWork.IPacienteRepository.FindBy(p => p.Identificacion == request2.IdPaciente, includeProperties: "Medico").ToList(); var paciente = _unitOfWork.IPacienteRepository.FindFirstOrDefault(x => x.Identificacion == request.IdPaciente); if (paciente == null) { return(new DetectarResponseapp() { Message = $"el paciente no existe" }); } if (paciente.Medico == null) { return(new DetectarResponseapp() { Message = $"Usted no tiene asociado un medico, por favor vaya al menu a la opcion de --> asociar medico <-- y elija uno" }); } DetectarEnfermedadService detectarEnfermedad = new DetectarEnfermedadService(); DetectarEnfermedadRequest enfermedadRequest = new DetectarEnfermedadRequest(); var enfermedades = _unitOfWork.EnfermedadRepository.FindBy(includeProperties: "Sintomas").ToList(); enfermedadRequest.Enfermedades = enfermedades; /////////////asociar sintomas a cada enfermedad////////////////////////////////////////////////////////////////////////////// foreach (var Item in enfermedadRequest.Enfermedades) { Console.WriteLine(Item.Nombre + " " + Item.Id); var enfermedadsintoma = _unitOfWork.IEnfermedadSintoma.FindBy(p => p.Enfermedad.Codigo == Item.Codigo, includeProperties: "Sintoma,Enfermedad").ToList(); Console.WriteLine("sintomas asociadas de " + Item.Nombre); foreach (var item2 in enfermedadsintoma) { Console.WriteLine(item2.Sintoma.Descripcion); Item.Sintomas.Add(item2.Sintoma); } Console.WriteLine("---------------------------------------"); } //////////////////buscar sintomas presentados por el paciente//////////////////////////////////////////////////////////////// foreach (var item3 in request.Descripciones) { var sintomapaciente = _unitOfWork.SintomaRepository.FindFirstOrDefault(p => p.Descripcion == (item3)); if (sintomapaciente != null) { enfermedadRequest.Sintomas.Add(sintomapaciente); Console.WriteLine(sintomapaciente.Descripcion); } } Console.WriteLine("numero de sistomas del paciente : " + enfermedadRequest.Sintomas.Count()); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////calcular probabilidad enfermedad////////////////////////////////////////////////////////////////////////////// if (enfermedadRequest.Sintomas.Count() > 1) { enfermedadRequest.Paciente = paciente; var deteccion = detectarEnfermedad.CalcularProbabilidad(enfermedadRequest); //////////////////////////////////////////////////guardar el diagnostico//////////////////////////////////////////////////// string descripcion = ""; if (deteccion.Enfermedad != null) { descripcion = ($"usted tiene {deteccion.Probabilidad}% de tener la enfermedad pulmonar de {deteccion.Enfermedad.Nombre}"); DiagnosticoRequest _diagnostico = new DiagnosticoRequest(descripcion, deteccion.Enfermedad, enfermedadRequest.Paciente, enfermedadRequest.Paciente.Medico, "pendiente", null, new DateTime()); CrearDiagnosticoService serviciocreardiagnostico = new CrearDiagnosticoService(_unitOfWork); serviciocreardiagnostico.CrearDiagnostico(_diagnostico); } ////////////////////retornamos la respuesta de la enfermedad detectada/////////////////////////////////////////////////////// return(new DetectarResponseapp() { Message = $"se le manda tratamiento", MensajeDiagnostico = descripcion }); } else { return(new DetectarResponseapp() { Message = $"sus sintomas no estan asociados a una enfermedad pulmonar" }); } }