Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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());
        }