/// <summary> /// Descripción: Registra los recepcion de la muestra en Labortorio /// Estado = 5 /// Author: Terceros. /// Fecha Creacion: 01/01/2017 /// Fecha Modificación: 02/02/2017. /// Modificación: Se agregaron comentarios. /// </summary> /// <param name="idOrdenMuestraRecepcion"></param> /// <param name="idUsuario"></param> public string ActualizaOrdenMuestraRecepcionLAB(List <MuestraResultadoVd> oLstMuestraRecepcion) { var result = "Ok"; using (var ordenMuestraDal = new OrdenMuestraDal()) { ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { foreach (var item in oLstMuestraRecepcion) { ordenMuestraDal.UpdateOrdenMuestraRecepcionLAB(item.idOrdenMuestraRecepcion, item.idUsuario, item.secuenObtencion); } ordenMuestraDal.Commit(); } catch (SqlException sqlex) { ordenMuestraDal.Rollback(); result = sqlex.Message; } catch (Exception ex) { ordenMuestraDal.Rollback(); result = ex.Message; } } return(result); }
/// <summary> /// Descripción: Controlador para la actualizar la orden y generar la Recepcion de Muestra /// Author: SOTERO BUSTAMANTE. /// Fecha Creacion: 26/11/2017 /// Fecha Modificación: 26/11/2017. /// Modificación: Se agregaron comentarios. /// </summary> /// <param name="datos"></param> public bool RecepcionarMuestrasMasivo(string datos, int idUsuario) { bool strOk = false; var ordenMuestraDal = new OrdenMuestraDal(); ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { ordenMuestraDal.RecepcionarMuestrasMasivo(datos, idUsuario); ordenMuestraDal.Commit(); strOk = true; } catch (Exception ex) { var mensaje = ex.Message; ordenMuestraDal.Rollback(); } return(strOk); }
public void RegistrarLevantarObservacion(string hddRECHAZOFECHAINGRESOROM, string hddRECHAZOPACIENTE, string hddRECHAZODATOCLINICO, string hddRECHAZOCODIFICACION, string hddRECHAZOFECHAEVALFICHA, string hddRECHAZOFECHASOL, string hddRECHAZOFECHAOBTENCIONMUESTRA, string hddRECHAZOSOLICITANTE, string hddRECHAZONROOFICIO, Orden orden) { var bFechaRom = Convert.ToBoolean(hddRECHAZOFECHAINGRESOROM); var bPaciente = Convert.ToBoolean(hddRECHAZOPACIENTE); var bDatoClinico = Convert.ToBoolean(hddRECHAZODATOCLINICO); var bFechaEval = Convert.ToBoolean(hddRECHAZOFECHAEVALFICHA); var bFechaSol = Convert.ToBoolean(hddRECHAZOFECHASOL); var bFechaObtencion = Convert.ToBoolean(hddRECHAZOFECHAOBTENCIONMUESTRA); var bSolicitante = Convert.ToBoolean(hddRECHAZOSOLICITANTE); var bNroOficio = Convert.ToBoolean(hddRECHAZONROOFICIO); List <int> ListaRechazos = new List <int>(); if (bFechaRom) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAINGRESOROM); } if (bPaciente) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOPACIENTE); } if (bDatoClinico) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZODATOCLINICO); } if (bFechaEval) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAEVALFICHA); } if (bFechaSol) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHASOL); } if (bFechaObtencion) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOFECHAOBTENCIONMUESTRA); } if (bSolicitante) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZOSOLICITANTE); } if (bNroOficio) { ListaRechazos.Add((int)Enums.TipoRechazoAlta.RECHAZONROOFICIO); } using (var ordenMuestraDal = new OrdenMuestraDal()) { ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { if (bFechaRom || bPaciente || bFechaEval || bFechaSol || bSolicitante || bNroOficio) { ordenMuestraDal.UpdateOrdenRechazo(orden); //Error de fecha!!!!!! } if (bDatoClinico) { foreach (var enfermedad in orden.enfermedadList) { foreach (var ordenDatoClinico in enfermedad.categoriaDatoList.Where( categoriaDato => categoriaDato.OrdenDatoClinicoList != null && categoriaDato.OrdenDatoClinicoList.Count != 0).SelectMany( categoriaDato => categoriaDato.OrdenDatoClinicoList)) { ordenDatoClinico.idOrden = orden.idOrden; ordenDatoClinico.IdUsuarioEdicion = orden.IdUsuarioEdicion; ordenDatoClinico.estatus = orden.estatus; ordenDatoClinico.Enfermedad = new Enfermedad { idEnfermedad = enfermedad.idEnfermedad }; ordenMuestraDal.InsertOrdenDatoClinicoRechazo(ordenDatoClinico); } } } if (bFechaObtencion) { ordenMuestraDal.UpdateOrdenMuestraRechazo(orden); } foreach (var item in ListaRechazos) { ordenMuestraDal.UpdateOrdenMuestraResultadoRechazo(orden, item); } ordenMuestraDal.Commit(); } catch (Exception ex) { ordenMuestraDal.Rollback(); //ValidateOrderStateOnException(ex); } } }
public string OrdenMuestraProcesoRom(OrdenMuestraRom xOrdenMuestraRom, Guid id, int idusuario, int IdEstablecimiento) { string Respuesta = ""; var totalMuestrasValidasR = 0; var totalMuestrasInvalidasR = 0; var totalMuestrasRecepcionadas = 0; var totalMuestras = 0; using (var ordenMuestraDal = new OrdenMuestraDal()) { ordenMuestraDal.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); try { //Referenciar muestras if (xOrdenMuestraRom.listaOrdenesMuestra.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(1, xOrdenMuestraRom.listaOrdenesMuestra); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { ordenMuestraDal.ReferenciarMuestras(xOrdenMuestraRom.listaOrdenesMuestra, idusuario); } } //Crear y Referenciar muestras if (xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { ordenMuestraDal.RegistrarMuestras(xOrdenMuestraRom.listaOrdenesMuestraCrearReferenciar, id, idusuario); } } //Derivar muestras juan muga //revisar si se puede colocar mas abajo, donde se valida la variable lstNewGuid var lstNewGuid = new List <OrdenMuestraRecepcion>(); if (xOrdenMuestraRom.listaOrdenesDerivarMuestra.Count > 0) { totalMuestrasInvalidasR = ValidaExamenes(2, xOrdenMuestraRom.listaOrdenesDerivarMuestra); if (totalMuestrasInvalidasR > 0) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } else { lstNewGuid = ordenMuestraDal.DerivarReferenciaMuestras(xOrdenMuestraRom.listaOrdenesDerivarMuestra, idusuario); } } //Recepcion de Muestras if (xOrdenMuestraRom.listaOrdenesMuestraRecepcionar.Count > 0) { //Obtener Lista de Examenes válidos por el laboratorio seleccionado var laboratorioExamenBl = new LaboratorioExamenBl(); var TipoMuestraExamenBl = new ExamenTipoMuestraBl();//juanmuga var listaExamenesValidos = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento); if (listaExamenesValidos != null) { foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraRecepcionar) { var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen); //juan muga var examenValido = listaExamenesValidos.FindAll(p => p.IdExamen == itemR.idExamen); var tipomuestraValido = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra); //juan muga //if (examenValido.Any()) if (examenValido.Any() && tipomuestraValido.Any())//juanmuga { xOrdenMuestraRom.listaParaReferenciarCrear.Add(itemR); totalMuestrasValidasR = totalMuestrasValidasR + 1; } else { totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1; ExamenError = ExamenError + ", " + new ExamenBl().GetExamenById(itemR.idExamen).nombre; } } } //Existe muestras a rececepcionar válidas if (xOrdenMuestraRom.listaParaReferenciarCrear.Any()) { totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaReferenciarCrear.Count; //derivar: cambio de guid = idordenmuestrarecpcionar juan muga var listaParaDerivar = new List <OrdenMuestraRecepcion>(); foreach (var item in xOrdenMuestraRom.listaParaReferenciarCrear) { foreach (var itemD in lstNewGuid) { if (item.idOrdenMuestraRecepcion == itemD.idOrdenMuestraRecepcion) { item.idOrdenMuestraRecepcion = itemD.NewidOrdenMuestraRecepcion; listaParaDerivar.Add(item); } } } if (listaParaDerivar.Count > 0) { ordenMuestraDal.RecepcionarMuestras(listaParaDerivar, id, 1, idusuario); } if (xOrdenMuestraRom.listaParaReferenciarCrear.Count > 0) { ordenMuestraDal.RecepcionarMuestras(xOrdenMuestraRom.listaParaReferenciarCrear, id, 1, idusuario); } } } //Crear y Referenciar muestras //if (listaOrdenesMuestraCrearReferenciar.Count > 0) //{ // ordenMuestraBl.RegistrarMuestras(listaOrdenesMuestraCrearReferenciar, Guid.Parse(id), Logueado.idUsuario); //} //Crear y Recepcionar Muestras if (xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar.Count > 0) { //Obtener Lista de Examenes válidos por el laboratorio seleccionado var laboratorioExamenBl = new LaboratorioExamenBl(); var TipoMuestraExamenBl = new ExamenTipoMuestraBl(); var listaExamenesValidosTmp = laboratorioExamenBl.GetExamenesByLaboratorio(IdEstablecimiento); if (listaExamenesValidosTmp != null) { foreach (var itemR in xOrdenMuestraRom.listaOrdenesMuestraCrearRecepcionar) { var listaTipoMuestraValidosTmp = TipoMuestraExamenBl.GetTipoMuestraByExamen(itemR.idExamen); var tipomuestraValido = listaTipoMuestraValidosTmp.FindAll(p => p.IdTipoMuestra == itemR.idTipoMuestra);//juanmuga var examenValido = listaExamenesValidosTmp.FindAll(p => p.IdExamen == itemR.idExamen); if (examenValido.Any() && tipomuestraValido.Any())//juan muga { xOrdenMuestraRom.listaParaRecepcionarCrear.Add(itemR); totalMuestrasValidasR = totalMuestrasValidasR + 1; } else { itemR.fechaEnvio = null; itemR.horaEnvio = null; itemR.fechaRecepcion = null; itemR.horaRecepcion = null; xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Add(itemR); totalMuestrasInvalidasR = totalMuestrasInvalidasR + 1; } } } //Crear y Recepcionar Muestras if (xOrdenMuestraRom.listaParaRecepcionarCrear.Any()) { totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrear.Count; ordenMuestraDal.RegistrarMuestrasConRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrear, id, idusuario); } //Crear Muestras - NO RECEPCIONA if (!xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Any()) { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError + "_ "); } totalMuestrasRecepcionadas = xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion.Count; ordenMuestraDal.RegistrarMuestrasSinRecepcion(xOrdenMuestraRom.listaParaRecepcionarCrearSinRecepcion, id, idusuario); } if (totalMuestrasInvalidasR == 0) { ordenMuestraDal.Commit(); } else { ordenMuestraDal.Rollback(); return(totalMuestrasInvalidasR + "_" + totalMuestrasRecepcionadas + "_" + totalMuestras + "_" + ExamenError); } } catch (Exception ex) { ordenMuestraDal.Rollback(); Respuesta = ex.Message; } } return(Respuesta); }