/** * @(#) PersistenciaPaciente.java */ package com.tarisan.control; import com.tarisan.data.Paciente; import com.tarisan.data.Tarjeta; import com.tarisan.excepcion.*; import com.tarisan.log.*; import java.sql.*; import java.util.Calendar; /** * Controla los accesos a la persistencia para la entidad Paciente. * @author Dpto. Informática. * @version 1.0, 24/09/2003 */ public class PersistenciaPaciente implements Constantes { /** * Selecciona el primer registro de la tabla ttbenefi encontrado para la tarjeta de paciente pasada por el médico. * @param tarjeta El objeto Tarjeta para el que se realiza la búsqueda. * @return El Paciente encontrado en la tabla de beneficiarios, * o null si se produce alguna excepción. * @throws */ public Object seleccionar(Tarjeta tarjeta, int medico) throws ExcepcionTarisan { Object retorno = null; Paciente paciente = null; StringBuffer sqlSelect = new StringBuffer(); try { sqlSelect.append("SELECT ttbenefi.TARJETA"); sqlSelect.append(", ttbenefi.CLIENTE"); sqlSelect.append(", ttbenefi.FECHA_BAJA"); sqlSelect.append(", ttbenefi.LPD_AUT"); sqlSelect.append(", ttbenefi.ENTIDAD"); sqlSelect.append(", ttclient.SEXO"); sqlSelect.append(", ttclient.FECHA_NACIMIENTO"); sqlSelect.append(" FROM ttbenefi, ttclient"); sqlSelect.append(" WHERE TARJETA = ? AND"); sqlSelect.append(" ttbenefi.cliente = ttclient.cliente"); sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) "); //sqlSelect.append(" AND POLIZA = ?"); //sqlSelect.append(" AND ORDEN = ?"); Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); Object aCondiciones[] = new Object[1]; aCondiciones[0] = Integer.valueOf(tarjeta.getTarjeta()); //aCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); //aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); @SuppressWarnings("unused") int numTarjeta = 0; int codCliente = 0; Date fecBaja = null; String autorizado = ""; String sexo = ""; ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { paciente = new Paciente(); tarjeta.setEntidadIMQ(rs.getInt("ENTIDAD")); paciente.setTarjeta(tarjeta); numTarjeta = rs.getInt("TARJETA"); codCliente = rs.getInt("CLIENTE"); fecBaja = rs.getDate("FECHA_BAJA"); autorizado = rs.getString("LPD_AUT"); sexo = rs.getString("SEXO"); paciente.setSexo(sexo); paciente.setEdad(com.tarisan.util.Utilidades.calcularEdad(rs.getDate("FECHA_NACIMIENTO"), Calendar.getInstance().getTime())); } rs.close(); Calendar calendario = Calendar.getInstance(); /*if((numTarjeta != tarjeta.getTarjeta()) && (tarjeta.getTarjeta() > 0)) { //La tarjeta del beneficiario (que no es Visa) está caducada (se ha emitido una posterior) retorno = TARJETA_CADUCADA; } else */ if((fecBaja != null) && (calendario.getTime().after((java.util.Date)fecBaja))) { //esa tarjeta está de baja, vamos a buscar por col-pol-orden a ver si tiene una activa sqlSelect.append("SELECT TARJETA"); sqlSelect.append(", CLIENTE"); sqlSelect.append(", FECHA_BAJA"); sqlSelect.append(", LPD_AUT"); sqlSelect.append(" FROM ttbenefi"); sqlSelect.append(" WHERE COLECTIVO = ?"); sqlSelect.append(" AND POLIZA = ?"); sqlSelect.append(" AND ORDEN = ?"); sqlSelect.append(" AND ENTIDAD = ?"); sqlSelect.append(" AND (fecha_baja is null or fecha_baja > sysdate) "); Object bCondiciones[] = new Object[4]; bCondiciones[0] = Long.valueOf(tarjeta.getColectivo()); bCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); bCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); bCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ()); int numTarjeta2 = 0; rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { numTarjeta2 = rs.getInt("TARJETA"); } rs.close(); if(numTarjeta2 != 0) { //La tarjeta pasada está de baja, pero hay otra de alta: tarjeta caducada. retorno = TARJETA_CADUCADA; } else { //El beneficiario está dado de baja retorno = TARJETA_BAJA; } } else if (this.clienteConMorosidad(tarjeta.getColectivo(), tarjeta.getPoliza(), medico)) { //La tarjeta del paciente está suspendida (es moroso) retorno = TARJETA_SUSPENSO; } else if ((ParametrosConfiguracion.autorizacion.trim().toUpperCase().compareTo("S") == 0)) { //El sistema comprobará la autorización para mostrar los resultados de las analíticas paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico)); if(autorizado == null) { paciente.setAutorizado("N"); } else { if(autorizado.compareTo("S")==0) paciente.setAutorizado(autorizado); else paciente.setAutorizado("N"); } retorno = paciente; } else { //La tarjeta del beneficiario es correcta y no comprobaremos si el paciente ha firmado la autorización paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico)); paciente.setAutorizado("S"); retorno = paciente; } ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el paciente " + paciente + " de la tabla ttbenefi (" + sqlSelect + ")"); } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de paciente: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(); } return retorno; } public Object seleccionarColPolOrd(Tarjeta tarjeta, int medico) throws ExcepcionTarisan { Object retorno = null; /*Paciente paciente = null;*/ Paciente paciente = new Paciente(); StringBuffer sqlSelect = new StringBuffer(); boolean encontrado = false; try { sqlSelect.append("SELECT ttbenefi.TARJETA"); sqlSelect.append(", ttbenefi.CLIENTE"); sqlSelect.append(", ttbenefi.FECHA_BAJA"); sqlSelect.append(", ttbenefi.LPD_AUT"); sqlSelect.append(", ttbenefi.ENTIDAD"); sqlSelect.append(", ttclient.SEXO"); sqlSelect.append(", ttclient.FECHA_NACIMIENTO"); sqlSelect.append(" FROM ttbenefi, ttclient"); sqlSelect.append(" WHERE COLECTIVO = ? AND"); sqlSelect.append(" POLIZA = ? AND"); sqlSelect.append(" ORDEN = ? AND"); sqlSelect.append(" ttbenefi.cliente = ttclient.cliente"); sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) "); //sqlSelect.append(" AND POLIZA = ?"); //sqlSelect.append(" AND ORDEN = ?"); Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); Object aCondiciones[] = new Object[3]; aCondiciones[0] = Long.valueOf(tarjeta.getColectivo()); aCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); //aCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); //aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); @SuppressWarnings("unused") int numTarjeta = 0; int codCliente = 0; Date fecBaja = null; String autorizado = ""; String sexo = ""; ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { paciente = new Paciente(); tarjeta.setEntidadIMQ(rs.getInt("ENTIDAD")); paciente.setTarjeta(tarjeta); numTarjeta = rs.getInt("TARJETA"); codCliente = rs.getInt("CLIENTE"); fecBaja = rs.getDate("FECHA_BAJA"); autorizado = rs.getString("LPD_AUT"); sexo = rs.getString("SEXO"); paciente.setSexo(sexo); if(rs.getDate("FECHA_NACIMIENTO") == null){ paciente.setEdad(99); }else { paciente.setEdad(com.tarisan.util.Utilidades.calcularEdad(rs.getDate("FECHA_NACIMIENTO"), Calendar.getInstance().getTime())); } encontrado = true; } rs.close(); Calendar calendario = Calendar.getInstance(); /*if((numTarjeta != tarjeta.getTarjeta()) && (tarjeta.getTarjeta() > 0)) { //La tarjeta del beneficiario (que no es Visa) está caducada (se ha emitido una posterior) retorno = TARJETA_CADUCADA; } else */ if(((fecBaja != null) && (calendario.getTime().after((java.util.Date)fecBaja)) ) || (fecBaja == null && encontrado == false)) { //esa tarjeta está de baja, vamos a buscar por col-pol-orden a ver si tiene una activa StringBuffer sqlSelect2 = new StringBuffer(); sqlSelect2.append("SELECT TARJETA"); sqlSelect2.append(", CLIENTE"); sqlSelect2.append(", FECHA_BAJA"); sqlSelect2.append(", LPD_AUT"); sqlSelect2.append(" FROM ttbenefi"); sqlSelect2.append(" WHERE COLECTIVO = ?"); sqlSelect2.append(" AND POLIZA = ?"); sqlSelect2.append(" AND ORDEN = ?"); sqlSelect2.append(" AND ENTIDAD = ?"); sqlSelect2.append(" AND (fecha_baja is null or fecha_baja > sysdate) "); Object bCondiciones[] = new Object[4]; bCondiciones[0] = Long.valueOf(tarjeta.getColectivo()); bCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); bCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); bCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ()); int numTarjeta2 = 0; ResultSet rs2 = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect2.toString(), bCondiciones); while(rs2.next()) { numTarjeta2 = rs.getInt("TARJETA"); } rs2.close(); if(numTarjeta2 != 0) { //La tarjeta pasada está de baja, pero hay otra de alta: tarjeta caducada. retorno = TARJETA_CADUCADA; } else { //El beneficiario está dado de baja retorno = TARJETA_BAJA; } } else if (this.clienteConMorosidad(tarjeta.getColectivo(), tarjeta.getPoliza(), medico)) { //La tarjeta del paciente está suspendida (es moroso) retorno = TARJETA_SUSPENSO; } else if ((ParametrosConfiguracion.autorizacion.trim().toUpperCase().compareTo("S") == 0)) { //El sistema comprobará la autorización para mostrar los resultados de las analíticas paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico)); if(autorizado == null) { paciente.setAutorizado("N"); } else { if(autorizado.compareTo("S")==0) paciente.setAutorizado(autorizado); else paciente.setAutorizado("N"); } retorno = paciente; } else { //La tarjeta del beneficiario es correcta y no comprobaremos si el paciente ha firmado la autorización paciente.setNombre(this.obtenerNombreAsegurado(codCliente,medico)); paciente.setAutorizado("S"); retorno = paciente; } ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el paciente " + paciente.getNombre() + " de la tabla ttbenefi (" + sqlSelect.toString() + ")"); } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de paciente: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(); } return retorno; } /** * Comprueba en la tabla TARECOFI si el cliente buscado tiene morosidad o no. * @param colectivo El número de colectivo. * @param póliza El número de póliza. * @return El valor booleano según sea o no moroso el cliente. * @throws ExcepcionTarisan */ private boolean clienteConMorosidad(long colectivo, double poliza, int medico) throws ExcepcionTarisan { boolean retorno; StringBuffer sqlSelect = new StringBuffer(); try { sqlSelect.append("SELECT PENDIENTE"); sqlSelect.append(" FROM TARECOFI, TTCOLECT"); sqlSelect.append(" WHERE COLEC = ?"); sqlSelect.append(" AND POLIZA = ?"); sqlSelect.append(" AND TARECOFI.ENTIDAD = TTCOLECT.ENTIDAD"); sqlSelect.append(" AND TARECOFI.COLEC = TTCOLECT.COLECTIVO"); sqlSelect.append(" AND COPAGO <> 3"); /* Se excluyen los colectivos que tienen copago transferido (TTCOLECT.COPAGO = 3) */ Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); Object aCondiciones[] = new Object[2]; aCondiciones[0] = Long.valueOf(colectivo); aCondiciones[1] = Double.valueOf(poliza); double importe = -1.0; ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { importe = rs.getDouble("PENDIENTE"); } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); if (importe >= 0.0) { retorno = true; } else { retorno = false; } LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado la morosidad del cliente: " + importe + " de la tabla TARECOFI (" + sqlSelect + ")"); } catch(SQLException sqle) { retorno = false; LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección de morosidad del cliente: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(); } return retorno; } public String obtenerNombreAsegurado(Tarjeta tarj, int medico) { String resul =""; StringBuffer sqlSelect = new StringBuffer(); try { //SELECT * FROM TTBENEFI WHERE COLECTIVO=3 AND POLIZA=9.5957400185E11 AND ENTIDAD=5 AND ORDEN = 1 sqlSelect.append("SELECT CLIENTE FROM TTBENEFI WHERE COLECTIVO=? AND POLIZA=? AND ENTIDAD=? AND ORDEN = ?"); Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); Object aCondiciones[] = new Object[4]; aCondiciones[0] = Long.valueOf(tarj.getColectivo()); aCondiciones[1] = Long.valueOf(tarj.getPoliza()); aCondiciones[2] = Integer.valueOf(tarj.getEntidadIMQ()); aCondiciones[3] = Integer.valueOf(tarj.getBeneficiario()); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { resul = obtenerNombreAsegurado(rs.getInt("CLIENTE"), medico); } LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el cliente: " + resul + " de la tabla TTBENEFI (" + sqlSelect + ")"); } catch (Exception e) { LogTarisan.logger.log(NivelLog.ERROR, medico + " - PersistenciaPaciente - obtenerNombreAsegurado(Tarjeta) - Excepcion "+e.toString()); } catch (ExcepcionTarisan e) { // TODO Auto-generated catch block e.printStackTrace(); } return resul; } /** * Recupera el nombre y apellidos del cliente correspondiente a la tarjeta de paciente. * @param codCliente Código del cliente correspondiente a la tarjeta del paciente. * @return El nombre y apellidos del cliente. * @throws */ private String obtenerNombreAsegurado(int codCliente, int medico) throws ExcepcionTarisan { /*StringBuffer nombre = new StringBuffer();*/ String nombre = ""; StringBuffer sqlSelect = new StringBuffer(); try { sqlSelect.append("SELECT NOMBRE"); sqlSelect.append(", APELLIDOS"); sqlSelect.append(" FROM ttclient"); sqlSelect.append(" WHERE CLIENTE = ?"); Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); Object aCondiciones[] = new Object[1]; aCondiciones[0] = Integer.valueOf(codCliente); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); while(rs.next()) { if(rs.getString("APELLIDOS").contains(rs.getString("NOMBRE").trim())) { /*nombre.append(rs.getString("APELLIDOS"));*/ nombre = rs.getString("APELLIDOS"); } else { /*nombre.append(rs.getString("NOMBRE")); nombre.append(" "); nombre.append(rs.getString("APELLIDOS"));*/ nombre = rs.getString("NOMBRE") + " " + rs.getString("APELLIDOS"); } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el cliente: " + nombre/*.toString()*/ + " de la tabla ttclient (" + sqlSelect + ")"); } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error en la selección del cliente: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(); } /*return nombre.toString();*/ return nombre; } /** * Marca el flag de autorización con el valor 'S' a la firma de la autorización por parte del beneficiario. * @param tarjeta El objeto Tarjeta del paciente beneficiario. * @return El resultado de la actualización en base de datos. * @throws * * Se cambia TABENEFI a vista materializada, no se puede hacer update en ella. Se requiere que el médico * lleve el papel de la autorización firmada al IMQ. */ public boolean firmarAutorizacion(Tarjeta tarjeta, int medico) throws ExcepcionTarisan { boolean resultado = true; /* Connection conexion = null; StringBuffer sqlUpdate = new StringBuffer(); sqlUpdate.append("UPDATE ttbenefi"); sqlUpdate.append(" SET LPD_AUT = ?"); sqlUpdate.append(" WHERE COLECTIVO = ?"); sqlUpdate.append(" AND POLIZA = ?"); sqlUpdate.append(" AND ORDEN = ?"); sqlUpdate.append(" AND ENTIDAD = ?"); try { Object[] aValores = new Object[1]; aValores[0] = "S"; Object[] aCondiciones = new Object[4]; aCondiciones[0] = Integer.valueOf(tarjeta.getColectivo()); aCondiciones[1] = Double.valueOf(tarjeta.getPoliza()); aCondiciones[2] = Integer.valueOf(tarjeta.getBeneficiario()); aCondiciones[3] = Integer.valueOf(tarjeta.getEntidadIMQ()); resultado = ParametrosConfiguracion.dataStore.actualizar(sqlUpdate.toString(), aValores, aCondiciones); } catch(ExcepcionTarisan ex) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la actualización de la firma del beneficiario " + tarjeta + ": " + ex + " (" + sqlUpdate + ")"); throw ex; }*/ LogTarisan.logger.log(NivelLog.INFO, medico + " - Ya no se actualiza ttbenefi por que es vista materializada "); return resultado; } public boolean clienteCompatible(int medico) { boolean esCompatible = false; return esCompatible; } public Calendar obtenerFechaNacimiento(Tarjeta tarjeta, int medico) { Calendar fecnac = Calendar.getInstance(); fecnac.set(Calendar.DAY_OF_MONTH, 1); fecnac.set(Calendar.MONTH, 1); fecnac.set(Calendar.YEAR, 1900); Connection conexion; try { conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); StringBuffer sqlSelect = new StringBuffer(); sqlSelect.append("Select fecha_nacimiento "); sqlSelect.append("from ttbenefi, ttclient "); sqlSelect.append("where ttclient.cliente = ttbenefi.cliente "); sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) "); Object[] aCondiciones = new Object[1]; if(tarjeta.getTarjeta()==0) { sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)"); aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado()); } else { sqlSelect.append("and ttbenefi.tarjeta = ?"); aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta()); } ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); try { while(rs.next()) { if(rs.getDate("fecha_nacimiento") != null) fecnac.setTime(rs.getDate("fecha_nacimiento")); } rs.close(); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionada la fecha de nacimiento: " + fecnac + " del cliente: " + tarjeta.getTarjetaDesplazado() + "/" + tarjeta.getTarjeta() + "de la tabla ttbenefi (" + sqlSelect + ")"); } catch (SQLException e) { ParametrosConfiguracion.dataStore.liberarConexion(conexion); } ParametrosConfiguracion.dataStore.liberarConexion(conexion); } catch (ExcepcionTarisan e1) { LogTarisan.logger.log(NivelLog.ERROR, medico + " - Error al obtener la fecha de nacimiento de la tarjeta: "+tarjeta); } return fecnac; } public String obtenerNIF(Tarjeta tarjeta, int medico) throws ExcepcionTarisan { String nif = ""; Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); StringBuffer sqlSelect = new StringBuffer(); sqlSelect.append("Select nif "); sqlSelect.append("from ttbenefi, ttclient "); sqlSelect.append("where ttclient.cliente = ttbenefi.cliente "); sqlSelect.append(" and (ttbenefi.fecha_baja is null or ttbenefi.fecha_baja > sysdate) "); Object[] aCondiciones = new Object[1]; if(tarjeta.getTarjeta()==0) { sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)"); aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado()); } else { sqlSelect.append("and ttbenefi.tarjeta = ?"); aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta()); } ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); try { while(rs.next()) { nif = rs.getString("nif"); } rs.close(); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Seleccionado el nif: " + nif + "del cliente: " + tarjeta.getTarjeta() + " de la tabla ttclient (" + sqlSelect + ")"); } catch (SQLException e) { ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString()); } ParametrosConfiguracion.dataStore.liberarConexion(conexion); return nif; } public String obtenerDomicilio(Tarjeta tarjeta, int medico) throws ExcepcionTarisan { String direccion = ""; Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); StringBuffer sqlSelect = new StringBuffer(); sqlSelect.append("select ttclient.CP, ttclient.DIRECCION, ttclient.POBLACION"); sqlSelect.append(" from ttclient, ttbenefi"); sqlSelect.append(" where ttbenefi.CLIENTE = ttclient.CLIENTE "); Object[] aCondiciones = new Object[1]; if(tarjeta.getTarjeta()==0) { sqlSelect.append("and trim(ttbenefi.tarjeta_chipcard) = trim(?)"); aCondiciones[0]=new String(tarjeta.getTarjetaDesplazado()); } else { sqlSelect.append("and ttbenefi.tarjeta = ?"); aCondiciones[0]=Integer.valueOf(tarjeta.getTarjeta()); } ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); try{ while(rs.next()) { direccion = rs.getString("DIRECCION").trim() + ", CP: " + rs.getString("CP").trim() + ". " + rs.getString("POBLACION").trim(); LogTarisan.logger.log(NivelLog.DEBUG, medico + " - Obtenida dirección: "+direccion); } rs.close(); } catch (SQLException e) { ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString()); } ParametrosConfiguracion.dataStore.liberarConexion(conexion); return direccion; } public boolean tieneDental(String chipCard, int medico) throws ExcepcionTarisan { boolean dental = false; Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); StringBuffer sqlSelect = new StringBuffer(); sqlSelect.append("Select ttbenefi.COLECTIVO "); sqlSelect.append("from ttbenefi, TTCOLECT "); sqlSelect.append("where ttbenefi.cliente in (select cliente from ttbenefi where tarjeta_chipcard = '" + chipCard + "') "); sqlSelect.append(" AND TTCOLECT.COLECTIVO = TTBENEFI.COLECTIVO "); sqlSelect.append(" AND TTCOLECT.CONTRATO = 723 "); sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)"); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString()); try { if(rs.next()) { dental = true; } rs.close(); } catch (SQLException e) { ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString()); } ParametrosConfiguracion.dataStore.liberarConexion(conexion); return dental; } public boolean tieneSalud(int entidad, long colectivo, int medico) throws ExcepcionTarisan { boolean salud = false; Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); StringBuffer sqlSelect = new StringBuffer(); sqlSelect.append("Select ttcolect.CONTRATO "); sqlSelect.append("from ttbenefi, TTCOLECT "); sqlSelect.append(" WHERE TTCOLECT.ENTIDAD = ? "); sqlSelect.append(" AND TTCOLECT.COLECTIVO = ? "); sqlSelect.append(" AND TTCOLECT.COLECTIVO = TTBENEFI.COLECTIVO "); sqlSelect.append(" AND TTCOLECT.ENTIDAD = TTBENEFI.ENTIDAD "); sqlSelect.append(" AND TTCOLECT.CONTRATO <> 723 "); sqlSelect.append(" and (TTBENEFI.FECHA_BAJA > sysdate OR TTBENEFI.FECHA_BAJA IS NULL)"); Object aCondiciones[] = new Object[2]; aCondiciones[0] = Integer.valueOf(entidad); aCondiciones[1] = Long.valueOf(colectivo); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect.toString(), aCondiciones); try { if(rs.next()) { salud = true; } rs.close(); } catch (SQLException e) { ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.ERROR, medico + " - ERROR. "+e.toString()); } ParametrosConfiguracion.dataStore.liberarConexion(conexion); return salud; } }