Files
tarisan_gitea/Fuentes/com/tarisan/control/PersistenciaVTaprescaTaclient.java
2025-06-09 13:37:06 +02:00

272 lines
14 KiB
Java

/*
* Created on 14-dic-2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.tarisan.control;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import com.tarisan.data.Paciente;
import com.tarisan.data.Ttrayos;
import com.tarisan.data.VTaresanaTaclient;
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;
/**
* @author Roumen
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class PersistenciaVTaprescaTaclient {
/**
* 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;
}
/**
* Selecciona los registros de la JOIN entre las tablas TARESANA y ttclient 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 <code>VTaresanaTaclient</code>).
* @throws
*/
public Vector seleccionar(String sqlSelect, int pagina, Object[] aCondiciones) throws ExcepcionTarisan
{
int elementosPaginacion=1;
Vector vResultado = new Vector();
VTaresanaTaclient VtaresanaTaclient = 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()))
{
VtaresanaTaclient = new VTaresanaTaclient();
VtaresanaTaclient.setFecha(rs.getDate("FECHA"));
VtaresanaTaclient.setAutorizacion(rs.getInt("AUTORIZACION"));
VtaresanaTaclient.setNombre(rs.getString("NOMBRE"));
VtaresanaTaclient.setApellidos(rs.getString("APELLIDOS"));
vResultado.addElement(VtaresanaTaclient);
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 tapresca_tarisan (" + sqlSelect + ")");
}
catch (ExcepcionTarisan sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + sqlSelect + ")");
throw (ExcepcionTarisan)sqle;
}
catch(SQLException sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Exception sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
catch(Throwable sqle)
{
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de tapresca_tarisan: " + sqle + " (" + sqlSelect + ")");
throw new ExcepcionTarisan(sqle.getMessage());
}
return vResultado;
}
public Vector listado_analisis_por_prescriptor(int medico, int intPagina)
{
Vector resul = new Vector();
StringBuffer strSql = new StringBuffer();
Object [] aCondiciones = new Object[1];
String consulta = "";
strSql.append("SELECT tapresca_tarisan.fecha, ttclient.nombre, ttclient.apellidos, tapresca_tarisan.autorizacion");
strSql.append(" FROM tapresca_tarisan, ttbenefi, ttclient");
strSql.append(" WHERE tapresca_tarisan.prescriptor=?");
strSql.append(" and tapresca_tarisan.colec=ttbenefi.colectivo");
strSql.append(" and tapresca_tarisan.especialidad=4");
strSql.append(" and tapresca_tarisan.poliza=ttbenefi.poliza");
strSql.append(" and tapresca_tarisan.orden=ttbenefi.orden");
strSql.append(" and ttbenefi.cliente=ttclient.cliente");
strSql.append(" and ttbenefi.fecha_baja is null");
strSql.append(" GROUP BY tapresca_tarisan.fecha, ttclient.nombre, ttclient.apellidos, tapresca_tarisan.autorizacion");
strSql.append(" ORDER BY tapresca_tarisan.fecha DESC, tapresca_tarisan.autorizacion DESC");
aCondiciones[0] = Integer.valueOf(medico);
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_analisis_por_prescriptor): " + e + " (" + consulta + ")");
}
return resul;
}
public Vector listado_diagnostico_gpc_por_cliente(String numafil, int intPagina)
{
Vector resul = new Vector();
StringBuffer strSql = new StringBuffer();
Object [] aCondiciones = new Object[1];
String consulta = "";
strSql.append("select NOMBRE, APELLIDOS,FECHA, AUTORIZACION, PRESCRIPTOR FROM (");
strSql.append("SELECT deCode(novahis.EPISODIOS.TIPO_EPISODIO_PK,1,'URG',2,'CEX','HOSP') as NOMBRE,novahis.r_mexp.desc_exp as APELLIDOS, novahis.EPISODIOS.EPIS_APERTURA_FECH AS FECHA, ");
strSql.append("novahis.r_xexplo.cod_explo AS AUTORIZACION, NOVAHIS.fpersona.CODIGO_PERSONAL PRESCRIPTOR ");
strSql.append("FROM novahis.clientes, novahis.r_xexplo, novahis.r_xrecep, novahis.servicios, novahis.fpersona, novahis.actividad, novahis.episodios, novahis.r_mexp, novahis.Co_cli_planes, novahis.cliente_pagadores ");
strSql.append("WHERE novahis.co_cli_planes.num_afil = ?");
strSql.append(" and novahis.co_cli_planes.CLIPAG_PK = novahis.cliente_pagadores.CLIPAG_PK");
strSql.append(" and novahis.cliente_pagadores.CODIGO_CLIENTE = novahis.r_xrecep.codigo_cliente");
strSql.append(" AND novahis.servicios.codigo_servicio = novahis.r_xrecep.codigo_servicio");
strSql.append(" AND novahis.r_xrecep.cod_recepcion = novahis.r_xexplo.cod_recepcion ");
strSql.append(" AND novahis.r_xrecep.codigo_cliente = novahis.clientes.codigo_cliente");
strSql.append(" AND novahis.r_xrecep.rechazo IS NULL");
strSql.append(" AND novahis.r_xrecep.codigo_personal = novahis.fpersona.codigo_personal");
strSql.append(" AND novahis.r_xrecep.ref_nhactividad = novahis.ACTIVIDAD.ACTIVIDAD_PK");
strSql.append(" AND novahis.ACTIVIDAD.EPIS_PK = novahis.episodios.epis_pk");
strSql.append(" AND novahis.EPISODIOS.CODIGO_CLIENTE = novahis.CLIENTES.CODIGO_CLIENTE");
strSql.append(" AND novahis.R_XEXPLO.COD_RECEPCION = novahis.r_xrecep.cod_recepcion");
strSql.append(" AND novahis.r_xexplo.cod_exp_id = novahis.r_mexp.cod_exp_id)");
aCondiciones[0] = new String(numafil);
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;
}
public Vector listado_rx_por_paciente(String colec, String pol, String ord, Date fecha, int medico, int intPagina) throws SQLException
{
int elementosPaginacion=1;
Vector resul = new Vector();
Ttrayos ttrayos = null;
String fecha_texto = fecha.toString();
String strMedico = ""+medico;
int longitud = colec.length();
for(int i = 0; i < 5 - longitud ; i++)
{
colec = "0" + colec;
}
longitud = pol.length();
for(int i = 0; i < (12 - longitud); i++)
{
pol = "0" + pol;
}
longitud = ord.length();
for(int i = 0; i < (2 - longitud); i++)
{
ord = "0" + ord;
}
String numafil = new String();
numafil = colec + "-" + pol + "-" + ord;
String consulta = "SELECT DISTINCT actividad.epis_pk, r_xrecep.fecha_cita_previa AS fecha, hc.nhc, prest_item.prest_item_Desc AS Prestacion, TRIM (procedencia.nombre_corto) AS prescriptor, -1 as PETICION FROM NOVAHIS.r_xrecep, NOVAHIS.clientes, NOVAHIS.hc, NOVAHIS.fpersona procedencia, NOVAHIS.r_msalas, NOVAHIS.r_xexplo, NOVAHIS.prest_item, NOVAHIS.r_mexp, NOVAHIS.actividad, NOVAHIS.actividad_det, NOVAHIS.co_cli_planes, NOVAHIS.cliente_pagadores, (SELECT hce_registro_form.fecha_reg AS fechacierre, hce_exp_form.exp_form_pk, hce_exp_form.epis_pk FROM NOVAHIS.hce_exp_form, NOVAHIS.hce_formulario, NOVAHIS.hce_registro_form WHERE hce_exp_form.formulario_pk = hce_formulario.formulario_pk AND (hce_formulario.ffamilia_pk = 14 AND (hce_formulario.hce_tipogest_pk IS NULL OR hce_tipogest_pk <> 2)) AND hce_exp_form.exp_form_pk = HCE_REGISTRO_FORM.EXP_FORM_PK AND hce_registro_form.tipo_oper_pk = 10) CierreForm WHERE r_xrecep.fecha_cita_previa >= TO_DATE ('" + fecha_texto +"', 'yyyy-mm-dd') AND r_xrecep.codigo_cliente = clientes.codigo_cliente AND clientes.codigo_cliente = hc.codigo_cliente AND hc.activa_sn = 1 AND r_xrecep.codigo_personal = procedencia.codigo_personal(+) AND r_xrecep.cod_recepcion = r_xexplo.cod_recepcion AND R_XEXPLO.cod_sala_id = R_MSALAS.COD_SALA_ID AND r_xexplo.cod_exp_id = r_mexp.cod_exp_id AND r_mexp.prest_item_pk = prest_item.prest_item_pk AND r_xexplo.cod_exp_id NOT IN (424, 425) AND R_XRECEP.REF_NHACTIVIDAD = actividad_det.actividad_pk AND actividad_det.actividad_pk = actividad.actividad_pk AND actividad.epis_pk = CierreForm.epis_pk(+) AND clientes.codigo_cliente = cliente_pagadores.codigo_cliente AND actividad_det.cod_pagador_pk = cliente_pagadores.cod_pagador_pk AND cliente_pagadores.cod_pagador_pk = 120 AND cliente_pagadores.clipag_activo_sn = 1 AND cliente_pagadores.clipag_pk = co_cli_planes.clipag_pk AND co_cli_planes.num_afil = '"+ numafil +"' UNION SELECT -1 AS EPIS_PK, FECHA, 'TAPRESCA_TARISAN' AS NHC, TTACTMED_GPC.DESCRIPCION_GPC AS PRESTACION, TRIM(TTMEDICO.NOMBRE) || ' ' || TRIM(TTMEDICO.APELLIDOS) AS PRESCRIPTOR, TAPRESCA_TARISAN.AUTORIZACION AS PETICION FROM TAPRESCA_TARISAN, TTACTMED_GPC, TTMEDICO WHERE COLEC = '" + colec + "' AND POLIZA = '" + pol + "' AND ORDEN = '" + ord + "' AND TIPO_PETICION = 3 AND TAPRESCA_TARISAN.ACTO = TTACTMED_GPC.ACTO AND TAPRESCA_TARISAN.ESPECIALIDAD = TTACTMED_GPC.ESPECIALIDAD AND TAPRESCA_TARISAN.PRESCRIPTOR = TTMEDICO.MEDICO AND POLIZA <> '000000000000' ORDER BY FECHA DESC";
/*String consulta = "SELECT DISTINCT actividad.epis_pk, r_xrecep.fecha_cita_previa AS fecha, hc.nhc, prest_item.prest_item_Desc AS Prestacion, TRIM (procedencia.nombre_corto) AS prescriptor FROM NOVAHIS.r_xrecep, NOVAHIS.clientes, NOVAHIS.hc, NOVAHIS.fpersona procedencia, NOVAHIS.r_msalas, NOVAHIS.r_xexplo, NOVAHIS.prest_item, NOVAHIS.r_mexp, NOVAHIS.actividad, NOVAHIS.actividad_det, NOVAHIS.co_cli_planes, NOVAHIS.cliente_pagadores, (SELECT hce_registro_form.fecha_reg AS fechacierre, hce_exp_form.exp_form_pk, hce_exp_form.epis_pk FROM NOVAHIS.hce_exp_form, NOVAHIS.hce_formulario, NOVAHIS.hce_registro_form WHERE hce_exp_form.formulario_pk = hce_formulario.formulario_pk AND (hce_formulario.ffamilia_pk = 14 AND (hce_formulario.hce_tipogest_pk IS NULL OR hce_tipogest_pk <> 2)) AND hce_exp_form.exp_form_pk = HCE_REGISTRO_FORM.EXP_FORM_PK AND hce_registro_form.tipo_oper_pk = 10) CierreForm WHERE r_xrecep.fecha_cita_previa >= TO_DATE ('2015-01-01', 'yyyy-mm-dd') AND r_xrecep.codigo_cliente = clientes.codigo_cliente AND clientes.codigo_cliente = hc.codigo_cliente AND hc.activa_sn = 1 AND r_xrecep.codigo_personal = procedencia.codigo_personal(+) AND r_xrecep.cod_recepcion = r_xexplo.cod_recepcion AND R_XEXPLO.cod_sala_id = R_MSALAS.COD_SALA_ID AND r_xexplo.cod_exp_id = r_mexp.cod_exp_id AND r_mexp.prest_item_pk = prest_item.prest_item_pk AND r_xexplo.cod_exp_id NOT IN (424, 425) AND R_XRECEP.REF_NHACTIVIDAD = actividad_det.actividad_pk AND actividad_det.actividad_pk = actividad.actividad_pk AND actividad.epis_pk = CierreForm.epis_pk(+) AND clientes.codigo_cliente = cliente_pagadores.codigo_cliente AND actividad_det.cod_pagador_pk = cliente_pagadores.cod_pagador_pk AND cliente_pagadores.cod_pagador_pk = 120 AND cliente_pagadores.clipag_activo_sn = 1 AND cliente_pagadores.clipag_pk = co_cli_planes.clipag_pk AND co_cli_planes.num_afil = '"+ numafil +"' UNION SELECT -1 AS EPIS_PK, FECHA, 'TAPRESCA_TARISAN' AS NHC, TTACTMED_GPC.DESCRIPCION_GPC AS PRESTACION, TRIM(TTMEDICO.NOMBRE) || ' ' || TRIM(TTMEDICO.APELLIDOS) AS PRESCRIPTOR FROM TAPRESCA_TARISAN, TTACTMED_GPC, TTMEDICO WHERE COLEC = '" + colec + "' AND POLIZA = '" + pol + "' AND ORDEN = '" + ord + "' AND TIPO_PETICION = 3 AND TAPRESCA_TARISAN.ACTO = TTACTMED_GPC.ACTO AND TAPRESCA_TARISAN.ESPECIALIDAD = TTACTMED_GPC.ESPECIALIDAD AND TAPRESCA_TARISAN.PRESCRIPTOR = TTMEDICO.MEDICO ORDER BY FECHA DESC";*/
try {
Connection conexion = ParametrosConfiguracion.dataStore.obtenerConexion();
ResultSet rs = ParametrosConfiguracion.dataStore.seleccionar(conexion, consulta);
objPaginacion.inicializarPaginacion(rs);
if (objPaginacion.getNumeroRegistrosTotales()!=0)
{
objPaginacion.realizarPaginacion(rs, intPagina);
while(rs.next() && (elementosPaginacion <= Paginacion.getFilasPorPagina()))
{
DES encrypter = new DES(strMedico);
/*auto = (auto.length()<8)?"0"+auto:auto;*/
String petEncriptada = "0";
if (rs.getString("PETICION").compareTo("0")!=0){
petEncriptada = encrypter.encrypt(rs.getString("PETICION"));
}
ttrayos = new Ttrayos();
ttrayos.setEpisodio(rs.getInt("EPIS_PK"));
ttrayos.setNhc(rs.getString("NHC"));
ttrayos.setPrueba(rs.getString("PRESTACION"));
ttrayos.setFecha(rs.getDate("FECHA"));
ttrayos.setPrescriptor(rs.getString("PRESCRIPTOR"));
ttrayos.setPeticion(rs.getString("PETICION"));
ttrayos.setPeticionEncriptada(petEncriptada);
resul.addElement(ttrayos);
if (intPagina!=0) //Se quiere realizar la paginacion
elementosPaginacion++;
}
}
rs.close();
ParametrosConfiguracion.dataStore.liberarConexion(conexion);
LogTarisan.logger.log(NivelLog.DEBUG, "Seleccionados " + resul.size() + " registros de Tablas del HIS (" + consulta + ")");
} catch (ExcepcionTarisan e) {
LogTarisan.logger.log(NivelLog.ERROR, "Error en la selección de Tablas del HIS (listado_rx_por_paciente): " + e + " (" + consulta + ")");
}
return resul;
}
}