Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
3839e09
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
e6e307b
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
255ef8c
Merge branch 'LAB-164' of https://github.com/andes/SIL2 into LAB-164
vrimada Oct 15, 2025
bb37aeb
Requerimiento 2: Renombrar “Paciente/Producto”
vrimada Oct 16, 2025
20cab68
fix: quedo dos veces el mismo metodo Un_load (porque compilo y no dio…
vrimada Oct 16, 2025
b88fbbb
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
1231c48
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
9140609
Requerimiento 2: Renombrar “Paciente/Producto”
vrimada Oct 16, 2025
83390d3
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
6702dee
feature: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 16, 2025
c238d9c
feature; en proceso Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
ec3530e
merge de conflictos
vrimada Oct 17, 2025
b406014
feature: Requerimiento 3: Adaptar PDF
vrimada Oct 17, 2025
27836a1
(LAB-159) Agregar nuevo punto de menú “Lista de Lotes” (#46)
vrimada Oct 17, 2025
3409b5a
fix: no derivar lotes sin determinaciones
vrimada Oct 17, 2025
35ba54a
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
591f101
Requerimiento 2: Renombrar “Paciente/Producto”
vrimada Oct 16, 2025
e87db01
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
60ae327
feature: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 16, 2025
2fecdb1
feature; en proceso Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
669e6b3
feature: Requerimiento 3: Adaptar PDF
vrimada Oct 17, 2025
a5db86a
fix: no derivar lotes sin determinaciones
vrimada Oct 17, 2025
b965007
Merge branch 'LAB-164' of https://github.com/andes/SIL2 into LAB-164
vrimada Oct 20, 2025
09e4d3c
feature: se modifica el encabezado de la Derivacion para contemplar l…
vrimada Oct 21, 2025
c22d349
fix: a camelCase
vrimada Oct 21, 2025
20ca613
fix: se pasa el metodo ActualizaEstadoLote a LoteDerivacion
vrimada Oct 21, 2025
ddd42cf
fix: se implenta store para el listado. se agrega la verificacion de …
vrimada Oct 21, 2025
97b3f3e
Update pull_request_template.md (#36)
vrimada Oct 21, 2025
68f12f0
Mantenimiento Oct. 2025 (#49)
caroPintos Oct 21, 2025
7d65e14
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
cec7c48
Requerimiento 2: Renombrar “Paciente/Producto”
vrimada Oct 16, 2025
e6873e2
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
17e0a46
feature: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 16, 2025
3620688
feature; en proceso Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
5fd4319
feature: Requerimiento 3: Adaptar PDF
vrimada Oct 17, 2025
4b31565
fix: no derivar lotes sin determinaciones
vrimada Oct 17, 2025
0bd065e
feature: se modifica el encabezado de la Derivacion para contemplar l…
vrimada Oct 21, 2025
bae4eff
fix: a camelCase
vrimada Oct 21, 2025
501d972
fix: se pasa el metodo ActualizaEstadoLote a LoteDerivacion
vrimada Oct 21, 2025
5a3a6f6
fix: se implenta store para el listado. se agrega la verificacion de …
vrimada Oct 21, 2025
74d1751
merge con cambios de octubre de produccion
vrimada Oct 21, 2025
0bcaafd
fix: correciones luego de testeo
vrimada Oct 22, 2025
8cee0d8
fix: correcion de PR
vrimada Oct 24, 2025
dfc7a0b
Mantenimiento Labo Central (#52)
caroPintos Nov 3, 2025
bf20a84
fix: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 14, 2025
dfbd541
Requerimiento 2: Renombrar “Paciente/Producto”
vrimada Oct 16, 2025
a6a0065
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
0e45501
feature: Requerimiento 1: Cambiar a nomenclatura CamelCase
vrimada Oct 16, 2025
9aaa3ee
feature; en proceso Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
0c80aed
feature: Requerimiento 3: Adaptar PDF
vrimada Oct 17, 2025
d624e7a
fix: no derivar lotes sin determinaciones
vrimada Oct 17, 2025
9095da6
feature: se modifica el encabezado de la Derivacion para contemplar l…
vrimada Oct 21, 2025
bf95f80
fix: a camelCase
vrimada Oct 21, 2025
8b9f01e
fix: se pasa el metodo ActualizaEstadoLote a LoteDerivacion
vrimada Oct 21, 2025
a6d3eb3
fix: se implenta store para el listado. se agrega la verificacion de …
vrimada Oct 21, 2025
e21d960
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
1b03d2a
feature: Requerimiento 3: Adaptar PDF
vrimada Oct 17, 2025
b3dcb39
feature: Parte del Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
caa0261
feature; en proceso Requerimiento 4: Recepción de derivación
vrimada Oct 16, 2025
936cdae
feature: se modifica el encabezado de la Derivacion para contemplar l…
vrimada Oct 21, 2025
3e35a37
fix: se pasa el metodo ActualizaEstadoLote a LoteDerivacion
vrimada Oct 21, 2025
76af59c
fix: correciones luego de testeo
vrimada Oct 22, 2025
6f19d5b
fix: correcion de PR
vrimada Oct 24, 2025
697787c
fix: de tarea LAB-181
vrimada Nov 3, 2025
6fa6d1d
merge
vrimada Nov 3, 2025
91ba57f
fix: correcciones de conflictos
vrimada Nov 4, 2025
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
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ _____________________________________________
<!-- Indique el cambio en caso afirmativo, agradecemos si es en forma de comando en mongo además de una explicación -->
- [ ] Si
- [ ] No
- [ ] - [ ] No corresponde
- [ ] No corresponde


<!-- Agregar captura de pantalla, si fuera relevante -->
Expand Down
25 changes: 20 additions & 5 deletions Business/Data/Laboratorio/ConfiguracionCodigoBarra.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public sealed class ConfiguracionCodigoBarra: Business.BaseDataAccess
private bool m_protocoloorigen;
private bool m_protocolosector;
private bool m_protocolonumeroorigen;
private bool m_protocolotipomuestra;
private bool m_pacientenumerodocumento;
private bool m_pacienteapellido;
private bool m_pacientesexo;
Expand All @@ -46,6 +47,7 @@ public ConfiguracionCodigoBarra()
m_protocoloorigen = false;
m_protocolosector = false;
m_protocolonumeroorigen = false;
m_protocolotipomuestra = false;
m_pacientenumerodocumento = false;
m_pacienteapellido = false;
m_pacientesexo = false;
Expand All @@ -66,6 +68,7 @@ public ConfiguracionCodigoBarra(
bool protocoloorigen,
bool protocolosector,
bool protocolonumeroorigen,
bool protocolotipomuestra,
bool pacientenumerodocumento,
bool pacienteapellido,
bool pacientesexo,
Expand All @@ -80,6 +83,7 @@ public ConfiguracionCodigoBarra(
m_protocoloorigen = protocoloorigen;
m_protocolosector = protocolosector;
m_protocolonumeroorigen = protocolonumeroorigen;
m_protocolotipomuestra = protocolotipomuestra;
pacientenumerodocumento = m_pacientenumerodocumento;
m_pacienteapellido = pacienteapellido;
m_pacientesexo = pacientesexo;
Expand Down Expand Up @@ -175,11 +179,22 @@ public bool ProtocoloFecha
}

}

/// <summary>
///
/// </summary>
public bool ProtocoloOrigen


public bool ProtocoloTipoMuestra
{
get { return m_protocolotipomuestra; }
set
{
m_isChanged |= (m_protocolotipomuestra != value);
m_protocolotipomuestra = value;
}

}
/// <summary>
///
/// </summary>
public bool ProtocoloOrigen
{
get { return m_protocoloorigen; }
set
Expand Down
1 change: 1 addition & 0 deletions Business/Data/Laboratorio/ConfiguracionCodigoBarra.hbm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<property column="protocoloOrigen" type="Boolean" name="ProtocoloOrigen" not-null="true" />
<property column="protocoloSector" type="Boolean" name="ProtocoloSector" not-null="true" />
<property column="protocoloNumeroOrigen" type="Boolean" name="ProtocoloNumeroOrigen" not-null="true" />
<property column="protocoloTipoMuestra" type="Boolean" name="ProtocoloTipoMuestra" not-null="true" />
<property column="pacienteNumeroDocumento" type="Boolean" name="PacienteNumeroDocumento" not-null="true" />
<property column="pacienteApellido" type="Boolean" name="PacienteApellido" not-null="true" />
<property column="pacienteSexo" type="Boolean" name="PacienteSexo" not-null="true" />
Expand Down
54 changes: 53 additions & 1 deletion Business/Data/Laboratorio/Derivacion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ insert license info here
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using NHibernate;

namespace Business.Data.Laboratorio
Expand Down Expand Up @@ -280,6 +282,56 @@ public static List<Derivacion> DerivacionesByLote(int idLote) {
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)
{
////// ---------------------->Buscar las derivaciones que no han sido ingresadas
//los protocolos detalles me dan las derivaciones
//la derivacion debe estar enviada
//la derivacion debe tener el mismo lote que el ingresado (no todos los analisis pueden haber sido enviados con el mismo lote)

string m_strSQL =
//select distinct STRING_AGG(Det.idItem ,' | ') as Item ---> (No esta disponible en SQL 2014)
@" SELECT STUFF(( SELECT ' | ' + CAST(Det.idItem AS VARCHAR(20))
from LAB_Derivacion D
inner join LAB_DetalleProtocolo as Det on Det.idDetalleProtocolo = D.idDetalleProtocolo
where
D.estado in (1) ---------------------- Buscar las derivaciones que no han sido ingresadas
and D.idLote = " + idLoteDerivacion + @"
and Det.idprotocolo = " + idProtocolo +
" FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1, 3, '') AS Item; ";

DataSet Ds = new DataSet();
SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
SqlDataAdapter adapter = new SqlDataAdapter
{
SelectCommand = new SqlCommand(m_strSQL, conn)
};
adapter.Fill(Ds);
return Convert.ToString(Ds.Tables[0].Rows[0][0]);
}
}
}
32 changes: 31 additions & 1 deletion Business/Data/Laboratorio/Ficha.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,12 @@ public sealed class Ficha : Business.BaseDataAccess

private DateTime m_fecha ;
private DateTime m_fechasintoma;
private DateTime m_fechatoma;
private int m_idusuarioregistro;
private DateTime m_fecharegistro;
private string m_analisis;
private int m_idTipoMuestra;
private int m_idorigen;


#region Default ( Empty ) Class Constuctor
Expand All @@ -52,12 +54,14 @@ public Ficha()
m_tipoFicha = String.Empty;
m_identificadorlabo = String.Empty;
m_fechasintoma = DateTime.MinValue;
m_fechatoma = DateTime.MinValue;
m_idusuarioregistro = 0;
m_fecharegistro = DateTime.MinValue;
m_clasificacion = String.Empty;
m_idCasoSnvs = String.Empty;
m_fecha = DateTime.MinValue;
m_idTipoMuestra = 0;
m_idorigen = 0;
}


Expand All @@ -82,8 +86,10 @@ public Ficha(
DateTime fecharegistro,
DateTime fecha,
DateTime fechasintoma,
DateTime fechatoma,
int idTipoMuestra,
string idCasoSnvs
string idCasoSnvs,
int idorigen
)
: this()
{
Expand All @@ -93,9 +99,11 @@ string idCasoSnvs
m_fecharegistro = DateTime.MinValue;
m_fecha = DateTime.MinValue;
m_fechasintoma = DateTime.MinValue;
m_fechatoma = DateTime.MinValue;
m_analisis = analisis;
m_idCasoSnvs = idCasoSnvs;
m_idTipoMuestra = idTipoMuestra;
m_idorigen = idorigen;

}
#endregion // End Required Fields Only Constructor
Expand All @@ -116,6 +124,17 @@ public int IdFichaRecepcion

}

public int IdOrigen
{
get { return m_idorigen; }
set
{
m_isChanged |= (m_idorigen != value);
m_idorigen = value;
}

}

public int IdTipoMuestra
{
get { return m_idTipoMuestra; }
Expand Down Expand Up @@ -284,6 +303,17 @@ public DateTime FechaSintoma

}

public DateTime FechaToma
{
get { return m_fechatoma; }
set
{
m_isChanged |= (m_fechatoma != value);
m_fechatoma = value;
}

}

public DateTime Fecha
{
get { return m_fecha; }
Expand Down
3 changes: 2 additions & 1 deletion Business/Data/Laboratorio/Ficha.hbm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
<property column="fechaRegistro" type="DateTime" name="FechaRegistro" not-null="true" />

<property column="fechaSintoma" type="DateTime" name="FechaSintoma" not-null="true" />

<property column="fechaToma" type="DateTime" name="FechaToma" not-null="true" />
<property column="idTipoMuestra" type="Int32" name="IdTipoMuestra" not-null="true" />
<property column="idOrigen" type="Int32" name="IdOrigen" not-null="true" />

<property column="idUsuarioRegistro" type="Int32" name="IdUsuarioRegistro" not-null="true" />

Expand Down
23 changes: 21 additions & 2 deletions Business/Data/Laboratorio/Item.cs
Original file line number Diff line number Diff line change
Expand Up @@ -736,21 +736,22 @@ public bool VerificaValoresMinimosMaximos(string valorControl)
return devolver;
}

public string GetResultado(string valorItem)
public string GetResultado(string valorItem, Efector oEfector)
{

int i = valorItem.Length;
string res = "";
ISession m_session = NHibernateHttpModule.CurrentSession;
ICriteria crit = m_session.CreateCriteria(typeof(ResultadoItem));
crit.Add(Expression.Eq("IdItem", this));
crit.Add(Expression.Eq("IdEfector", oEfector));
IList lista = crit.List();
if (lista.Count > 0)
{
foreach (ResultadoItem oDet in lista)
{
if (oDet.Resultado.Length >= i)
if (oDet.Resultado.Substring(0, i) == valorItem)
if (oDet.Resultado.ToUpper().Substring(0, i) == valorItem.ToUpper())
{
res = oDet.Resultado; break;
}
Expand Down Expand Up @@ -908,6 +909,24 @@ public bool VerificaMuestrasRepetida(int idMuestra)
return dev;
}

public string GetRecomendacion()
{
string rec="";
//ISession m_session = NHibernateHttpModule.CurrentSession;
ICriteria critRec = m_session.CreateCriteria(typeof(ItemRecomendacion));
critRec.Add(Expression.Eq("IdItem", this));
IList listaRecomendacion = critRec.List();

foreach (ItemRecomendacion oRec in listaRecomendacion)
{
if (rec == "")
rec = oRec.IdRecomendacion.Descripcion;
else
rec = rec + " " + oRec.IdRecomendacion.Descripcion;
}
return rec;
}


//public string GetValorFormula(Protocolo oProtocolo)
//{
Expand Down
49 changes: 35 additions & 14 deletions Business/Data/Laboratorio/LoteDerivacion.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,14 +96,19 @@ public string Observacion {

public static string derivacionPDF(int idLote)
{
string m_strSQL = " SELECT numero, convert(varchar(10), fecha,103) as fecha, dni, determinacion, " +
" apellido + ' '+ nombre as paciente, efectorderivacion, fechaNacimiento as edad, unidadEdad, sexo, " +
" solicitante as especialista, idLote ," +
" CASE WHEN(len(idLote) < 9) " +
" THEN '00000' + CONVERT(VARCHAR, idLote) " +
" ELSE CONVERT(VARCHAR, idLote ) " +
" END as idLoteString " +
" FROM vta_LAB_Derivaciones WHERE idLote=" + idLote + " ORDER BY efectorDerivacion,numero ";

//agrego el tipo de muestra para NO PACIENTES (Cambios en la vista vta_LAB_Derivaciones)

string m_strSQL = @"SELECT numero, convert(varchar(10), fecha,103) as fecha, dni, determinacion,
apellido + ' '+ nombre as paciente, efectorderivacion, fechaNacimiento as edad, unidadEdad, sexo,
solicitante as especialista, idLote ,
CASE WHEN(len(idLote) < 9)
THEN '00000' + CONVERT(VARCHAR, idLote)
ELSE CONVERT(VARCHAR, idLote )
END as idLoteString ,
idTipoServicio ,
TipoProducto
FROM vta_LAB_Derivaciones WHERE idLote= " + idLote + " ORDER BY efectorDerivacion,numero ";

return m_strSQL;
}
Expand Down Expand Up @@ -149,11 +154,27 @@ public bool HayDerivacionesPendientes() {

}


//public bool IngresoProtocolo() {
// List<Derivacion> derivaciones = Derivacion.DerivacionesByLote(this.IdLoteDerivacion);

// derivaciones.co
//}
public void ActualizaEstadoLote(int idUsuario, string ProtocoloNuevo, string ProtocoloAnterior)
{
if (Estado == 4) //Pasa de Recibido a Ingresado
{
Estado = 5;
GrabarAuditoriaLoteDerivacion(descripcionEstadoLote(), idUsuario);
FechaIngreso = DateTime.Now;
}

//Graba el ingreso del protocolo en el lote
GrabarAuditoriaLoteDerivacion("Ingresa protocolo", idUsuario, "N�mero Protocolo", ProtocoloNuevo, ProtocoloAnterior);

//Si al generar este nuevo protocolo se finalizo la carga del lote, cambiar estado a Completado
if (!HayDerivacionesPendientes())
{
Estado = 6; //Pasa a Completado si no tiene m�s derivaciones pendientes
GrabarAuditoriaLoteDerivacion(descripcionEstadoLote(), idUsuario);
}

Save();
}

}
}
6 changes: 4 additions & 2 deletions Business/Data/Paciente.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1312,13 +1312,15 @@ public string GetProtocolosReciente(string idServicio)
}


public string GetFechaProtocolosReciente(string idServicio, string idmuestra)
public string GetFechaProtocolosRecientexEfector(string idServicio, string idmuestra, string idEfector)
{
string result = "";
ICriteria critProtocolo = m_session.CreateCriteria(typeof(Protocolo));

string ssql_Protocolo = " IdProtocolo in (Select top 1 LAb_Protocolo.IdProtocolo From LAb_Protocolo where Lab_Protocolo.idTipoServicio=" + idServicio +
" and LAb_Protocolo.baja=0 and Lab_Protocolo.idMuestra="+idmuestra+" and LAb_Protocolo.idPaciente=" + this.IdPaciente.ToString() +
" and LAb_Protocolo.baja=0 " +
" and Lab_Protocolo.IdEfector = "+ idEfector +
" and Lab_Protocolo.idMuestra="+idmuestra+" and LAb_Protocolo.idPaciente=" + this.IdPaciente.ToString() +
" and LAb_Protocolo.Fecha>='" + DateTime.Now.AddDays(-7).ToString("yyyyMMdd") + "' order by LAb_Protocolo.IdProtocolo desc )";
if (idServicio == "6") // si es forense no importa la fecha
ssql_Protocolo = " IdProtocolo in (Select top 1 LAb_Protocolo.IdProtocolo From LAb_Protocolo where Lab_Protocolo.idTipoServicio=" + idServicio +
Expand Down
Loading