@@ -61,3 +61,84 @@
+
+
+
+
+
+
+
+
+
+
+ El Ministerio de Salud de la Provincia de Neuquén, en el contexto del Sistema Informático de Laboratorios, se encuentra comprometido y comparte la responsabilidad de resguardar los derechos a la intimidad y confidencialidad de la información de los pacientes.
+
+
+
+ Cualquier integrante de los equipos de salud que, en función de hacer posible el proceso de asistencia sanitaria a dichas personas, tenga acceso a esta información almacenada en el Sistema Informático de Laboratorios, debe cumplir con la normativa jurídica que protege estos derechos:
+
+
+ Leyes Nacionales:
+
+ - Artículos 18, 19 y 43 de la Constitución Nacional (derechos a la intimidad y habeas data).
+ - Artículo 52 del Código Civil y Comercial Nacional (derecho a la intimidad).
+ - Artículo 11 de la Ley Nacional 17.132 de Ejercicio de la Medicina, Odontología y actividades de colaboración con ambas disciplinas (secreto profesional).
+ - Artículo 2, incisos c y d, de la Ley Nacional 26.529 de Derechos del Paciente en su Relación con los Profesionales e Instituciones de la Salud (derechos a la intimidad y confidencialidad).
+ - Artículos 8 y 10 de la Ley Nacional 25.326 de Protección de Datos Personales.
+
+
+ Leyes Provinciales:
+
+ - Ley 578 de Ejercicio de la medicina, odontología y actividades de colaboración.
+ - Artículo 8 de la Ley 2611, de derechos y obligaciones de los pacientes y usuarios de los servicios de salud públicos y privados de la Provincia (derecho a la confidencialidad y a la intimidad).
+ - Ley 2399 de Protección de Datos Personales.
+
+
+
+ Ante incumplimiento de estas obligaciones debe saber que puede tener consecuencias legales. Asimismo, desde el Ministerio de Salud se procederá a:
+
+
+
+ - Iniciar sumario administrativo por falta grave.
+ - Suspender en forma automática los permisos de acceso al Sistema Informático de Laboratorios.
+ - En caso de ser profesional, se informará al comité de ética deontológico correspondiente.
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebLab/loginSIL.ascx.cs b/WebLab/loginSIL.ascx.cs
index 63c66773..a70c65b0 100644
--- a/WebLab/loginSIL.ascx.cs
+++ b/WebLab/loginSIL.ascx.cs
@@ -40,8 +40,6 @@ protected void Page_Load(object sender, EventArgs e)
}
}
- ////else
-
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
@@ -60,9 +58,9 @@ protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
adapter.Fill(Ds);
DataTable dtPermisos = Ds.Tables[0];
- if (dtPermisos.Rows.Count > 0) {
- i_idusuario = int.Parse(dtPermisos.Rows[0][0].ToString());
- }
+ if (dtPermisos.Rows.Count > 0) {
+ i_idusuario = int.Parse(dtPermisos.Rows[0][0].ToString());
+ }
Usuario oUser = new Usuario();
@@ -71,6 +69,13 @@ protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
oUser = (Usuario)oUser.Get(typeof(Usuario), i_idusuario);
+ if (MostrarTerminosCondiciones(oUser))
+ {
+ Session["usuarioPendienteAceptacion"] = oUser;
+ ScriptManager.RegisterStartupScript(this, this.GetType(), "mostrarModal", "$('#modalTerminosCondiciones').modal('show');", true);
+ return;
+ }
+
}
else
{
@@ -80,113 +85,7 @@ protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
}
- /* Habilitar cuando se quiera autogestion de usuarios medicos
- if (oUser == null)
- AutenticarUsuarioLdap(Login1.UserName, Login1.Password);
- */
- if (oUser != null)
- {
- if ((oUser.Activo)&&(oUser.IdPerfil.Activo))
- {
- if ((oUser.Activo) && (oUser.Externo))
- {
- Session["idUsuario"] = oUser.IdUsuario.ToString();
- Response.Redirect("~/Consulta/Historiaclinicafiltro.aspx", false);
-
- }
- else
- {
- Session["idUsuarioValida"] = null;
-
- if (Request["Operacion"] == null)
- {//////////////nuevo login
- Session["SIL"] = "1";
-
- if (oUser.RequiereCambioPass)
- Response.Redirect("~/Usuarios/PasswordEdit2.aspx?idUsuario="+ oUser.IdUsuario.ToString(), false);
-
- else
- {
- Session["idUsuarioAux"] = oUser.IdUsuario.ToString();
- Response.Redirect("LoginEfector.aspx", false);
-
- //Session["idUsuario"] = oUser.IdUsuario.ToString();
- //Response.Redirect("Default.aspx", false);
- }
- }
- else
- {///////////////validacion
- if (Request["idCasoFiliacion"] != null)
- {
-
-
- if ((Request["idServicio"].ToString() == "6") && (VerificarSiTienePermisodeValidar(oUser.Username, "/CasoFiliacion/CasoResultado.aspx")))
- {
- //HttpContext Context;
- //Context = HttpContext.Current;
- //Context.Items.Add("id", Request["idCasoFiliacion"].ToString());
- Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
- //Context.Items.Add("Desde", "Valida");
- //Server.Transfer("~/CasoFiliacion/CasoResultado.aspx");
-
- Response.Redirect("~/casoFiliacion/CasoResultado3.aspx?id=" + Request["idCasoFiliacion"].ToString()+ "&Desde=Valida&logIn=1");
-
-
- }
- if ((Request["idServicio"].ToString() == "3") && (VerificarSiTienePermisodeValidar(oUser.Username, "/CasoFiliacion/CasoResultadoHisto.aspx")))
- {
- //HttpContext Context2;
- //Context2 = HttpContext.Current;
- //Context2.Items.Add("id", Request["idCasoFiliacion"].ToString());
- Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
- //Context2.Items.Add("Desde", "Valida");
- //Server.Transfer("~/CasoFiliacion/CasoResultadoHisto.aspx");
-
- Response.Redirect("~/CasoFiliacion/CasoResultadoHisto.aspx?id=" + Request["idCasoFiliacion"].ToString() + "&Desde=Valida&logIn=1", false);
-
- }
-
- }
- else
- {
- string idServicio = Request["idServicio"].ToString();
- string operacion = Request["Operacion"].ToString();
- string modo = Request["modo"].ToString();
- if (VerificarSiTienePermisodeValidar(oUser.Username, "/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo))
- {
- Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
- if (Request["urgencia"] != null)
- {
-
- string sredirect = "~/resultados/ResultadoEdit2.aspx?idServicio=1&Operacion=Valida&idProtocolo=" + Request["idProtocolo"].ToString() + "&Index=0&Parametros=" + Request["idProtocolo"].ToString() + "&idArea=0&urgencia=1&validado=0&modo=Urgencia"; //&idUsuarioValida=" + oUser.IdUsuario.ToString();
- if (Request["desde"] != null)
- sredirect += "&desde=" + Request["desde"].ToString();
- Response.Redirect(sredirect, false);
- // Response.Redirect("~/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo + "&idUsuarioValida=" + oUser.IdUsuario, false);
- }
- else
- Response.Redirect("~/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo + "&logIn=1", false);// + "&idUsuarioValida=" + oUser.IdUsuario, false);
- }
- else
- {
- e.Authenticated = false;
- Login1.FailureText = "El usuario no tiene permisos para validar.";
- }
- }
- }//fin else casofi
- }//externo
- }//activo
- else
- {
- e.Authenticated = false;
- Login1.FailureText = "El usuario no está activo por inactividad.";
- }
- }
- else
- {
- e.Authenticated = false;
- Login1.FailureText = "El usuario y/o contraseña no son correctos.";
- }
+ IngresoSistema(oUser, e);
}
@@ -327,5 +226,171 @@ FROM Sys_Menu AS M INNER JOIN
return b_permiso;
}
}
+
+ private void IngresoSistema(Usuario oUser, AuthenticateEventArgs e)
+ {
+
+ /* Habilitar cuando se quiera autogestion de usuarios medicos
+ if (oUser == null)
+ AutenticarUsuarioLdap(Login1.UserName, Login1.Password);
+ */
+ if (oUser != null)
+ {
+ if ((oUser.Activo) && (oUser.IdPerfil.Activo))
+ {
+ if ((oUser.Activo) && (oUser.Externo))
+ {
+ Session["idUsuario"] = oUser.IdUsuario.ToString();
+ Response.Redirect("~/Consulta/Historiaclinicafiltro.aspx", false);
+
+ }
+ else
+ {
+ Session["idUsuarioValida"] = null;
+
+ if (Request["Operacion"] == null)
+ {//////////////nuevo login
+ Session["SIL"] = "1";
+
+ if (oUser.RequiereCambioPass)
+ Response.Redirect("~/Usuarios/PasswordEdit2.aspx?idUsuario=" + oUser.IdUsuario.ToString(), false);
+
+ else
+ {
+ Session["idUsuarioAux"] = oUser.IdUsuario.ToString();
+ Response.Redirect("LoginEfector.aspx", false);
+
+ //Session["idUsuario"] = oUser.IdUsuario.ToString();
+ //Response.Redirect("Default.aspx", false);
+ }
+ }
+ else
+ {///////////////validacion
+ if (Request["idCasoFiliacion"] != null)
+ {
+
+
+ if ((Request["idServicio"].ToString() == "6") && (VerificarSiTienePermisodeValidar(oUser.Username, "/CasoFiliacion/CasoResultado.aspx")))
+ {
+ //HttpContext Context;
+ //Context = HttpContext.Current;
+ //Context.Items.Add("id", Request["idCasoFiliacion"].ToString());
+ Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
+ //Context.Items.Add("Desde", "Valida");
+ //Server.Transfer("~/CasoFiliacion/CasoResultado.aspx");
+
+ Response.Redirect("~/casoFiliacion/CasoResultado3.aspx?id=" + Request["idCasoFiliacion"].ToString() + "&Desde=Valida&logIn=1");
+
+
+ }
+ if ((Request["idServicio"].ToString() == "3") && (VerificarSiTienePermisodeValidar(oUser.Username, "/CasoFiliacion/CasoResultadoHisto.aspx")))
+ {
+ //HttpContext Context2;
+ //Context2 = HttpContext.Current;
+ //Context2.Items.Add("id", Request["idCasoFiliacion"].ToString());
+ Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
+ //Context2.Items.Add("Desde", "Valida");
+ //Server.Transfer("~/CasoFiliacion/CasoResultadoHisto.aspx");
+
+ Response.Redirect("~/CasoFiliacion/CasoResultadoHisto.aspx?id=" + Request["idCasoFiliacion"].ToString() + "&Desde=Valida&logIn=1", false);
+
+ }
+
+ }
+ else
+ {
+ string idServicio = Request["idServicio"].ToString();
+ string operacion = Request["Operacion"].ToString();
+ string modo = Request["modo"].ToString();
+ if (VerificarSiTienePermisodeValidar(oUser.Username, "/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo))
+ {
+ Session["idUsuarioValida"] = oUser.IdUsuario.ToString();
+ if (Request["urgencia"] != null)
+ {
+
+ string sredirect = "~/resultados/ResultadoEdit2.aspx?idServicio=1&Operacion=Valida&idProtocolo=" + Request["idProtocolo"].ToString() + "&Index=0&Parametros=" + Request["idProtocolo"].ToString() + "&idArea=0&urgencia=1&validado=0&modo=Urgencia"; //&idUsuarioValida=" + oUser.IdUsuario.ToString();
+ if (Request["desde"] != null)
+ sredirect += "&desde=" + Request["desde"].ToString();
+ Response.Redirect(sredirect, false);
+ // Response.Redirect("~/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo + "&idUsuarioValida=" + oUser.IdUsuario, false);
+ }
+ else
+ Response.Redirect("~/Resultados/ResultadoBusqueda.aspx?idServicio=" + idServicio + "&Operacion=" + operacion + "&modo=" + modo + "&logIn=1", false);// + "&idUsuarioValida=" + oUser.IdUsuario, false);
+ }
+ else
+ {
+ e.Authenticated = false;
+ Login1.FailureText = "El usuario no tiene permisos para validar.";
+ }
+ }
+ }//fin else casofi
+ }//externo
+ }//activo
+ else
+ {
+ e.Authenticated = false;
+ Login1.FailureText = "El usuario no está activo por inactividad.";
+ }
+ }
+ else
+ {
+ e.Authenticated = false;
+ Login1.FailureText = "El usuario y/o contraseña no son correctos.";
+ }
+ }
+ protected void btn_aceptarTerminosCondiciones_Click(object sender, EventArgs e)
+ {
+ Usuario oUser = (Usuario) Session["usuarioPendienteAceptacion"];
+
+ if (oUser != null)
+ {
+ Session["usuarioPendienteAceptacion"] = null;
+ //Actualizar la fecha en la bd
+ oUser.FechaAceptaTerminosCondiciones = DateTime.Now;
+ oUser.Save();
+ //Actualizo acceso en log
+ CrearLogAcceso(oUser);
+ //Ingreso al sistema
+ AuthenticateEventArgs evento = new AuthenticateEventArgs();
+ IngresoSistema(oUser, evento);
+ }
+ else
+ {
+ // Fallback: recargar página o mostrar error
+ Response.Redirect("Logout.aspx", true);
+ }
+ }
+ private void CrearLogAcceso(Usuario oUser)
+ {
+ LogAccesoTerminosCondiciones RegistroAcceso = new LogAccesoTerminosCondiciones();
+ RegistroAcceso.IdUsuario = oUser.IdUsuario;
+ RegistroAcceso.Fecha = DateTime.Now;
+ RegistroAcceso.Save();
+ }
+
+ private bool MostrarTerminosCondiciones(Usuario oUser)
+ {
+ int dias = Convert.ToInt32(ConfigurationManager.AppSettings["DiasTerminosCondiciones"]);
+ if(dias > 0)
+ {
+ DateTime ultimaFecha = oUser.FechaAceptaTerminosCondiciones;
+ DateTime hoy = DateTime.Now;
+
+ TimeSpan diferencia = hoy.Subtract(ultimaFecha);
+ int diferenciasDias = diferencia.Days;
+
+ if (diferenciasDias > dias)
+ return true;
+ else
+ return false;
+ }
+ else
+ {
+ ScriptManager.RegisterStartupScript(this, this.GetType(), "error", "alert('❌ No hay dias definidos para los terminos y condiciones');", true);
+ return true;
+ }
+
+
+ }
}
}
\ No newline at end of file
diff --git a/WebLab/loginSIL.ascx.designer.cs b/WebLab/loginSIL.ascx.designer.cs
index c841dfbd..fda68eb1 100644
--- a/WebLab/loginSIL.ascx.designer.cs
+++ b/WebLab/loginSIL.ascx.designer.cs
@@ -7,12 +7,13 @@
//
//------------------------------------------------------------------------------
-namespace WebLab {
-
-
+namespace WebLab
+{
+
+
public partial class loginSIL
{
-
+
///
/// Login1 control.
///
@@ -21,5 +22,23 @@ public partial class loginSIL
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.WebControls.Login Login1;
+
+ ///
+ /// cb_aceptaTerminos control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.CheckBox cb_aceptaTerminos;
+
+ ///
+ /// btn_aceptarTerminosCondiciones control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.Button btn_aceptarTerminosCondiciones;
}
}