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); }
/// <summary> /// Descripción: Registra la informacion y libera la memoria de trabajo. /// Author: Terceros. /// Fecha Creacion: 01/01/2017. /// Fecha Modificación: 02/02/2017. /// Modificación: Se agregaron comentarios, funcion no utilizada. /// </summary> /// <param name="idProyecto"></param> /// <param name="cmbEstablecimiento"></param> /// <param name="cmbEstablecimientoFrecuente"></param> /// <param name="observacion"></param> /// <param name="nroOficio"></param> /// <param name="muestraCodigoExterno"></param> /// <param name="muestraFecha"></param> /// <param name="muestraHora"></param> /// <param name="muestraMaterial"></param> /// <param name="paso"></param> /// <returns></returns> public ActionResult Guardar(String idProyecto, String cmbEstablecimiento, String cmbEstablecimientoFrecuente, String observacion, String nroOficio, String[] muestraCodigoExterno, String[] muestraFecha, String[] muestraHora, String[] muestraMaterial, String paso) { Orden orden = new Orden(); if (paso == "2") { orden = (Orden)this.Session["OrdenBS"]; } //orden.idEnfermedad = cmbEnfermedad; orden.idProyecto = int.Parse(idProyecto); orden.observacion = observacion; orden.nroOficio = nroOficio; //Obtenemos la lista de examenes List <TipoMuestra> examenListAgregados = new List <TipoMuestra>(); if (this.Session["ExamenListAgregados"] != null) { examenListAgregados = (List <TipoMuestra>) this.Session["ExamenListAgregados"]; } //Se construye la orden orden.ordenExamenList = new List <OrdenExamen>(); OrdenExamen ordenExamen = new OrdenExamen(); foreach (TipoMuestra tipoMuestra in examenListAgregados) { String[] examenArray = (String[])this.Session["examenesSeleccionados"]; ordenExamen = new OrdenExamen(); ordenExamen.idExamen = tipoMuestra.examen.idExamen; ordenExamen.idEnfermedad = tipoMuestra.enfermedad.idEnfermedad; ordenExamen.ordenMuestraList = new List <OrdenMuestra>(); orden.ordenExamenList.Add(ordenExamen); } if (paso == "1") { if (cmbEstablecimiento != "") { orden.idEstablecimiento = Convert.ToInt32(cmbEstablecimiento); } else { orden.idEstablecimiento = Convert.ToInt32(cmbEstablecimientoFrecuente); } orden.IdUsuarioRegistro = Logueado.idUsuario; if (orden.idEstablecimiento == EstablecimientoUsuario.IdEstablecimiento) { orden.establecimiento = EstablecimientoUsuario; } else { EstablecimientoBl establecimientBL = new EstablecimientoBl(); orden.establecimiento = establecimientBL.GetEstablecimientoById(orden.idEstablecimiento); } orden.UsuarioRegistro = Logueado; orden.FechaRegistro = DateTime.Now; this.Session["OrdenBS"] = orden; } List <Orden> ordenes = new List <Orden>(); if (paso == "2") { orden.IdUsuarioEdicion = Logueado.idUsuario; ordenes = (List <Orden>) this.Session["OrdenesBS"]; this.Session["OrdenBS"] = orden; } IOrdenBl ordenBl = new OrdenBl(); int i = 0; //orden.ordenCepaBancoSangre = new List<CepaBancoSangre>(); int countOrdenes = ordenes.Count; for (i = 0; i < muestraCodigoExterno.Length; i++) { Orden ordenT = new Orden(); ordenT.codigoOrden = ""; ordenT.idEstablecimiento = orden.idEstablecimiento; ordenT.establecimiento = orden.establecimiento; ordenT.IdUsuarioRegistro = Logueado.idUsuario; if (paso == "2") { if (i < countOrdenes) { ordenT = ordenes.ElementAt(i); } } CepaBancoSangre bs = new CepaBancoSangre(); bs.codificacion = muestraCodigoExterno[i]; bs.IdUsuarioRegistro = Logueado.idUsuario; bs.tipo = 1; bs.horaColeccion = DateTime.ParseExact(muestraFecha[i] + " " + muestraHora[i], "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); bs.fechaColeccion = DateTime.ParseExact(muestraFecha[i], "dd/MM/yyyy", CultureInfo.InvariantCulture); //bs.horaColeccion = new DateTime(); //bs.fechaColeccion = new DateTime(); bs.idMaterial = int.Parse(muestraMaterial[i]); ordenT.cepaBancoSangre = bs; ordenT.ordenExamenList = orden.ordenExamenList; ordenT.ordenMuestraList = new List <OrdenMuestra>(); OrdenMuestra ordenMuestra = new OrdenMuestra(); ordenMuestra.idProyecto = orden.idProyecto; ordenMuestra.Estado = 1; ordenMuestra.IdUsuarioRegistro = Logueado.idUsuario; ordenMuestra.fechaColeccion = bs.fechaColeccion; ordenMuestra.horaColeccion = bs.horaColeccion; ordenMuestra.TipoMuestra = new TipoMuestra(); ordenMuestra.TipoMuestra.idTipoMuestra = TipoMuestraSangreId; ordenT.ordenMuestraList.Add(ordenMuestra); ordenT.ordenMaterialList = new List <OrdenMaterial>(); OrdenMaterial ordenMaterial = new OrdenMaterial(); ordenMaterial.cantidad = 1; ordenMaterial.ordenMuestra.Establecimiento = new Establecimiento { IdEstablecimiento = orden.idEstablecimiento }; ordenMaterial.idProyecto = orden.idProyecto; ordenMaterial.idMaterial = bs.idMaterial; ordenMaterial.IdUsuarioRegistro = Logueado.idUsuario; ordenMaterial.Estado = 1; ordenT.ordenMaterialList.Add(ordenMaterial); ordenT.idProyecto = orden.idProyecto; ordenT.observacion = observacion; ordenT.nroOficio = nroOficio; if (paso == "1") { ordenBl.InsertOrdenBancoSangre(ordenT); ordenT.UsuarioRegistro = Logueado; ordenT.FechaRegistro = DateTime.Now; ordenes.Add(ordenT); } if (paso == "2") { if (i >= countOrdenes) { ordenes.Add(ordenT); } ordenT.IdUsuarioEdicion = Logueado.idUsuario; ordenBl.UpdateOrdenBancoSangre(ordenT); } } if (paso == "1") { this.Session["OrdenesBS"] = ordenes; return(RedirectToAction("Editar", "BancoSangre")); } if (paso == "2") { if (i < countOrdenes) { countOrdenes--; while (i <= countOrdenes) { //Eliminar orden o cambiar estado ordenBl.DeleteOrden(ordenes.ElementAt(i).idOrden); ordenes.RemoveAt(countOrdenes); countOrdenes--; } } this.Session["OrdenesBS"] = ordenes; return(RedirectToAction("Ver", "BancoSangre")); } //Agregar Orden Registrada correctamente por Nombre Usuario en el resultado return(RedirectToAction("Ver", "BancoSangre")); }