/** * @(#) PersistenciaTamovmpo.java */ package com.tarisan.control; import com.tarisan.data.Tamovmpo; import com.tarisan.log.*; import com.tarisan.util.Utilidades; import com.tarisan.excepcion.ExcepcionTarisan; import java.sql.*; import java.util.Vector; /** * Controla los accesos a la persistencia para la entidad Tamovmpo. * @author Dpto. Informática. * @version 1.0, 24/09/2003 */ public class PersistenciaTamovmpo { /** * El objeto Paginacion que controla el número de filas a mostrar por cada página. */ private Paginacion objPaginacion = new Paginacion(); /** * Obtiene el valor del objeto Paginacion para saber que página se está visualizando. * @return El objeto Paginacion. */ public Paginacion getPaginacion() { return objPaginacion; } /** * Selecciona los registros de la tabla TAMOVMPO en función de la sentencia SELECT indicada. * @param sqlSelect La sentencia SELECT de selección. * @param pagina Número de página a mostrar. * @param aCondiciones Array que contiene los parámetros utilizados en la sentencia SELECT. * @return El Vector con los registros seleccionados (todos pertenencientes a la clase Tamovmpo). * @throws */ public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan { int elementosPaginacion=1; Vector vResultado = new Vector(); Tamovmpo tamovmpo = null; try { Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, sqlSelect, aCondiciones); objPaginacion.inicializarPaginacion(rs); if (objPaginacion.getNumeroRegistrosTotales()!=0) { objPaginacion.realizarPaginacion(rs, pagina); while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina())) { tamovmpo = new Tamovmpo(); tamovmpo.setFecha(rs.getDate("FECHA")); tamovmpo.setTexto(rs.getString("TEXTO")); vResultado.addElement(tamovmpo); if (pagina!=0) //Se quiere realizar la paginacion elementosPaginacion++; } } rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + vResultado.size() + " registros de la tabla TAMOVMPO (" + sqlSelect + ")"); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return vResultado; } /** * Obtiene el último valor del campo 'numero' de la tabla TAMOVMPO para el médico y paciente indicado. * @param medico Código del médico. * @param colectivo Número de colectivo. * @param póliza Número de póliza. * @param beneficiario Número de beneficiario de la póliza. * @param fecha Fecha en la que se desea actualizar el historial del paciente. * @return El último valor del campo 'numero' para el médico y paciente indicado. * @throws */ public int obtenerUltimoNumero(int medico, long colectivo, double poliza, int beneficiario, java.sql.Date fecha) throws ExcepcionTarisan { StringBuffer strSql = new StringBuffer(); Object[] aCondiciones = new Object[5]; int intUltimoNumero=0; try { strSql.append("SELECT MAX(NUMERO) AS ULTIMO_NUMERO"); strSql.append(" FROM TAMOVMPO"); strSql.append(" WHERE MEDICO=?"); strSql.append(" AND COLEC=?"); strSql.append(" AND POLIZA=?"); strSql.append(" AND ORDEN=?"); strSql.append(" AND FECHA=?"); aCondiciones[0] = Integer.valueOf(medico); aCondiciones[1] = Long.valueOf(colectivo); aCondiciones[2] = new Double (poliza); aCondiciones[3] = Integer.valueOf(beneficiario); aCondiciones[4] = fecha; Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion(); ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, strSql.toString(), aCondiciones); if (rs.next()) intUltimoNumero=rs.getInt("ULTIMO_NUMERO"); rs.close(); ParametrosConfiguracion.dataStore.liberarConexion(conexion); LogTarisan.logger.log(NivelLog.DEBUG, "El valor del campo 'numero' obtenido de la tabla TAMOVMPO es:" + intUltimoNumero ); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + strSql.toString() + ")"); throw (ExcepcionTarisan)sqle; } catch(SQLException sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + strSql.toString() + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + strSql.toString() + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de TAMOVMPO: " + sqle + " (" + strSql.toString() + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } return intUltimoNumero; } /** * Añade a la tabla TAMOVMPO un nuevo registro según la sentencia INSERT indicada. * @param sqlSelect La sentencia INSERT. * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia. * @throws */ public void insertarMovimiento(String sqlSelect, Object[] aValores) throws ExcepcionTarisan { try { ParametrosConfiguracion.dataStore.insertar(sqlSelect, aValores); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } } /** * Añade a la tabla TAMOVMPO un nuevo registro según la sentencia INSERT indicada. * @param sqlSelect La sentencia INSERT. * @param aValores Array que contiene los valores de los parámetros utilizados en la sentencia. * @param conexion La conexión por la que se ejecuta la sentencia. Utilizado para el uso transacciones. * @throws */ public void insertarMovimiento(String sqlSelect, Object[] aValores, Connection conexion) throws ExcepcionTarisan { try { ParametrosConfiguracion.dataStore.insertar(sqlSelect, aValores, conexion); } catch (ExcepcionTarisan sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw (ExcepcionTarisan)sqle; } catch(Exception sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } catch(Throwable sqle) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la insercion de TAMOVMPO: " + sqle + " (" + sqlSelect + ")"); throw new ExcepcionTarisan(sqle.getMessage()); } } public Vector listado_historia_paciente(int medico, long colectivo, double poliza, int orden, int intPagina) { Vector resul = new Vector(); StringBuffer strSql = new StringBuffer(); Object [] aCondiciones = new Object[4]; String consulta = ""; strSql.append("SELECT fecha, texto"); strSql.append(" FROM tamovmpo"); strSql.append(" WHERE medico=?"); strSql.append(" and colec=?"); strSql.append(" and poliza=?"); strSql.append(" and orden=?"); strSql.append(" ORDER BY fecha DESC"); aCondiciones[0] = Integer.valueOf(medico); aCondiciones[1] = Long.valueOf(colectivo); aCondiciones[2] = Double.valueOf(poliza); aCondiciones[3] = Integer.valueOf(orden); try { resul = this.seleccionar(strSql.toString(), intPagina, aCondiciones); consulta = Utilidades.obtenerSentenciaSQL(strSql, null, aCondiciones); } catch (ExcepcionTarisan e) { LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tapresca-taclient (listado_diagnostico_gpc_por_cliente): " + e + " (" + consulta + ")"); } return resul; } }