Files
2025-06-09 13:37:06 +02:00

1398 lines
50 KiB
Java

package com.tarisan.control;
import java.sql.*;
import java.util.Calendar;
import java.util.Vector;
import com.tarisan.excepcion.ExcepcionTarisan;
import com.tarisan.log.LogTarisan;
import com.tarisan.log.NivelLog;
import com.tarisan.util.DES;
import com.tarisan.util.Utilidades;
import com.tarisan.data.Taconaut;
//import com.tarisan.data.Tamedico;
public class PersistenciaTaconaut implements Constantes
{
/**
* El objeto <code>Paginacion</code> que controla el número de filas a mostrar por cada página.
*/
private Paginacion objPaginacion = new Paginacion();
/**
* Obtiene el valor del objeto <code>Paginacion</code> para saber que página se está visualizando.
* @return El objeto <code>Paginacion</code>.
*/
public Paginacion getPaginacion()
{
return objPaginacion;
}
public long ultimaAutorizacion(int especialidad, String tarjeta, String autorizacion)
{
long resul = 0;
StringBuffer sqlSelect = new StringBuffer();
Object[] aCondiciones = new Object[2];
try
{
sqlSelect.append("Select autorizacion AUT ");
sqlSelect.append("from taconaut ");
sqlSelect.append("where especialidad = ? ");
sqlSelect.append("and tarjeta = ? ");
sqlSelect.append("and activo = 1 ");
//sqlSelect.append("and cantidad > 0 ");
//comprobamos si se trata de una busqueda de actos medicos
if (!autorizacion.equalsIgnoreCase(""))
{
if (autorizacion.endsWith("*"))
autorizacion=autorizacion.replace('*', '%');
else
autorizacion="%" + autorizacion + "%";
sqlSelect.append(" and autorizacion like ? ");
aCondiciones = new Object[3];
aCondiciones[2] = autorizacion;
} else {
aCondiciones = new Object[2];
}
sqlSelect.append("order by taconaut.fecha_creacion desc");
aCondiciones[0] = Integer.valueOf(especialidad);
aCondiciones[1] = new String(tarjeta);
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
resul = rs.getLong("AUT");
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
if (aCondiciones.length == 3 && resul == 0){
resul = -1;
}
}
catch (ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo ultima autorizacion de taconaut" + e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo ultima autorizacion de taconaut" + e.toString());
}
return resul;
}
public Vector<Long> AutorizacionesActivas(int especialidad, String tarjeta)
{
Vector<Long> resul = new Vector<Long>();
StringBuffer sqlSelect = new StringBuffer();
Object[] aCondiciones = new Object[2];
try
{
sqlSelect.append("Select autorizacion AUT ");
sqlSelect.append("from taconaut ");
sqlSelect.append("where especialidad = ? ");
sqlSelect.append("and tarjeta = ? ");
sqlSelect.append("and activo = 1 ");
sqlSelect.append("and cantidad > 0 ");
sqlSelect.append(" order by fecha_creacion desc");
aCondiciones[0] = Integer.valueOf(especialidad);
aCondiciones[1] = new String(tarjeta);
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
resul.addElement(rs.getLong("AUT"));
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo autorizaciones activas de taconaut" + e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo autorizaciones activas de taconaut" + e.toString());
}
return resul;
}
public boolean marcarCuraCompletada(long autorizacion)
{
boolean resul = false;
StringBuffer sqlUpdate = new StringBuffer();
Object[] aCondiciones = new Object[1];
try
{
sqlUpdate.append("Update taconaut set activo = 0 ");
sqlUpdate.append("where autorizacion = ? ");
aCondiciones[0] = Long.valueOf(autorizacion);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), null, aCondiciones, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo ultima autorizacion de taconaut" + e.toString());
}
return resul;
}
public boolean AutorizacionSinTarjeta(long autorizacion)
{
boolean resul = false;
StringBuffer sqlSelect = new StringBuffer();
try {
sqlSelect.append("Select tarjeta from taconaut");
sqlSelect.append(" where autorizacion = ? ");
Object[] aCondiciones = new Object[1];
aCondiciones[0] = Long.valueOf(autorizacion);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
if(rs.getString("TARJETA") == null)
resul = true;
}
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo tarjeta de taconaut" + e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEexception obteniendo tarjeta de taconaut" + e.toString());
}
return resul;
}
public boolean AutorizacionesSinTarjeta()
{
boolean resul = true;
StringBuffer sqlSelect = new StringBuffer();
try {
sqlSelect.append("Select autorizacion, acto, especialidad, cantidad from taconaut where tarjeta is null");
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while (rs.next() && resul)
{
//por cada autorizacion que no tenga tarjeta vamos obteniendo su tarjeta y actualizando la autorizacion:
String tarjeta = this.ObtenerTarjeta(rs.getLong("AUTORIZACION"));
resul = this.ActualizarCantidadTarjetaAutorizacionADM(rs.getLong("AUTORIZACION"), rs.getInt("ACTO"), rs.getInt("ESPECIALIDAD"), rs.getInt("CANTIDAD"), tarjeta);
}
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan actualizando tarjetas de taconaut" + e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception actualizando tarjetas de taconaut" + e.toString());
}
return resul;
}
public Vector<Taconaut> ObtenerAutorizacionADM(long autorizacion)
{
Vector<Taconaut> resultado = new Vector<Taconaut>();
StringBuffer sqlSelect = new StringBuffer();
try {
sqlSelect.append("Select * from taconaut");
sqlSelect.append(" where autorizacion = ? ");
Object[] aCondiciones = new Object[1];
aCondiciones[0] = Long.valueOf(autorizacion);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
Taconaut tacon = new Taconaut();
tacon.setActo(rs.getInt("acto"));
tacon.setAutorizacion(String.valueOf(rs.getLong("autorizacion")));
tacon.setCantidad(rs.getInt("cantidad"));
tacon.setEspecialidad(rs.getInt("especialidad"));
boolean gesigu = false;
if(rs.getInt("from_gesigu") == 1)
gesigu = true;
tacon.setFromGesigu(gesigu);
tacon.setInforme(rs.getString("informe"));
tacon.setMedico(rs.getInt("medico"));
tacon.setTarjeta(rs.getString("TARJETA"));
resultado.add(tacon);
}
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan obteniendo autorizacion de taconaut" + e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error SQLEception obteniendo autorizacion de taconaut" + e.toString());
}
return resultado;
}
public Vector<Integer> ObtenerActosAutorizados(long autorizacion)
{
Vector<Integer> vSeleccion = new Vector<Integer>();
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("Select acto from taconaut ");
sqlSelect.append("where autorizacion = ? ");
Object aCondiciones[] = new Object[1];
aCondiciones[0] = Long.valueOf(autorizacion);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
vSeleccion.add(rs.getInt("acto"));
}
rs.close();
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return vSeleccion;
}
public Vector<Integer> ObtenerActosAutorizadosPorVector(Vector<Long> autorizaciones)
{
Vector<Integer> vSeleccion = new Vector<Integer>();
StringBuffer sqlSelect = new StringBuffer();
String strAutorizaciones = "";
try
{
for(int i = 0; i < autorizaciones.size(); i++)
{
if (i==0){
strAutorizaciones = autorizaciones.elementAt(i).toString();
}else{
strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
}
}
sqlSelect.append("Select acto from taconaut ");
sqlSelect.append("where autorizacion in ("+strAutorizaciones+")");
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while(rs.next())
{
vSeleccion.add(rs.getInt("acto"));
}
rs.close();
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return vSeleccion;
}
public long ObtenerAutorizacionPorActo(int acto, int especialidad, int medico, String tarjeta, Vector<Long> autorizaciones)
{
long resul = 0;
StringBuffer sqlSelect = new StringBuffer();
String strAutorizaciones = "";
for(int i = 0; i < autorizaciones.size(); i++)
{
if (i==0){
strAutorizaciones = autorizaciones.elementAt(i).toString();
}else{
strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
}
}
try
{
String sql = "Select autorizacion from taconaut where acto = "+ acto +" and especialidad="+ especialidad +" and medico= "+ medico +" and tarjeta = "+ tarjeta +" and autorizacion in ("+ strAutorizaciones +")";
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql/*, aCondiciones*/);
while(rs.next())
{
resul = (rs.getLong("autorizacion"));
}
rs.close();
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return resul;
}
public int ObtenerMedico(int acto, int especialidad, String tarjeta, Vector<Long> autorizaciones)
{
int resul = 0;
StringBuffer sqlSelect = new StringBuffer();
String strAutorizaciones = "";
for(int i = 0; i < autorizaciones.size(); i++)
{
if (i==0){
strAutorizaciones = autorizaciones.elementAt(i).toString();
}else{
strAutorizaciones = strAutorizaciones + "," + autorizaciones.elementAt(i).toString();
}
}
try
{
String sql = "Select medico from taconaut where acto = "+ acto +" and especialidad="+ especialidad +" and tarjeta = "+ tarjeta +" and autorizacion in ("+ strAutorizaciones +")";
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sql/*, aCondiciones*/);
while(rs.next())
{
resul = (rs.getInt("medico"));
}
rs.close();
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return resul;
}
public boolean BuscarAutorizacion(long autorizacion, String tarjeta)
{
return this.BuscarAutorizacion(autorizacion, 0, tarjeta);
}
public boolean BuscarAutorizacion(long autorizacion)
{
return this.BuscarAutorizacion(autorizacion, 0, "");
}
public boolean BuscarAutorizacion(long autorizacion, int medico, String tarjeta)
{
boolean existe=false;
String sqlSelect = new String();
long cuantas=0;
try
{
sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion;
if(medico != 0)
sqlSelect += " and medico = "+medico;
if(tarjeta != "")
sqlSelect += " and tarjeta ='"+tarjeta+"'";
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while(rs.next())
{
cuantas = rs.getLong("AUT");
}
rs.close();
if(cuantas > 0)
{
existe = true;
}
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return existe;
}
public boolean BuscarAutorizaciones(Vector<Long> vAutorizaciones, String tarjeta)
{
return this.BuscarAutorizaciones(vAutorizaciones, 0, tarjeta);
}
public boolean BuscarAutorizaciones(Vector<Long> vAutorizaciones)
{
return this.BuscarAutorizaciones(vAutorizaciones, 0, "");
}
public boolean BuscarAutorizaciones(Vector<Long> vAutorizaciones, int medico, String tarjeta)
{
boolean existe=false;
String sqlSelect = new String();
long cuantas=0;
String strAutorizaciones = "";
for(int i = 0; i < vAutorizaciones.size(); i++)
{
if (i==0){
strAutorizaciones = vAutorizaciones.elementAt(i).toString();
}else{
strAutorizaciones = strAutorizaciones + "," + vAutorizaciones.elementAt(i).toString();
}
}
try
{
sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion in ("+ strAutorizaciones + ")";
if(medico != 0)
sqlSelect += " and medico = "+medico;
if(tarjeta != "")
sqlSelect += " and tarjeta ='"+tarjeta+"'";
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while(rs.next())
{
cuantas = rs.getLong("AUT");
}
rs.close();
if(cuantas > 0)
{
existe = true;
}
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return existe;
}
/**
* Funcion que nos dirá si a la autorización pasada por parámetro le queda algúna sesión disponible.
* @param autorizacion El número de autorización
* @param medico El código del médico autorizado
* @param acto El código del acto autorizado
* @return Cierto o falso según le queden sesiones o no
*/
public boolean ComprobarAutorizacionValida (long autorizacion, int medico, int acto, String tarjeta)
{
boolean existe=false;
String sqlSelect = new String();
long cuantas=0;
try
{
//sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion+" and medico = "+medico+" and acto = "+acto+" and tarjeta ='"+tarjeta+"'";
//Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
sqlSelect = "SELECT count(autorizacion) AUT from taconaut where autorizacion = "+ autorizacion+" and medico = "+medico+" and acto = "+acto;
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while(rs.next())
{
cuantas = rs.getLong("AUT");
}
rs.close();
if(cuantas > 0)
{
existe = true;
}
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return existe;
}
public int ObtenerEspecialidadAutorizacion(long autorizacion)
{
int resultado = 0;
return resultado;
}
public boolean CrearAutorizacionValida(long autorizacion, int medico, int especialidad, int acto, int cantidad, int gesigu, String tarjeta)
{
return this.CrearAutorizacionValida(autorizacion, medico, especialidad, acto, cantidad, "", gesigu, tarjeta);
}
/*public boolean CrearAutorizacionValida(int autorizacion, int medico, int especialidad, int acto, int cantidad, int gesigu)
{
return this.CrearAutorizacionValida(autorizacion, medico, especialidad, acto, cantidad, "", gesigu, "");
}*/
/**
* Hay autorizaciones que vienen desde gesigu que no estamos insertando bien la tarjeta.
* aquí vuelvo a buscar la autorizacion en ttmovaut, obteniendo ent, col, pol y orden para conseguir la tarjeta desde ttbenefi
* @param autorizacion
* @return
*/
public String ObtenerTarjeta(long autorizacion)
{
String resul ="";
StringBuffer sqlSelect = new StringBuffer();
sqlSelect.append("select entidad, colectivo, poliza, orden from ttmovaut ");
sqlSelect.append("where autorizacion = " + autorizacion);
try {
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
Object aCondiciones[] = new Object[4];
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
while(rs.next())
{
aCondiciones[0] = rs.getInt("ENTIDAD");
aCondiciones[1] = rs.getLong("COLECTIVO");
aCondiciones[2] = rs.getLong("POLIZA");
aCondiciones[3] = rs.getInt("ORDEN");
}
rs = null;
sqlSelect = null;
sqlSelect = new StringBuffer();
//ya tengo la entidad col pol ord de la autorizacion.
//vamos a obtener la tarjeta desde ttbenefi.
sqlSelect.append("Select tarjeta from ttbenefi where ");
sqlSelect.append("entidad = ? ");
sqlSelect.append("and colectivo = ? ");
sqlSelect.append("and poliza = ? ");
sqlSelect.append("and orden = ?");
rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
resul = rs.getString("TARJETA");
}
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionTarisan en la obtencion de la tarjeta del paciente para taconaut del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error ExcepcionSQL en la obtencion de la tarjeta del paciente para taconaut del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return resul;
}
/**
* Se ha encontrado una autorización válida en GESIGU y con esta función creamos la correspondiente en ALBERTO.TACONAUT
* @param autorizacion El número de la autorización a crear
* @param medico El código del médico autorizado
* @param especialidad El código de la especialidad autorizada
* @param acto El código del acto autorizado
* @param cantidad El número de sesiones autorizadas
* @return Cierto si la "insert" se realiza con éxito.
*/
public boolean CrearAutorizacionValida(long autorizacion, int medico, int especialidad, int acto, int cantidad, String informe, int gesigu, String tarjeta)
{
boolean exito=false;
StringBuffer sqlSelect = new StringBuffer();
//LogTarisan.logger.log(NivelLog.DEBUG, "\n\nCrearAutorizacionValida: Autorización: "+autorizacion+", medico: "+medico+", especialidad: "+especialidad+", acto: "+acto+", cantidad: "+cantidad+"\n\n\n");
try
{
sqlSelect.append("insert into taconaut (autorizacion, especialidad, acto, cantidad, medico, informe, from_gesigu, tarjeta, activo) ");
sqlSelect.append("values (?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, ");
sqlSelect.append("?, 1) ");
Object aCondiciones[] = new Object[8];
aCondiciones[0] = Long.valueOf(autorizacion);
aCondiciones[1] = Integer.valueOf(especialidad);
aCondiciones[2] = Integer.valueOf(acto);
aCondiciones[3] = Integer.valueOf(cantidad);
aCondiciones[4] = Integer.valueOf(medico);
aCondiciones[5] = new String(informe);
aCondiciones[6] = Integer.valueOf(gesigu);
if(tarjeta == null)
aCondiciones[7] = this.ObtenerTarjeta(autorizacion);
else
aCondiciones[7] = new String(tarjeta);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ParametrosConfiguracion.dataStore.iniciarTransaccion(conexion);
exito = ParametrosConfiguracion.dataStore.insertar(sqlSelect.toString(), aCondiciones, conexion);
if (exito)
{
ParametrosConfiguracion.dataStore.confirmarTransaccion(conexion);
}
else
{
ParametrosConfiguracion.dataStore.deshacerTransaccion(conexion);
}
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return exito;
}
/**
* Funcion que nos devuelve el número de sesiones que le quedan al asgurado en la autorización
* @param autorizacion El número de la autorización
* @param medico El código del médico
* @param acto El código del acto
* @return El número de sesiones "disponibles" en la autorizacion
*/
public int ObtenerSesionesPendientes(long autorizacion, int acto)
{
return this.ObtenerSesionesPendientes(autorizacion, 0, acto);
}
public int ObtenerSesionesPendientes(long autorizacion, int medico, int acto)
{
int quedan = 0;
StringBuffer sqlSelect = new StringBuffer();
// LogTarisan.logger.log(NivelLog.DEBUG, "\n\nObtenerSesionesPendientes: Autorizacion: "+autorizacion+", medico: "+medico+", acto:"+acto);
try
{
sqlSelect.append("select cantidad from taconaut ");
sqlSelect.append("where autorizacion = ? ");
if(medico != 0)
sqlSelect.append("and medico = ? ");
sqlSelect.append("and acto = ?");
Object aCondiciones[] = null;
if(medico != 0)
{
aCondiciones = new Object[3];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(medico);
aCondiciones[2]=Integer.valueOf(acto);
}
else
{
aCondiciones = new Object[2];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(acto);
}
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
while(rs.next())
{
quedan = rs.getInt("cantidad");
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return quedan;
}
/**
* Comprueba se se ha imputado una sesión para ese mismo acto el mismo día.
* @param autorizacion
* @param especialidad
* @param medico
* @param acto
* @return Cierto si la sesión no se ha consumido hoy o todavía no se ha consumido ninguna sesión
*/
public boolean PermitirImputarActo(long autorizacion, int especialidad, int acto, String tarjeta)
{
return this.PermitirImputarActo(autorizacion, especialidad, 0, acto, tarjeta);
}
public boolean PermitirImputarActo(long autorizacion, int especialidad, int medico, int acto, String tarjeta)
{
boolean imputable = false;
Calendar fechaAct = Calendar.getInstance();
Calendar fechaModificacion = null;
Calendar fechaCreacion = null;
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("select fecha_modificacion, fecha_creacion ");
sqlSelect.append("from taconaut ");
sqlSelect.append("where especialidad = ? ");
sqlSelect.append("and autorizacion = ? ");
//Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
/*if(tarjeta.length()<2)
{
tarjeta = "%";
sqlSelect.append("and tarjeta like ? ");
}
else
{
sqlSelect.append("and tarjeta = ? ");
}*/
if(medico != 0)
sqlSelect.append("and medico = ? ");
sqlSelect.append("and acto = ? ");
if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
sqlSelect.append("and fecha_creacion >= (sysdate - 30)");
sqlSelect.append(" order by fecha_modificacion desc");
Object aCondiciones[] = null;
if(medico != 0)
{
aCondiciones = new Object[4];
aCondiciones[0]=Integer.valueOf(especialidad);
aCondiciones[1]=Long.valueOf(autorizacion);
//aCondiciones[2]=new String(tarjeta);
aCondiciones[2]=Integer.valueOf(medico);
aCondiciones[3]=Integer.valueOf(acto);
}
else
{
aCondiciones = new Object[3];
aCondiciones[0]=Integer.valueOf(especialidad);
aCondiciones[1]=Long.valueOf(autorizacion);
//aCondiciones[2]=new String(tarjeta);
aCondiciones[2]=Integer.valueOf(acto);
}
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
if(rs.next())
{
LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si podemos imputar la autorizacion"+autorizacion+" \n\n\n");
if(rs.getDate("fecha_modificacion") != null)
{
fechaModificacion = Calendar.getInstance();
fechaModificacion.setTime(rs.getDate("fecha_modificacion"));
fechaCreacion = Calendar.getInstance();
fechaCreacion.setTime(rs.getDate("fecha_creacion"));
LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si podemos imputar la autorizacion"+autorizacion+", la ultima modificacion fue: "+fechaModificacion+" \n\n\n");
imputable = true;
}
else
imputable = true;
}
else
{
LogTarisan.logger.log(NivelLog.DEBUG, "\n\n\nNo se ha encontrado la autorizacion: "+autorizacion+" \n\n\n");
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
if(fechaCreacion != null)
{
if (fechaAct.get(Calendar.YEAR) != fechaModificacion.get(Calendar.YEAR))
imputable = true;
else if (fechaAct.get(Calendar.MONTH) != fechaModificacion.get(Calendar.MONTH))
imputable = true;
else if (fechaAct.get(Calendar.DAY_OF_MONTH) != fechaModificacion.get(Calendar.DAY_OF_MONTH))
imputable = true;
else
imputable = false;
}
if(fechaCreacion != null && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
{
fechaAct.add(Calendar.DATE, -30);
if(fechaCreacion.compareTo(fechaAct) < 0)
{
marcarCuraCompletada(autorizacion);
imputable = false;
}
}
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return imputable;
}
public boolean ActualizarCantidadAutorizacionADM(long autorizacion, int acto, int especialidad, int cantidad)
{
boolean resul = false;
String sqlUpdate = "update taconaut set cantidad = "+cantidad+" where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
try
{
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch(ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarCantidadAutorizacionADM de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
}
return resul;
}
public boolean ActualizarCantidadTarjetaAutorizacionADM(long autorizacion, int acto, int especialidad, int cantidad, String tarjeta)
{
boolean resul = false;
String sqlUpdate = "update taconaut set fecha_modificacion = sysdate, tarjeta = "+tarjeta+", cantidad = "+cantidad+" where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
try
{
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarFechaModificacion de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
}
return resul;
}
public boolean ActualizarFechaModificacion(long autorizacion, int acto, int especialidad)
{
boolean resul = false;
String sqlUpdate = "update taconaut set fecha_modificacion = sysdate where autorizacion = "+autorizacion+" and acto = "+ acto + " and especialidad = "+especialidad;
try
{
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ActualizarFechaModificacion de la autorizacion: " + autorizacion +", "+ e.toString() + " (" + sqlUpdate + ")");
}
return resul;
}
/**
* Resta una sesion a las disponibles en la autorización.
* @param autorizacion
* @param medico
* @param acto
* @param especialidad
* @return
*/
public boolean RestarSesion(long autorizacion, int acto, int especialidad)
{
return this.RestarSesion(autorizacion, 0, acto, especialidad);
}
public boolean RestarSesion(long autorizacion, int medico, int acto, int especialidad)
{
boolean resul = false;
int quedan = this.ObtenerSesionesPendientes(autorizacion, medico, acto);
quedan -= 1;
StringBuffer sqlUpdate = new StringBuffer();
try
{
sqlUpdate.append("update taconaut ");
sqlUpdate.append("set cantidad = ?, ");
sqlUpdate.append("fecha_modificacion = sysdate ");
sqlUpdate.append("where autorizacion = ? ");
if(medico != 0)
sqlUpdate.append("and medico = ? ");
sqlUpdate.append("and acto = ? ");
sqlUpdate.append("and especialidad = ?");
Object aCondiciones[] = null;
if(medico != 0)
{
aCondiciones = new Object[4];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(medico);
aCondiciones[2]=Integer.valueOf(acto);
aCondiciones[3]=Integer.valueOf(especialidad);
}
else
{
aCondiciones = new Object[3];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(acto);
aCondiciones[2]=Integer.valueOf(especialidad);
}
Object aValores[] = new Object[1];
aValores[0]=Integer.valueOf(quedan);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ObtenerSesionesPendientes del paciente: " + e.toString() + " (" + sqlUpdate + ")");
}
return resul;
}
public String ObtenerInforme(long autorizacion)
{
String resultado = "";
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("Select INFORME from taconaut ");
sqlSelect.append("where autorizacion = ? ");
Object aCondiciones[] = new Object[1];
aCondiciones[0] = Long.valueOf(autorizacion);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
if(rs.next())
{
resultado = rs.getString("INFORME");
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch(ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error al obetener el informe de la autorizacion: "+autorizacion+". "+e.toString());
}
catch(SQLException e)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error SQL al obetener el informe de la autorizacion: "+autorizacion+". "+e.toString());
}
return resultado;
}
public Vector<Taconaut> ObtenerPrescripcionesPorMedico(long medico, int pagina)
{
Vector<Taconaut> vResul = new Vector<Taconaut>();
StringBuffer sqlSelect = new StringBuffer();
int elementosPaginacion=1;
String strMedico = ""+medico;
try
{
sqlSelect.append("Select * from taconaut ");
sqlSelect.append("where medico = ?");
sqlSelect.append("order by autorizacion desc");
Object aCondiciones[] = new Object[1];
aCondiciones[0]=Long.valueOf(medico);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
DES encrypter = new DES(strMedico);
String auto = rs.getString("AUTORIZACION");
//auto = (auto.length()<8)?"0"+auto:auto;
String autoEncriptado = encrypter.encrypt(auto);
Taconaut tacon = new Taconaut();
tacon.setAutorizacion(rs.getString("AUTORIZACION"));
tacon.setAutorizacionEncriptada(autoEncriptado);
tacon.setEspecialidad(rs.getInt("ESPECIALIDAD"));
tacon.setMedico(rs.getInt("MEDICO"));
tacon.setActo(rs.getInt("ACTO"));
tacon.setCantidad(rs.getInt("CANTIDAD"));
tacon.setFechaModificacion(rs.getDate("FECHA_MODIFICACION"));
tacon.setInforme(rs.getString("INFORME"));
tacon.setFromGesigu(rs.getInt("FROM_GESIGU") == 1 ? true : false);
vResul.add(tacon);
if (pagina!=0) //Se quiere realizar la paginacion
elementosPaginacion++;
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: "+e.toString());
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Excepcion SQL: "+e.toString());
}
return vResul;
}
public boolean esCuraFinalizada(long autorizacion, int especialidad, int acto, String tarjeta)
{
return this.esCuraFinalizada(autorizacion, especialidad, 0, acto, tarjeta);
}
public boolean esCuraFinalizada(long autorizacion, int especialidad, int medico, int acto, String tarjeta)
{
boolean finalizado = false;
boolean esCura = false;
Calendar fechaAct = Calendar.getInstance();
Calendar fechaCreacion = null;
StringBuffer sqlSelect = new StringBuffer();
try
{
sqlSelect.append("select acto, fecha_creacion ");
sqlSelect.append("from taconaut ");
sqlSelect.append("where especialidad = ? ");
sqlSelect.append("and autorizacion = ? ");
//Quitamos la tarjeta de la select porque si al paciente se le rompe y viene con otra tarjeta nueva ya no encuentra la autorización
/*if(tarjeta.length()<2)
{
tarjeta = "%";
sqlSelect.append("and tarjeta like ? ");
}
else
{
sqlSelect.append("and tarjeta = ? ");
}*/
if(medico != 0)
sqlSelect.append("and medico = ? ");
sqlSelect.append("and acto = ? ");
/*if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto)))
sqlSelect.append("and fecha_creacion >= (sysdate - 30)");*/
sqlSelect.append(" order by fecha_modificacion desc");
Object aCondiciones[] = null;
if(medico != 0)
{
aCondiciones = new Object[4];
aCondiciones[0]=Integer.valueOf(especialidad);
aCondiciones[1]=Long.valueOf(autorizacion);
//aCondiciones[2]=new String(tarjeta);
aCondiciones[2]=Integer.valueOf(medico);
aCondiciones[3]=Integer.valueOf(acto);
}
else
{
aCondiciones = new Object[3];
aCondiciones[0]=Integer.valueOf(especialidad);
aCondiciones[1]=Long.valueOf(autorizacion);
//aCondiciones[2]=new String(tarjeta);
aCondiciones[2]=Integer.valueOf(acto);
}
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
LogTarisan.logger.log(NivelLog.DEBUG, Utilidades.obtenerSentenciaSQL(sqlSelect, null, aCondiciones));
if(rs.next())
{
LogTarisan.logger.log(NivelLog.DEBUG, "Vamos a comprobar si ha finalizado la cura"+autorizacion+" \n\n\n");
fechaCreacion = Calendar.getInstance();
fechaCreacion.setTime(rs.getDate("fecha_creacion"));
if(especialidad == 50 && ParametrosConfiguracion.actos_ats_curas.contains(String.valueOf(acto))){
esCura = true;
}
}
else
{
LogTarisan.logger.log(NivelLog.DEBUG, "\n\n\nNo se ha encontrado la autorizacion: "+autorizacion+" \n\n\n");
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
int fechaC = fechaCreacion.get(Calendar.DAY_OF_YEAR);
int fechaHoy = fechaAct.get(Calendar.DAY_OF_YEAR);
if (fechaHoy - fechaC > 30){ //Ha pasado mas de un mes
finalizado = true;
}
/*fechaAct.add(Calendar.DATE, -30);
if(fechaCreacion.compareTo(fechaAct) < 0)
{
finalizado = false;
}*/
if (esCura && finalizado){
finalizado = true;
}else{
finalizado = false;
}
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en PermitirImputarActo del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
/*if (finalizado){
this.ponerCuraACero(autorizacion, medico, acto, especialidad);
} */
return finalizado;
}
/**
* Resta una sesion a las disponibles en la autorización.
* @param autorizacion
* @param medico
* @param acto
* @param especialidad
* @return
*/
public boolean ponerCuraACero(long autorizacion, int acto, int especialidad)
{
return this.ponerCuraACero(autorizacion, 0, acto, especialidad);
}
public boolean ponerCuraACero(long autorizacion, int medico, int acto, int especialidad)
{
boolean resul = false;
StringBuffer sqlUpdate = new StringBuffer();
try
{
sqlUpdate.append("update taconaut ");
sqlUpdate.append("set cantidad = 0, ");
sqlUpdate.append("fecha_modificacion = sysdate ");
sqlUpdate.append("where autorizacion = ? ");
if(medico != 0)
sqlUpdate.append("and medico = ? ");
sqlUpdate.append("and acto = ? ");
sqlUpdate.append("and especialidad = ?");
Object aCondiciones[] = null;
if(medico != 0)
{
aCondiciones = new Object[4];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(medico);
aCondiciones[2]=Integer.valueOf(acto);
aCondiciones[3]=Integer.valueOf(especialidad);
}
else
{
aCondiciones = new Object[3];
aCondiciones[0]=Long.valueOf(autorizacion);
aCondiciones[1]=Integer.valueOf(acto);
aCondiciones[2]=Integer.valueOf(especialidad);
}
Object aValores[] = new Object[0];
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
resul = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones, conexion);
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en ponerCUraACero del paciente: " + e.toString() + " (" + sqlUpdate + ")");
}
return resul;
}
public Vector<Long> BuscarAutorizacionPorMedicoYPoliza(int medico, int colectivo, long poliza, int orden, int pagina)
{
int elementosPaginacion=1;
Vector<Long> autorizaciones = new Vector<Long>();
String sqlSelect = new String();
String tarjeta="";
String tarjeta_chipcard="";
try
{
sqlSelect = "select tarjeta,tarjeta_chipcard from ttbenefi where colectivo = "+ colectivo + " and poliza = "+ poliza + " and orden = "+ orden;
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
if(rs.next())
{
tarjeta = rs.getString("TARJETA");
tarjeta_chipcard = rs.getString("TARJETA_CHIPCARD");
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
if(tarjeta=="0" && tarjeta_chipcard==null){
autorizaciones = new Vector<Long>();
}else{
if (medico==0){
sqlSelect = "select distinct(autorizacion),fecha_creacion from taconaut where tarjeta = '"+ tarjeta +"' order by autorizacion desc";
}else{
sqlSelect = "select distinct(autorizacion),fecha_creacion from taconaut where medico = '"+ medico +"' and tarjeta = '"+ tarjeta +"' order by autorizacion desc";
}
conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
if(rs.next()){
rs.first();
/*int autorizacion = rs.getInt("AUTORIZACION");
autorizaciones.addElement(autorizacion);*/
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
long autorizacion = rs.getLong("AUTORIZACION");
autorizaciones.addElement(autorizacion);
if (pagina!=0) //Se quiere realizar la paginacion
elementosPaginacion++;
}
}
rs.close();
}else{
if (medico==0){
sqlSelect = "select distinct(autorizacion), fecha_creacion from taconaut where tarjeta = '"+ tarjeta_chipcard + "' order by autorizacion desc";
}else{
sqlSelect = "select distinct(autorizacion), fecha_creacion from taconaut where medico = '"+ medico +"' and tarjeta = '"+ tarjeta_chipcard + "' order by autorizacion desc";
}
rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString());
if(rs.next()){
rs.first();
/*int autorizacion = rs.getInt("AUTORIZACION");
autorizaciones.addElement(autorizacion);*/
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
long autorizacion = rs.getInt("AUTORIZACION");
autorizaciones.addElement(autorizacion);
if (pagina!=0) //Se quiere realizar la paginacion
elementosPaginacion++;
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}else{
autorizaciones = new Vector<Long>();
}
}
}
}else{
autorizaciones = new Vector<Long>();
}
}
catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de la autorizacion del paciente: " + e.toString() + " (" + sqlSelect + ")");
}
return autorizaciones;
}
public Vector<Taconaut> ObtenerPrescripcionesPorPaciente(String tarjeta, int medico, int pagina)
{
Vector<Taconaut> vResul = new Vector<Taconaut>();
StringBuffer sqlSelect = new StringBuffer();
int elementosPaginacion=1;
String strMedico = ""+medico;
try
{
sqlSelect.append("Select * from taconaut ");
sqlSelect.append("where tarjeta like ? ");
sqlSelect.append("order by fecha_creacion desc");
Object aCondiciones[] = new Object[1];
aCondiciones[0]=new String(tarjeta);
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, pagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
DES encrypter = new DES(strMedico);
String auto = rs.getString("AUTORIZACION");
/*auto = (auto.length()<8)?"0"+auto:auto;*/
String autoEncriptada = encrypter.encrypt(auto);
Taconaut tacon = new Taconaut();
tacon.setAutorizacion(rs.getString("AUTORIZACION"));
tacon.setAutorizacionEncriptada(autoEncriptada);
tacon.setEspecialidad(rs.getInt("ESPECIALIDAD"));
tacon.setMedico(rs.getInt("MEDICO"));
tacon.setActo(rs.getInt("ACTO"));
tacon.setCantidad(rs.getInt("CANTIDAD"));
tacon.setFechaModificacion(rs.getDate("FECHA_MODIFICACION"));
tacon.setInforme(rs.getString("INFORME"));
tacon.setFromGesigu(rs.getInt("FROM_GESIGU") == 1 ? true : false);
tacon.setFechaModificacion(rs.getDate("FECHA_CREACION"));
vResul.add(tacon);
if (pagina!=0) //Se quiere realizar la paginacion
elementosPaginacion++;
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
}
catch (ExcepcionTarisan e)
{
LogTarisan.logger.log(NivelLog.ERROR, "ExcepcionTarisan: "+e.toString() + " (" + sqlSelect + ")");
} catch (SQLException e) {
LogTarisan.logger.log(NivelLog.ERROR, "Excepcion SQL: "+e.toString() + " (" + sqlSelect + ")");
}
return vResul;
}
}