public DiagnosticoResponse CrearDiagnostico(DiagnosticoRequest request) { Diagnostico diagnostico = new Diagnostico(); diagnostico.Estado = request.Estado; diagnostico.Descripcion = request.Descripcion; diagnostico.Enfermedad = request.Enfermedad; diagnostico.Fecha = request.Fecha; diagnostico.Medico = request.Medico; diagnostico.Paciente = request.Paciente; diagnostico.Guardar(diagnostico); _unitOfWork.DiagnosticoRepository.Add(diagnostico); _unitOfWork.Commit(); return(new DiagnosticoResponse() { Message = $"Se Registro CorrectaMente su diagnostico" }); }
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" }); } }