Esempio n. 1
0
        /// <summary>
        /// Descripción: Obtiene informacion de los datos clinicos por categoria
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="subCategorias"></param>
        /// <param name="idCategoria"></param>
        /// <param name="idEnfermedad"></param>
        /// <returns></returns>
        private static List <OrdenDatoClinico> GetDatos(IEnumerable <CategoriaDato> subCategorias, int idCategoria, int idEnfermedad, string idExamen)
        {
            if (subCategorias.Any())
            {
                return(null);
            }

            using (var datoClinicoDal = new DatoClinicoDal())
            {
                var datos = datoClinicoDal.GetDatoByCategoria(idCategoria, idExamen);

                datos.ForEach(d => d.ListaDato = GetLista(d.IdListaDato));

                List <OrdenDatoClinico> ordenDatoClinicoList = new List <OrdenDatoClinico>();
                foreach (Dato dato in datos)
                {
                    var noPrceisa = (dato.Prefijo.Contains("Escala de Glasgow"));

                    OrdenDatoClinico ordenDatoClinico = new OrdenDatoClinico();
                    ordenDatoClinico.idCategoriaDato         = idCategoria;
                    ordenDatoClinico.Dato                    = dato;
                    ordenDatoClinico.noPrecisa               = noPrceisa;
                    ordenDatoClinico.Enfermedad              = new Enfermedad();
                    ordenDatoClinico.Enfermedad.idEnfermedad = idEnfermedad;

                    ordenDatoClinicoList.Add(ordenDatoClinico);
                }

                return(ordenDatoClinicoList);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Descripción: Metodo para devolver el tipo de dato y el id del mismo.
        /// en este caso es un COMOBO BOX, utilizado para los datos clinicos.
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017.
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="ordenDato"></param>
        /// <returns></returns>
        public static MvcHtmlString DatoCombo(this HtmlHelper helper, OrdenDatoClinico ordenDato)
        {
            ordenDato.ValorString = ordenDato.noPrecisa ? "-1" : ordenDato.ValorString;
            ordenDato.ValorString = ordenDato.ValorString == "" ? null : ordenDato.ValorString;

            var idControl      = "valueDato" + ordenDato.Enfermedad.idEnfermedad + ordenDato.Dato.IdDato;
            var selectListItem = new List <SelectListItem>();

            if (ordenDato.Dato != null && ordenDato.Dato.ListaDato != null && ordenDato.Dato.ListaDato.Opciones != null)
            {
                selectListItem =
                    ordenDato.Dato.ListaDato.Opciones.Select(
                        opcionDato =>
                        new SelectListItem
                {
                    Value    = opcionDato.IdOpcionDato.ToString(),
                    Text     = opcionDato.Valor,
                    Selected = opcionDato.IdOpcionDato == Convert.ToInt32(ordenDato.ValorString)
                }).ToList();
            }

            var html = ordenDato.Estado == 0 ? helper.DropDownList(idControl, selectListItem, new { id = idControl, @class = "form-control" })
                : helper.DropDownList(idControl, selectListItem, new { id = idControl, @class = "form-control", disabled = "disabled" });

            return(html);
        }
Esempio n. 3
0
        /// <summary>
        /// Descripción: Metodo para devolver el tipo de dato y el id del mismo.
        /// en este caso es un TEXTAREA, utilizado para los datos clinicos.
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017.
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="ordenDato"></param>
        /// <returns></returns>
        public static MvcHtmlString DatoTextArea(this HtmlHelper helper, OrdenDatoClinico ordenDato)
        {
            var idControl = "valueDato" + ordenDato.Enfermedad.idEnfermedad + ordenDato.Dato.IdDato;

            var html = !ordenDato.noPrecisa ? $"<textarea id = \"{idControl}\" name = \"{idControl}\" placeholder = \"Ingrese Dato\" class=\"form-control\"/ >{ordenDato.ValorString}</textarea>"
                : $"<textarea disabled=\"disabled\" id = \"{idControl}\" name = \"{idControl}\" placeholder = \"Ingrese Dato\" class=\"form-control\"/ >{ordenDato.ValorString}</textarea>";

            return(new MvcHtmlString(html));
        }
Esempio n. 4
0
        /// <summary>
        /// Descripción: Metodo para devolver el tipo de dato y el id del mismo.
        /// en este caso es un DATETIME, utilizado para los datos clinicos.
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017.
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="ordenDato"></param>
        /// <returns></returns>
        public static MvcHtmlString DatoDate(this HtmlHelper helper, OrdenDatoClinico ordenDato)
        {
            var idControl = "valueDato" + ordenDato.Enfermedad.idEnfermedad + ordenDato.Dato.IdDato;
            //Juan Muga habilitar ingreso de fecha manualmente - agregar clase dateOnly
            var html = !ordenDato.noPrecisa ?
                       $"<input type = \"text\" id = \"{idControl}\" name = \"{idControl}\" value = \"{ordenDato.ValorString}\" placeholder = \"dd/mm/aaaa\" class=\"datepickerExtension dateOnly form-control\" onchange=\"return OnFechaInicioSintomasChange({idControl});\" autocomplete=\"off\" / >"
                : $"<input type = \"text\" disabled=\"disabled\" id = {idControl} name = \"{idControl}\" value = \"{ordenDato.ValorString}\" placeholder = \"dd/mm/aaaa\" class=\"datepickerExtension dateOnly form-control\"  autocomplete=\"off\" />";

            return(new MvcHtmlString(html));
        }
Esempio n. 5
0
        public void InsertTempOrdenDatoClinico(OrdenDatoClinico ordenDatoClinico, Guid idPaciente)
        {
            var objCommand = GetSqlCommand("pNLI_TempOrdenDatoClinico");

            InputParameterAdd.Guid(objCommand, "idPaciente", idPaciente);
            InputParameterAdd.Int(objCommand, "idDato", ordenDatoClinico.Dato.IdDato);
            InputParameterAdd.Int(objCommand, "idCategoriaDato", ordenDatoClinico.idCategoriaDato);
            InputParameterAdd.Varchar(objCommand, "valor", ordenDatoClinico.ValorString);
            InputParameterAdd.Int(objCommand, "estado", 0);
            InputParameterAdd.Int(objCommand, "idUsuarioRegistro", ordenDatoClinico.IdUsuarioRegistro);
            InputParameterAdd.Int(objCommand, "idEnfermedad", ordenDatoClinico.Enfermedad.idEnfermedad);
            InputParameterAdd.Int(objCommand, "noPrecisa", ordenDatoClinico.noPrecisa ? 1 : 0);
            InputParameterAdd.Int(objCommand, "estatus", ordenDatoClinico.estatus);
            ExecuteNonQuery(objCommand);
        }
Esempio n. 6
0
        /// <summary>
        /// Descripción: Metodo para devolver el tipo de dato y el id del mismo.
        /// en este caso es un CHECKBOX, utilizado para los datos clinicos.
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017.
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="ordenDato"></param>
        /// <returns></returns>
        public static MvcHtmlString DatoCheckBox(this HtmlHelper helper, OrdenDatoClinico ordenDato)
        {
            var idControl = "valueDato" + ordenDato.Enfermedad.idEnfermedad + ordenDato.Dato.IdDato;
            var html      = "";

            if (ordenDato.noPrecisa || ordenDato.ValorString == null)
            {
                html = $"<select name = \"{idControl}\" id = \"{idControl}\"><option value='0'>No Precisa</option><option value='1'>Si</option><option value='2'>No</option></select>";
            }
            else
            {
                if (ordenDato.ValorString.Equals("1"))
                {
                    html = $"<select name = \"{idControl}\" id = \"{idControl}\" ><option value='0'>No Precisa</option><option value='1' selected='selected'>Si</option><option value='2'>No</option></select>";
                }
                else
                {
                    html = $"<select name = \"{idControl}\" id = \"{idControl}\"><option value='0'>No Precisa</option><option value='1' >Si</option><option value='2' selected='selected'>No</option></select>";
                }
            }
            return(new MvcHtmlString(html));
        }
Esempio n. 7
0
        /// <summary>
        /// Descripción: Metodo para devolver el tipo de dato y el id del mismo.
        /// en este caso es un NUMERICO, utilizado para los datos clinicos.
        /// Author: Terceros.
        /// Fecha Creacion: 01/01/2017.
        /// Fecha Modificación: 02/02/2017.
        /// Modificación: Se agregaron comentarios.
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="ordenDato"></param>
        /// <returns></returns>
        public static MvcHtmlString DatoNumeric(this HtmlHelper helper, OrdenDatoClinico ordenDato)
        {
            var idControl        = "valueDato" + ordenDato.Enfermedad.idEnfermedad + ordenDato.Dato.IdDato;
            var keyPressEventAno = string.Empty;

            if (ordenDato.Dato != null && !string.IsNullOrEmpty(ordenDato.Dato.Prefijo))
            {
                if (ordenDato.Dato.Prefijo.Contains("(aaaa)"))
                {
                    keyPressEventAno = "onkeydown=\"return DatoClinicoAno(event);\"";
                }
                else
                if (ordenDato.Dato.Prefijo.Contains("Glasgow"))
                {
                    keyPressEventAno = "onkeydown=\"return DatoClinicoGlasgow(event);\"";
                }
            }

            var html = !ordenDato.noPrecisa
                ? $"<input type = \"number\" id = \"{idControl}\" name = \"{idControl}\" value = \"{ordenDato.ValorString}\" placeholder = \"Ingrese Cantidad\" class=\"form-control\" " + keyPressEventAno + " >"
                : $"<input type = \"number\" disabled=\"disabled\" id = \"{idControl}\" name = \"{idControl}\" value = \"{ordenDato.ValorString}\" placeholder = \"Ingrese Cantidad\" class=\"form-control\"/ " + keyPressEventAno + ">";

            return(new MvcHtmlString(html));
        }
Esempio n. 8
0
        public Orden GenerarOrden(string TipoDocumento, string nroDocumento, string EstablecimientoOrigen, string EstablecimientoEnvio, string FechaObtencion, string solicitante, string fechaIngresoINS, string nroOficio, string idOrdenPadreExportado)
        {
            var codigoOrdenGenerado = string.Empty;

            using (var ordenBl = new OrdenBl())
            {
                //Generar Codigo de Orden
                codigoOrdenGenerado = ordenBl.GenerarCodigoOrden(int.Parse(EstablecimientoOrigen));
            }


            var datoPaciente             = "";
            var idEstablecimientoDestino = EstablecimientoEnvio;
            var idEstablecimientoOrigen  = EstablecimientoOrigen;
            var fechaIngresoRom          = fechaIngresoINS;
            var oOrden            = new OrdenBl();
            var oTempOrden        = new TempOrdenBl();
            var orden             = new Orden();
            var pacienteBl        = new PacienteBl();
            var examenBl          = new ExamenBl();
            var establecimientoBl = new EstablecimientoBl();

            // Variables produccion
            int  idEnfermedad  = int.Parse(GetSetting <string>("EnfVirusRespiratorio")); //1005680;
            Guid idExamen      = Guid.Parse(GetSetting <string>("Covid19"));
            var  idTipoMuestra = int.Parse(GetSetting <string>("idTipoMuestra"));

            orden.nroOficio   = nroOficio;
            orden.codigoOrden = codigoOrdenGenerado;
            {
                datoPaciente = nroDocumento;
                List <Paciente> pacienteList = pacienteBl.getPacientes2(1, 10, int.Parse(TipoDocumento), datoPaciente);
                if (pacienteList.Any())
                {
                    bool continuar = true;
                    var  paciente  = pacienteList.First();

                    var enfermedadListAgregados    = new List <Enfermedad>();
                    var ordenExamenListAgregados   = new List <OrdenExamen>();
                    var ordenMaterialListAgregados = new List <OrdenMaterial>();
                    var ordenMuestraListAgregados  = new List <OrdenMuestra>();
                    var Establecimientobl          = new EstablecimientoBl();
                    var oEstablecimiento           = new Establecimiento();
                    if (string.IsNullOrEmpty(idEstablecimientoOrigen))
                    {
                        idEstablecimientoOrigen = "991";
                    }
                    oEstablecimiento                 = Establecimientobl.GetEstablecimientosById(int.Parse(idEstablecimientoOrigen));
                    orden.idEstablecimiento          = oEstablecimiento.IdEstablecimiento;
                    orden.EstablecimientoCodigoUnico = oEstablecimiento.CodigoUnico;
                    orden.idEstablecimientoEnvio     = int.Parse(EstablecimientoEnvio);
                    orden.IdUsuarioRegistro          = Logueado.idUsuario;
                    orden.IdLaboratorioDestino       = 995;
                    orden.Paciente        = new PacienteBl().getPacienteById(paciente.IdPaciente);
                    orden.solicitante     = solicitante;
                    orden.fechaIngresoINS = DateTime.Parse(fechaIngresoRom);
                    var laboratorio = new Laboratorio()
                    {
                        IdLaboratorio = 991, CodigoUnico = "10000R16"
                    };
                    orden.estatus           = 1;
                    orden.IdUsuarioRegistro = Logueado.idUsuario;
                    orden.fechaSolicitud    = DateTime.Parse(DateTime.Now.ToShortDateString());
                    var idOrdenPadreExportado2 = Guid.NewGuid();

                    string nuevoCodigoVerificador = string.Empty;
                    if (string.IsNullOrWhiteSpace(idOrdenPadreExportado) || idOrdenPadreExportado == Guid.Empty.ToString())
                    {
                        nuevoCodigoVerificador        = string.Format("{0}---{1}", Logueado.idUsuario, idOrdenPadreExportado2.ToString());
                        ViewBag.idOrdenPadreExportado = nuevoCodigoVerificador;
                        orden.observacion             = nuevoCodigoVerificador;
                    }
                    else
                    {
                        var arr = idOrdenPadreExportado.Split(new string[] { "---" }, StringSplitOptions.RemoveEmptyEntries);
                        if (arr[0] == Logueado.idUsuario.ToString())
                        {
                            ViewBag.idOrdenPadreExportado = idOrdenPadreExportado;
                            orden.observacion             = idOrdenPadreExportado;
                        }
                        else
                        {
                            nuevoCodigoVerificador        = string.Format("{0}---{1}", Logueado.idUsuario, Guid.NewGuid().ToString());
                            ViewBag.idOrdenPadreExportado = nuevoCodigoVerificador;
                            orden.observacion             = nuevoCodigoVerificador;
                        }
                    }
                    orden.Proyecto = new Proyecto
                    {
                        IdProyecto = 1
                    };

                    if (continuar)
                    {
                        var examenList = new Examen();
                        //var tipoMuestraList = new List<TipoMuestra>();
                        var materialList = new List <Material>();
                        //
                        materialList = new MaterialBl().GetMaterialesByIdTipoMuestra(idTipoMuestra).ToList();
                        var LstoExamen = new List <OrdenExamen>();
                        orden.ordenMuestraList = new List <OrdenMuestra>();
                        orden.ordenMuestraList.Add(new OrdenMuestra
                        {
                            idTipoMuestra = idTipoMuestra,
                            TipoMuestra   = new TipoMuestra {
                                idTipoMuestra = idTipoMuestra
                            },
                            fechaColeccion      = DateTime.Parse(FechaObtencion),//
                            horaColeccion       = DateTime.Now,
                            idProyecto          = 1,
                            MuestraCodificacion = new MuestraCodificacion()
                        });

                        var ordexmen = new OrdenExamen
                        {
                            idEnfermedad = idEnfermedad,
                            Enfermedad   = new Enfermedad {
                                idEnfermedad = idEnfermedad
                            },
                            idExamen = idExamen,
                            Examen   = new Examen {
                                idExamen = idExamen
                            },
                            IdTipoMuestra    = idTipoMuestra,
                            ordenMuestraList = orden.ordenMuestraList
                        };
                        LstoExamen.Add(ordexmen);
                        orden.ordenExamenList = LstoExamen;

                        orden.ordenMaterialList = new List <OrdenMaterial>();

                        //ORDENMATERIAL
                        var materiales = new MaterialBl().GetMaterialesByIdTipoMuestra(idTipoMuestra);
                        var material   = materiales.FirstOrDefault();
                        if (material != null)
                        {
                            orden.ordenMaterialList.Add(new OrdenMaterial
                            {
                                cantidad   = 1,
                                idMaterial = material.idMaterial,
                                Material   = new Material {
                                    idMaterial = material.idMaterial, TipoMuestra = new TipoMuestra {
                                        idTipoMuestra = idTipoMuestra
                                    }
                                },
                                fechaEnvio = DateTime.Today,
                                horaEnvio  = DateTime.Now,
                                volumenMuestraColectada = material != null ? material.volumen : 1,
                                OrdenExamen             = ordexmen,
                                Laboratorio             = laboratorio
                            });
                        }
                        List <OrdenDatoClinico> ordenDatoClinicoList = new List <OrdenDatoClinico>();
                        var datoClinicoBl     = new DatoClinicoBl();
                        var categoriaDatoList = datoClinicoBl.GetCategoriaByEnfermedad(idEnfermedad, 1, idExamen.ToString());
                        var oEnfermedad       = new Enfermedad();
                        oEnfermedad.idEnfermedad      = idEnfermedad;
                        oEnfermedad.categoriaDatoList = categoriaDatoList;
                        enfermedadListAgregados.Add(oEnfermedad);
                        {
                            var datosClinicos =
                                enfermedadListAgregados.SelectMany(e => e.categoriaDatoList)
                                .SelectMany(c => c.OrdenDatoClinicoList);
                            foreach (var ordenDatoClinico in datosClinicos)
                            {
                                var id = ordenDatoClinico.Enfermedad.idEnfermedad.ToString() +
                                         ordenDatoClinico.Dato.IdDato.ToString();

                                OrdenDatoClinico ordenDatoClinicoFormulario =
                                    ordenDatoClinicoList.FirstOrDefault(x => x.Dato.IdDato == ordenDatoClinico.Dato.IdDato);

                                //Si el dato clinico existe previamente en el formulario entonces se copia los valores del existente
                                if (ordenDatoClinicoFormulario != null)
                                {
                                    ordenDatoClinico.noPrecisa   = ordenDatoClinicoFormulario.noPrecisa;
                                    ordenDatoClinico.ValorString = ordenDatoClinicoFormulario.ValorString;
                                }
                                else
                                {
                                    //Si el dato clinico no existe se crea con los valores obtenidos
                                    ordenDatoClinicoFormulario = new OrdenDatoClinico();
                                    Dato datoClinico = new Dato();
                                    datoClinico.IdDato = ordenDatoClinico.Dato.IdDato;
                                    ordenDatoClinicoFormulario.Dato = datoClinico;
                                    ordenDatoClinicoList.Add(ordenDatoClinicoFormulario);


                                    var    formValue             = Request.Form["valueDato" + id];
                                    string checknoprecisa        = Request.Form["checkNoPrecisa" + id];
                                    var    checkNoPrecisaBoolean = !string.IsNullOrEmpty(checknoprecisa) && (checknoprecisa.ToLower() == "on" || checknoprecisa.ToLower() == "true");

                                    if ((int)Enums.TipoCampo.CHECKBOX == ordenDatoClinico.Dato.IdTipo ||
                                        (int)Enums.TipoCampo.COMBO == ordenDatoClinico.Dato.IdTipo)
                                    {
                                        ordenDatoClinico.noPrecisa   = formValue == null || formValue.Equals("0");
                                        ordenDatoClinico.ValorString = formValue == null || formValue.Equals("0")
                                            ? ""
                                            : formValue;
                                    }
                                    else
                                    {
                                        ordenDatoClinico.noPrecisa   = checkNoPrecisaBoolean;
                                        ordenDatoClinico.ValorString = !checkNoPrecisaBoolean ? formValue : string.Empty;
                                    }
                                    ordenDatoClinicoFormulario.noPrecisa   = ordenDatoClinico.noPrecisa;
                                    ordenDatoClinicoFormulario.ValorString = ordenDatoClinico.ValorString;
                                }
                            }
                        }
                        orden.enfermedadList = enfermedadListAgregados;
                        oOrden.InsertOrdenCovid(orden, Enums.TipoRegistroOrden.ORDEN_RECEPCION);
                    }
                }
            }

            return(orden);
        }
Esempio n. 9
0
        public string PreSaveOrden()
        {
            var orden        = new Orden();
            var ordenBl      = new OrdenBl();
            int idEnfermedad = int.Parse(GetSetting <string>("EnfVirusRespiratorio"));

            string fechaObtencion     = Request.Form["fechaObtencion"];
            string idExamen           = GetSetting <string>("Covid19");
            string idTipoMuestra      = Request.Form["TipoMuestraCovid"];
            string nroCelularPaciente = Request.Form["nroCelularPaciente"];
            Guid   idPaciente         = Guid.Parse(Request.Form["GuidIdPaciente"].ToString());

            orden.idOrden = Guid.Parse(Request.Form["idOrden"].ToString());


            List <OrdenDatoClinico> ordenDatoClinicoList = new List <OrdenDatoClinico>();
            var datoClinicoBl     = new DatoClinicoBl();
            var categoriaDatoList = datoClinicoBl.GetCategoriaByEnfermedad(idEnfermedad, 1, idExamen);
            var oEnfermedad       = new Enfermedad();

            oEnfermedad.idEnfermedad      = idEnfermedad;
            oEnfermedad.categoriaDatoList = categoriaDatoList;
            List <Enfermedad> enfermedadListAgregados = new List <Enfermedad>();

            enfermedadListAgregados.Add(oEnfermedad);
            {
                var datosClinicos =
                    enfermedadListAgregados.SelectMany(e => e.categoriaDatoList)
                    .SelectMany(c => c.OrdenDatoClinicoList);
                foreach (var ordenDatoClinico in datosClinicos)
                {
                    var id = ordenDatoClinico.Enfermedad.idEnfermedad.ToString() +
                             ordenDatoClinico.Dato.IdDato.ToString();

                    OrdenDatoClinico ordenDatoClinicoFormulario =
                        ordenDatoClinicoList.FirstOrDefault(x => x.Dato.IdDato == ordenDatoClinico.Dato.IdDato);

                    //Si el dato clinico existe previamente en el formulario entonces se copia los valores del existente
                    if (ordenDatoClinicoFormulario != null)
                    {
                        ordenDatoClinico.noPrecisa   = ordenDatoClinicoFormulario.noPrecisa;
                        ordenDatoClinico.ValorString = ordenDatoClinicoFormulario.ValorString;
                    }
                    else
                    {
                        //Si el dato clinico no existe se crea con los valores obtenidos
                        ordenDatoClinicoFormulario = new OrdenDatoClinico();
                        Dato datoClinico = new Dato();
                        datoClinico.IdDato = ordenDatoClinico.Dato.IdDato;
                        ordenDatoClinicoFormulario.Dato = datoClinico;
                        ordenDatoClinicoList.Add(ordenDatoClinicoFormulario);


                        var    formValue             = Request.Form["valueDato" + id];
                        string checknoprecisa        = Request.Form["checkNoPrecisa" + id];
                        var    checkNoPrecisaBoolean = !string.IsNullOrEmpty(checknoprecisa) && (checknoprecisa.ToLower() == "on" || checknoprecisa.ToLower() == "true");

                        if ((int)Enums.TipoCampo.CHECKBOX == ordenDatoClinico.Dato.IdTipo ||
                            (int)Enums.TipoCampo.COMBO == ordenDatoClinico.Dato.IdTipo)
                        {
                            ordenDatoClinico.noPrecisa   = formValue == null || formValue.Equals("0");
                            ordenDatoClinico.ValorString = formValue == null || formValue.Equals("0")
                                ? ""
                                : formValue;
                        }
                        else
                        {
                            ordenDatoClinico.noPrecisa   = checkNoPrecisaBoolean;
                            ordenDatoClinico.ValorString = !checkNoPrecisaBoolean ? formValue : string.Empty;
                        }
                        ordenDatoClinicoFormulario.noPrecisa   = ordenDatoClinico.noPrecisa;
                        ordenDatoClinicoFormulario.ValorString = ordenDatoClinico.ValorString;
                    }
                }
            }
            orden.enfermedadList    = enfermedadListAgregados;
            orden.IdUsuarioRegistro = Logueado.idUsuario;
            orden.ordenMuestraList  = new List <OrdenMuestra>();
            orden.ordenExamenList   = new List <OrdenExamen>();
            var oOrdenMuestra         = new OrdenMuestra();
            var oOrdenExamen          = new OrdenExamen();
            var oMuestraCodificacion  = new MuestraCodificacion();
            var codigoOrdenGenerado   = string.Empty;
            int EstablecimientoOrigen = string.IsNullOrEmpty(Request.Form["EESSOrigen"].ToString()) ? 0 : int.Parse(Request.Form["EESSOrigen"]);
            int hddDatoEESSOrigenEdit = string.IsNullOrEmpty(Request.Form["hddDatoEESSOrigenEdit"].ToString()) ? 0 : int.Parse(Request.Form["hddDatoEESSOrigenEdit"]);

            //OrdenMuestra
            oOrdenMuestra.TipoMuestra = new TipoMuestra {
                idTipoMuestra = int.Parse(idTipoMuestra)
            };
            oOrdenMuestra.fechaColeccion = DateTime.Parse(fechaObtencion);
            oOrdenMuestra.horaColeccion  = DateTime.Now;
            oOrdenMuestra.idProyecto     = 1;
            orden.idEstablecimiento      = EstablecimientoOrigen;
            orden.editarEstablecimiento  = "N";
            if (EstablecimientoOrigen != hddDatoEESSOrigenEdit)
            {
                //Orden
                orden.editarEstablecimiento = "S";
                orden.codigoOrden           = ordenBl.GenerarCodigoOrden(hddDatoEESSOrigenEdit);
                orden.idEstablecimiento     = hddDatoEESSOrigenEdit;
                //OrdenMuestra
                oMuestraCodificacion = new MuestraBl().GeneraCodigosMuestraKobo(hddDatoEESSOrigenEdit, Logueado.idUsuario, 1);
                oOrdenMuestra.MuestraCodificacion = oMuestraCodificacion;
            }
            orden.ordenMuestraList.Add(oOrdenMuestra);

            orden.Paciente = new Paciente {
                IdPaciente = idPaciente, Celular1 = nroCelularPaciente
            };

            var Res = "Registro Exitoso.";

            try
            {
                ordenBl.UpdateOrdenCovid(orden);
            }
            catch (Exception ex)
            {
                Res = ex.Message;
            }
            return(Res);
        }
Esempio n. 10
0
        public string PreRegistroAntiguo(string TipoDocumento, string nroDocumento, string EstablecimientoOrigen, string EstablecimientoEnvio, string FechaObtencion, string solicitante, string fechaIngresoINS)
        {
            //Cargar objetos
            int    idEnfermedad     = int.Parse(GetSetting <string>("EnfVirusRespiratorio")); //1005680;
            string idExamen         = GetSetting <string>("Covid19");                         //Guid.Parse("1B2BEC28-772C-49DF-BCC2-85E0C5CCA667");
            string idExamenAgrupado = GetSetting <string>("idExamenAgrupado");

            TempModel.TempOrden tempOrden = null;
            var pacienteBl = new PacienteBl();
            var paciente   = new Paciente();
            var res        = Guid.Empty;

            paciente.TipoDocumento = int.Parse(TipoDocumento);
            paciente.NroDocumento  = nroDocumento;
            List <Paciente> pacienteList = pacienteBl.getPacientes2(1, 10, paciente.TipoDocumento.Value, paciente.NroDocumento);

            if (pacienteList.Any())
            {
                paciente  = pacienteList.FirstOrDefault();
                tempOrden = new TempModel.TempOrden
                {
                    IdProyecto  = 1,
                    IdPaciente  = paciente.IdPaciente,
                    estatus     = 0,
                    estado      = 1,
                    observacion = "REGISTRO RAPIDO COVID19",
                    idUsuario   = Logueado.idUsuario//cambioj
                };
                //Datos Clinicos
                List <OrdenDatoClinico> ordenDatoClinicoList = new List <OrdenDatoClinico>();
                var datoClinicoBl     = new DatoClinicoBl();
                var categoriaDatoList = datoClinicoBl.GetCategoriaByEnfermedad(idEnfermedad, 1, idExamen);
                var oEnfermedad       = new Enfermedad();
                oEnfermedad.idEnfermedad      = idEnfermedad;
                oEnfermedad.categoriaDatoList = categoriaDatoList;
                List <Enfermedad> enfermedadListAgregados = new List <Enfermedad>();
                enfermedadListAgregados.Add(oEnfermedad);
                {
                    var datosClinicos =
                        enfermedadListAgregados.SelectMany(e => e.categoriaDatoList)
                        .SelectMany(c => c.OrdenDatoClinicoList);
                    foreach (var ordenDatoClinico in datosClinicos)
                    {
                        var id = ordenDatoClinico.Enfermedad.idEnfermedad.ToString() +
                                 ordenDatoClinico.Dato.IdDato.ToString();

                        OrdenDatoClinico ordenDatoClinicoFormulario =
                            ordenDatoClinicoList.FirstOrDefault(x => x.Dato.IdDato == ordenDatoClinico.Dato.IdDato);

                        //Si el dato clinico existe previamente en el formulario entonces se copia los valores del existente
                        if (ordenDatoClinicoFormulario != null)
                        {
                            ordenDatoClinico.noPrecisa   = ordenDatoClinicoFormulario.noPrecisa;
                            ordenDatoClinico.ValorString = ordenDatoClinicoFormulario.ValorString;
                        }
                        else
                        {
                            //Si el dato clinico no existe se crea con los valores obtenidos
                            ordenDatoClinicoFormulario = new OrdenDatoClinico();
                            Dato datoClinico = new Dato();
                            datoClinico.IdDato = ordenDatoClinico.Dato.IdDato;
                            ordenDatoClinicoFormulario.Dato = datoClinico;
                            ordenDatoClinicoList.Add(ordenDatoClinicoFormulario);


                            var    formValue             = Request.Form["valueDato" + id];
                            string checknoprecisa        = Request.Form["checkNoPrecisa" + id];
                            var    checkNoPrecisaBoolean = !string.IsNullOrEmpty(checknoprecisa) && (checknoprecisa.ToLower() == "on" || checknoprecisa.ToLower() == "true");

                            if ((int)Enums.TipoCampo.CHECKBOX == ordenDatoClinico.Dato.IdTipo ||
                                (int)Enums.TipoCampo.COMBO == ordenDatoClinico.Dato.IdTipo)
                            {
                                ordenDatoClinico.noPrecisa   = formValue == null || formValue.Equals("0");
                                ordenDatoClinico.ValorString = formValue == null || formValue.Equals("0")
                                    ? ""
                                    : formValue;
                            }
                            else
                            {
                                ordenDatoClinico.noPrecisa   = checkNoPrecisaBoolean;
                                ordenDatoClinico.ValorString = !checkNoPrecisaBoolean ? formValue : string.Empty;
                            }
                            ordenDatoClinicoFormulario.noPrecisa   = ordenDatoClinico.noPrecisa;
                            ordenDatoClinicoFormulario.ValorString = ordenDatoClinico.ValorString;
                        }
                    }
                }
                tempOrden.enfermedadList = enfermedadListAgregados;
                //Insert orden
                var tempOrdenBl = new TempOrdenBl();
                res = tempOrdenBl.InsertTempOrden(tempOrden);
                //Insert TempDatoClinico
                tempOrdenBl.InsertTempOrdenDatoClinico(tempOrden);
            }
            return(res.ToString());
        }