1398 lines
50 KiB
Java
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;
|
|
}
|
|
|
|
|
|
} |