Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
b7e6822
nuevo req, se agrega el tipo de autenticacion
vrimada Jan 21, 2026
31f34ab
(Lab-195) Requerimientos Derivaciones (#61)
vrimada Feb 3, 2026
2713bec
Mantenimiento Enero 2026 (#69)
caroPintos Feb 3, 2026
c2ee7ad
fix: habilitar cambiar tipo de autenticacion y ampliar el ancho de li…
vrimada Feb 4, 2026
2baada5
---hablar con caro por este cambio
vrimada Feb 4, 2026
a0078d9
fix: pendiente de revision proceso de alta de usuario
vrimada Feb 5, 2026
10e2de7
Delete Tests-Cypress/cypress/fixtures/local.env.json
vrimada Feb 5, 2026
3abd60e
(LAB-107) Correccion de bug "Se borran los analisis del protocolo/tur…
vrimada Feb 19, 2026
ca94eef
Mantenimientoprotocolosy turnos (#72)
caroPintos Feb 19, 2026
41eada8
(LAB-215) BUG Cambio de paciente (#71)
vrimada Feb 26, 2026
dd9a429
(LAB-118)fix: Correcion de bug para llenar el formulario de los resul…
vrimada Feb 26, 2026
0ed608c
fix: cartel de error para combinacion onelogin y externo
vrimada Feb 26, 2026
538bc73
Merge branch 'LAB-205' of https://github.com/andes/SIL2 into LAB-205
vrimada Feb 26, 2026
2506633
fix: formato msj error y linea repetida
vrimada Feb 27, 2026
8d9ae9c
ejemplos de uso de libreria select2
vrimada Feb 27, 2026
91864ff
Revert "ejemplos de uso de libreria select2"
vrimada Feb 27, 2026
6d4370c
(LAB-216)Error: Prompt de médicos en gestión de turnos desde Centro d…
vrimada Mar 3, 2026
99825be
cambios en proceso
vrimada Mar 10, 2026
d2042b5
feature: busqueda para lista de usuarios
vrimada Mar 11, 2026
929038b
visualizacion con grilla
vrimada Mar 11, 2026
6308203
fix: para todos los perfiles que no son "Administrativo Externo " que…
vrimada Mar 11, 2026
76f823c
lista de usuarios: check de solo admins
vrimada Mar 13, 2026
2fafbac
fix: libreria chosen compatible con controladores anthem
vrimada Mar 13, 2026
82a3fa8
fix: en load que valide si hay sesion
vrimada Mar 15, 2026
c17c96b
Mantenimiento Marzo 1 (#75)
caroPintos Mar 17, 2026
9ccbe0c
nuevo req, se agrega el tipo de autenticacion
vrimada Jan 21, 2026
6ba61ee
fix: habilitar cambiar tipo de autenticacion y ampliar el ancho de li…
vrimada Feb 4, 2026
f30b556
---hablar con caro por este cambio
vrimada Feb 4, 2026
b79b013
fix: pendiente de revision proceso de alta de usuario
vrimada Feb 5, 2026
e39efc4
fix: cartel de error para combinacion onelogin y externo
vrimada Feb 26, 2026
73fdbd6
Delete Tests-Cypress/cypress/fixtures/local.env.json
vrimada Feb 5, 2026
86ca210
fix: formato msj error y linea repetida
vrimada Feb 27, 2026
e152305
ejemplos de uso de libreria select2
vrimada Feb 27, 2026
f9a7300
Revert "ejemplos de uso de libreria select2"
vrimada Feb 27, 2026
73c381b
cambios en proceso
vrimada Mar 10, 2026
a3ee056
feature: busqueda para lista de usuarios
vrimada Mar 11, 2026
628990d
visualizacion con grilla
vrimada Mar 11, 2026
fe4f0d6
fix: para todos los perfiles que no son "Administrativo Externo " que…
vrimada Mar 11, 2026
7713e20
lista de usuarios: check de solo admins
vrimada Mar 13, 2026
77c6494
fix: libreria chosen compatible con controladores anthem
vrimada Mar 13, 2026
5bc87ea
fusion en merge
vrimada Mar 17, 2026
98830f1
correcion luego de las correciones de conflictos
vrimada Mar 17, 2026
9702db4
auditorias
vrimada Mar 17, 2026
837c6e1
auditoria y guardar efector en modificacion
vrimada Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions Business/BaseDataAccess.cs
Original file line number Diff line number Diff line change
Expand Up @@ -297,11 +297,29 @@ public object Get(Type type, object id)
}
}

public object Get(object id)
public object Get(object id)
{
return this.Get(this.GetType(), id);
}



public object GetIfExists(Type type, object id)
{
return this.Get(this.GetType(),id);
}
object returnValue = null;

try
{
returnValue = m_session.Get(type, id);

return returnValue;
}
catch (Exception ex)
{
//TODO: disciminar en caso q la excepcion sea del tipo id inexistente.
throw ex;
}
}
public IList GetListByPropertyValue(Type type, string propertyName, object propertyValue)
{
try
Expand Down
80 changes: 40 additions & 40 deletions Business/Data/Laboratorio/Derivacion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -267,46 +267,46 @@ public int IdMotivoCancelacion {
}
#endregion

public static List<Derivacion> DerivacionesByLote(int idLote) {
List<Derivacion> derivaciones = new List<Derivacion>();
try {
ISession session = NHibernateHttpModule.CurrentSession;
IList lista = session.CreateQuery("from Derivacion where idLote="+idLote).List();

foreach (Derivacion item in lista) {
derivaciones.Add(item);
}
} catch (Exception) {

}
return derivaciones;
}

public void MarcarComoRecibidas(Protocolo oAnterior, Protocolo oNuevo, Usuario oUser, int idLoteDerivacion)
{
string query =
@"update LAB_Derivacion
set estado=3---recibido
,idProtocoloDerivacion=" + oNuevo.IdProtocolo.ToString() + @"
from LAB_Derivacion D
inner join LAB_DetalleProtocolo Det on Det.idDetalleProtocolo= d.idDetalleProtocolo
where Det.idProtocolo=" + oAnterior.IdProtocolo.ToString() + " and idLote=" + idLoteDerivacion;
SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
SqlCommand cmd = new SqlCommand(query, conn);
int idRealizado = Convert.ToInt32(cmd.ExecuteScalar());

//Se indica en el protocolo de Origen que fue recibido en el destino
if (oAnterior != null)
{
if (idLoteDerivacion != 0)
oAnterior.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Lote " + idLoteDerivacion, "Protocolo " + oNuevo.Numero.ToString());
else
oAnterior.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Protocolo", oNuevo.Numero.ToString());
}
}

public string ObtenerItemsPendientes(string idLoteDerivacion, string idProtocolo)
//public static List<Derivacion> DerivacionesByLote(int idLote) {
// List<Derivacion> derivaciones = new List<Derivacion>();
// try {
// ISession session = NHibernateHttpModule.CurrentSession;
// IList lista = session.CreateQuery("from Derivacion where idLote="+idLote).List();

// foreach (Derivacion item in lista) {
// derivaciones.Add(item);
// }
// } catch (Exception) {

// }
// return derivaciones;
//}

//public void MarcarComoRecibidas(Protocolo oAnterior, Protocolo oNuevo, Usuario oUser, int idLoteDerivacion) //Se hace ahora en DetalleProtocolo.ActualizarItemsDerivados
// {
// string query =
// @"update LAB_Derivacion
// set estado=3---recibido
// ,idProtocoloDerivacion=" + oNuevo.IdProtocolo.ToString() + @"
// from LAB_Derivacion D
// inner join LAB_DetalleProtocolo Det on Det.idDetalleProtocolo= d.idDetalleProtocolo
// where Det.idProtocolo=" + oAnterior.IdProtocolo.ToString() + " and idLote=" + idLoteDerivacion;

// SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
// SqlCommand cmd = new SqlCommand(query, conn);
// int idRealizado = Convert.ToInt32(cmd.ExecuteScalar());

// //Se indica en el protocolo de Origen que fue recibido en el destino
// if (oAnterior != null)
// {
// if (idLoteDerivacion != 0)
// oAnterior.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Lote " + idLoteDerivacion, "Protocolo " + oNuevo.Numero.ToString());
// else
// oAnterior.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Protocolo", oNuevo.Numero.ToString());
// }
//}

public string ObtenerItemsPendientes(string idLoteDerivacion, string idProtocolo)
{
////// ---------------------->Buscar las derivaciones que no han sido ingresadas
//los protocolos detalles me dan las derivaciones
Expand Down
162 changes: 146 additions & 16 deletions Business/Data/Laboratorio/DetalleProtocolo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,35 @@ public int IdUsuarioPreValida

}

public void GuardarDisponible( )
{/// saca las marcas de validacion
//ItemEfector oItem = new ItemEfector();
//oItem = (ItemEfector)oItem.Get(typeof(ItemEfector), "IdItem", this.IdSubItem, "IdEfector", this.IdEfector);
//if (oItem != null) //Siempre tiene que haber
// if (oItem.IdEfectorDerivacion == this.IdEfector)
// {
// if (!oItem.SinInsumo)
// {
//resul = "Sin Insumo";

if (this.IdSubItem.IdTipoResultado != 2)///numerico o predefinido
{
this.Observaciones = "";
this.IdUsuarioValidaObservacion =0;
this.FechaValidaObservacion = DateTime.Parse("01/01/1900");
this.FechaValida = DateTime.Parse("01/01/1900");
}
if (this.IdSubItem.IdTipoResultado == 2)///texto
{
this.ResultadoCar = "";
this.IdUsuarioValida = 0; // oItem.IdUsuarioRegistro.IdUsuario;
this.FechaValida = DateTime.Parse("01/01/1900");
}
this.Save();
// }
//}

}
/// <summary>
///
/// </summary>
Expand Down Expand Up @@ -1330,36 +1359,68 @@ public bool esDerivado()
return sederiva;
}

public void GuardarSinInsumo()
public void GuardarSinInsumo(Usuario oUser)
{

//Llamado desde marca de sin insumo
string resul = "";
ItemEfector oItem = new ItemEfector();
oItem = (ItemEfector)oItem.Get(typeof(ItemEfector), "IdItem", this.IdSubItem, "IdEfector", this.IdEfector);
if (oItem != null) //Siempre tiene que haber
if (oItem.IdEfectorDerivacion == this.IdEfector)
{
if (oItem.SinInsumo)
{
//ItemEfector oItem = new ItemEfector();
//oItem = (ItemEfector)oItem.Get(typeof(ItemEfector), "IdItem", this.IdSubItem, "IdEfector", this.IdEfector);
//if (oItem != null) //Siempre tiene que haber
// if (oItem.IdEfectorDerivacion == this.IdEfector)
// {
// if (oItem.SinInsumo)
// {
resul = "Sin Insumo";

if (this.IdSubItem.IdTipoResultado != 2)///numerico o predefinido
{
this.Observaciones = resul;
this.IdUsuarioValidaObservacion = oItem.IdUsuarioRegistro.IdUsuario;
this.IdUsuarioValidaObservacion = oUser.IdUsuario;
this.FechaValidaObservacion = DateTime.Now;
this.FechaValida = DateTime.Now;
}
if (this.IdSubItem.IdTipoResultado == 2)///texto
{
this.ResultadoCar = resul;
this.IdUsuarioValida = oItem.IdUsuarioRegistro.IdUsuario;
this.FechaValida = DateTime.Now;
this.IdUsuarioValida = oUser.IdUsuario;
this.FechaValida = DateTime.Now;
}
this.Save();
// }
//}


}
public void GuardarSinInsumo( )
{//Llamado de guardado de protocolo

string resul = "";
ItemEfector oItem = new ItemEfector();
oItem = (ItemEfector)oItem.Get(typeof(ItemEfector), "IdItem", this.IdSubItem, "IdEfector", this.IdEfector);
if (oItem != null) //Siempre tiene que haber
if (oItem.IdEfectorDerivacion == this.IdEfector)
{
if (oItem.SinInsumo)
{
resul = "Sin Insumo";

if (this.IdSubItem.IdTipoResultado != 2)///numerico o predefinido
{
this.Observaciones = resul;
this.IdUsuarioValidaObservacion = oItem.IdUsuarioRegistro.IdUsuario;
this.FechaValidaObservacion = DateTime.Now;
this.FechaValida = DateTime.Now;
}
if (this.IdSubItem.IdTipoResultado == 2)///texto
{
this.ResultadoCar = resul;
this.IdUsuarioValida = oItem.IdUsuarioRegistro.IdUsuario;
this.FechaValida = DateTime.Now;
}
this.Save();
}
}


}

Expand Down Expand Up @@ -1449,11 +1510,80 @@ public void GuardarDerivacion(Usuario oUser)

oRegistro.Save();

// graba el resultado en ResultadCar "Derivado: " + oItem.GetEfectorDerivacion(oCon.IdEfector);
//oDetalle.ResultadoCar = "Pendiente de Derivacion";//"se podria poner a que efector....
//oDetalle.Save();
// graba el resultado en ResultadCar "Pendiente de derivar"
this.ResultadoCar = "Pendiente de derivar";
this.Save();
this.GrabarAuditoriaDetalleProtocolo("Graba Derivado", oUser.IdUsuario);
}
}

//public void ActualizoResultado(Protocolo oRegistro, Protocolo oAnterior, int idLoteDerivacion)
//{

//Se hace ahora en el metodo ActualizarItemsDerivados
//ResultadoCar: �Recibido en YYYY Protocolo Nro. XXXX�

//string query =
// " update LAB_DetalleProtocolo " +
// " set resultadoCar= 'Recibido en " + oRegistro.IdEfector.Nombre + " Protocolo Nro. " + oRegistro.Numero +
// "' from LAB_DetalleProtocolo Det " +
// " inner join LAB_Derivacion D on Det.idDetalleProtocolo = d.idDetalleProtocolo " +
// " where Det.idProtocolo=" + oAnterior.IdProtocolo.ToString() + " and idLote=" + idLoteDerivacion;


//// Pero que pasa en los casos que en el efector destino un analisis no se ingrese?
//// Tendriamos como recibido el analisis en el emisor pero en el receptor no estaria cargado

//SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
//SqlCommand cmd = new SqlCommand(query, conn);
//int idRealizado = Convert.ToInt32(cmd.ExecuteScalar());

//}

public void ActualizarItemsDerivados(Protocolo oRegistro, Protocolo oAnterior, int idLoteDerivacion, Usuario oUser)
{
// PREMISA: Cuales son los idDetalle del protocolo emisor que si se grabaron en el protocolo nuevo
string query =
@" SELECT dp_origen.idDetalleProtocolo
FROM LAB_DetalleProtocolo dp_origen
INNER JOIN LAB_Derivacion d on d.idDetalleProtocolo = dp_origen.idDetalleProtocolo
WHERE dp_origen.idProtocolo = " + oAnterior.IdProtocolo + " and idLote = " + idLoteDerivacion + @"
AND EXISTS (
SELECT 1
FROM LAB_DetalleProtocolo dp_dest
WHERE dp_dest.idProtocolo = " + oRegistro.IdProtocolo + @"
AND dp_dest.idItem = dp_origen.idItem
); ";

SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
DataSet Ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(query, conn);
adapter.Fill(Ds);
DataTable dt = Ds.Tables[0];

foreach (DataRow item in dt.Rows)
{
int idDetalleProtocolo = int.Parse(item[0].ToString());

DetalleProtocolo dp = new DetalleProtocolo();
dp = (DetalleProtocolo)dp.Get(typeof(DetalleProtocolo), "IdDetalleProtocolo", idDetalleProtocolo);
dp.ResultadoCar = "Recibido en " + oRegistro.IdEfector.Nombre + " Protocolo Nro. " + oRegistro.Numero;
dp.Save();

Derivacion de = new Derivacion();
de = (Derivacion)de.Get(typeof(Derivacion), "IdDetalleProtocolo", dp);
de.Estado = 3;
de.IdProtocoloDerivacion = oAnterior.IdProtocolo;
de.Save();
}

//Se indica en el protocolo de Origen que fue recibido en el destino
if (oAnterior != null)
{
oAnterior.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Lote " + idLoteDerivacion, "Protocolo " + oRegistro.Numero.ToString());

}
}
}
}
Loading