/// <summary> /// Descripción: Recepcion masiva de muestras. /// Author: Terceros. /// Fecha Creacion: 26/11/2017 /// Fecha Modificación: 12-08-2019 /// Modificación: se cambia para que recepcione una entidad tipada - jmuga. /// </summary> /// <param name="comentarioList"></param> /// <returns></returns> public string ValidarMuestrasMasivo(List <ValidaResultadoMasivo> comentarioList) { string rpta = ""; var ordenMuestraBl = new OrdenMuestraBl(); int idUsuario = Logueado.idUsuario; string corte = string.Empty; string infoData = "ValidarMuestrasMasivo - "; new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - comienzo validacion - {comentarioList.Count} registros", infoData); var watch = Stopwatch.StartNew(); try { if (comentarioList != null) { if (ordenMuestraBl.VerificarMuestrasMasivo(comentarioList, idUsuario)) { watch.Stop(); new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - fin VerificarMuestrasMasivo - {watch.ElapsedMilliseconds} ms", infoData); for (int i = 0; i < comentarioList.Count(); i++) { var watch2 = Stopwatch.StartNew(); new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - inicio envio alerta - indice registro: {i} ", infoData); var resultadoBl = new ResultadosBl(); var datos = resultadoBl.GetDatosCorreo(comentarioList[i].idOrdenExamen); if (datos.CorreoSolicitante != "") { EnviarCorreo(datos); } if (datos.Envio == 1 && datos.CelularPaciente != "") { var sendSms = new EnvioCorreo(); string message = datos.Resultado; new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - inicio sms - indice registro: {i} ", infoData); string send = sendSms.NewSendAlertaPaciente(datos.CelularPaciente, message); corte = " Envio sms " + send; watch2.Stop(); var ms = watch2.ElapsedMilliseconds; watch2.Restart(); new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - fin sms - indice registro: {i} -tiempo transcurrido: {ms} ms ", infoData); } var data = resultadoBl.ObtenerResultadoCovidPorOrdenExamen(Guid.Parse(comentarioList[i].idOrdenExamen)); if (!string.IsNullOrWhiteSpace(data.tip_prueba)) { corte = " Masivo - despues de ObtenerResultadoCovidPorOrden"; var enviocorrecto = new SendRquest().EnviarResultadosCovid(data); corte = " Masivo - resultado de envio webservice: " + enviocorrecto; if (!string.IsNullOrWhiteSpace(enviocorrecto)) { corte = " Masivo - antes de InsertarResultadoCovidFallido"; resultadoBl.InsertarResultadoCovidFallido(data, Logueado.idUsuario, enviocorrecto); corte = " Masivo - despues de InsertarResultadoCovidFallido"; } else { infoData = string.Format("{0} - Masivo - EnvioCorrecto a WebService MINSA", infoData); new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", " - Masivo - envio correcto SendRquest().EnviarResultadosCovid", infoData); } } } rpta = "ok"; } } } catch (Exception ex) { new bsPage().LogErrorValidacionResultados(ex, "LogNetLab", "ValidacionResultados.ValidarMuestrasMasivo", corte); } watch.Stop(); new bsPage().LogInfoValidacionResultados("ValidacionResultados.ValidarMuestrasMasivo", $" - Masivo - fin validacion - {comentarioList.Count} - tiempo transcurrido: {watch.ElapsedMilliseconds} ms ", infoData); return(rpta); }
/// <summary> /// Descripción: Controlador para la realizar la validacion del resultado y actualizar la tabla en bd. /// Author: Terceros. /// Fecha Creacion: 01/01/2017 /// Fecha Modificación: 02/02/2017. /// Modificación: Se agregaron comentarios. /// </summary> /// <param name="idOrdenExamen"></param> /// <param name="comentario"></param> /// <param name="esConforme"></param> /// <returns></returns> public ActionResult Update(Guid idOrdenExamen, string comentario, int esConforme, string idOrden) { string corte = string.Empty; var resultadoBl = new ResultadosBl(); resultadoBl.UpdateDatosResultados(idOrdenExamen, comentario, esConforme, Logueado.idUsuario); corte = "despues de resultadoBl.UpdateDatosResultados"; string infoData = string.Format("idOrdenExamen: {0} - comentario: {1} - esConforme: {2} - idOrden: {3} - idUsuario: {4} - ", idOrdenExamen, comentario, esConforme, idOrden, Logueado.idUsuario); new bsPage().LogInfoValidacionResultados("ValidacionResultados.Update", "despues de resultadoBl.UpdateDatosResultados", infoData); if (esConforme == 1) { try { var datos = resultadoBl.GetDatosCorreo(idOrdenExamen.ToString()); corte = "despues de GetDatosCorreo"; if (datos.CorreoSolicitante != "") { EnviarCorreo(datos); corte = "despues de enviarCorreo()"; } if (datos.Envio == 1 && datos.CelularPaciente != "") { var sendSms = new EnvioCorreo(); string message = datos.Resultado; string send = sendSms.NewSendAlertaPaciente(datos.CelularPaciente, message); corte = "despues de SendAlertaPaciente - resultado: " + send; } //Enviar Resultados MINSA EQHALI corte = "antes de ObtenerResultadosCovidPorOrden"; //new NetLab.Extensions.Request.SendRquest().EnviarResultados(idOrden.ToString()); var data = resultadoBl.ObtenerResultadoCovidPorOrden(Guid.Parse(idOrden)); if (!string.IsNullOrWhiteSpace(data.tip_prueba)) { corte = "despues de ObtenerResultadoCovidPorOrden"; var enviocorrecto = new SendRquest().EnviarResultadosCovid(data); corte = "resultado de envio webservice: " + enviocorrecto; if (!string.IsNullOrWhiteSpace(enviocorrecto)) { corte = "antes de InsertarResultadoCovidFallido"; resultadoBl.InsertarResultadoCovidFallido(data, Logueado.idUsuario, enviocorrecto); corte = "despues de InsertarResultadoCovidFallido"; } else { infoData = string.Format("{0} - EnvioCorrecto a WebService MINSA", infoData); new bsPage().LogInfoValidacionResultados("ValidacionResultados.Update", "envio correcto SendRquest().EnviarResultadosCovid", infoData); } } } catch (Exception ex) { new bsPage().LogErrorValidacionResultados(ex, "LogNetLab", "ValidacionResultados.Update", corte); } // } return(View()); }