Saltar a contenido

Comunes

Servicio Web para REUS

REUS (Reclamaciones y Sugerencias). Aplicación de la Gerencia Regional de la Salud (Sacyl).

Contexto

La aplicación REUS anteriormente pertenecía a informática de la Secretaría General. Actualmente es una aplicación de la GRS.

Esta aplicación usa datos de Centros sanitarios (CESA y COMU). Ahora consulta estos datos accediendo directamente a la base de datos, mediante dblinks entre las bases de datos de GRS y las nuestras.

Se quiere desacoplar los sistemas de GRS y los de la Secretaría General, de forma que sea necesario que se conecte a nuestras bases de datos.

La idea es es ofrecer unos servicios web que les provean todos los datos necesarios. Lo que van a hacer es replicar en su sistema las tablas necesarias y actualizarlas mediante consultas periódicas (posiblemente de forma manual) a los servicios web.

Los servicios web que necesitan serían:

  • De comunes:
  • Provincias
  • Municipios
  • Localidades
  • Actividades
  • De centros:
  • Listado de centros con sus actividades

Las consultas sql que usan en la aplicación son:

/* PROVINCIAS */

select p from ComuProvincias p where p.cProvId=:provinciaId // JPA
select p from ComuProvincias p // JPA
select p from ComuProvincias p where p.cComunidadId = '17' // JPA

/* MUNICIPIOS */
select p from ComuMunicipios p where p.comuMunicipiosPK.cProvId=:provId and p.comuMunicipiosPK.cMunId=:munId // JPA
select p from ComuMunicipios p where p.comuMunicipiosPK.cProvId=:id order by p.dMun ASC // JPA

/* LOCALIDADES */
select * from comu_cs.comu_localidades where c_entc_id || c_ents_id  || c_mun_id || c_prov_id  = ?1
select p from ComuLocalidades p where p.comuLocalidadesPK.cProvId=:provId and p.comuLocalidadesPK.cMunId=:munId and p.comuLocalidadesPK.cEntcId=:entcId and p.comuLocalidadesPK.cEntsId=:entsId // JPA
select p from ComuLocalidades p where p.comuLocalidadesPK.cProvId=:id order by p.dLocal ASC // JPA

/* ACTIVIDADES */

Select ca.C_ACTIVIDAD_ID, a.D_ACTIVIDAD From COMU_V_CACTIVIDADES ca, COMU_ACTIVIDADES a Where ca.C_CENTRO_ID=?1 And ca.C_ACTIVIDAD_ID=a.C_ACTIVIDAD_ID  And a.B_BORRADO='N' Order By a.D_ACTIVIDAD
Select C_ACTIVIDAD_ID, D_ACTIVIDAD From COMU_ACTIVIDADES Where  B_BORRADO='N' And B_ASISTENCIAL=?1 Order By D_ACTIVIDAD
Select C_ACTIVIDAD_ID, D_ACTIVIDAD From COMU_ACTIVIDADES Where  B_BORRADO='N' And C_ACTIVIDAD_ID=?1

/* CENTROS */

-- Por CENTRO_ID
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where c.c_centro_id = ?1
// Lista Centros de Salud (ABIERTOS y CERRADOS)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where c.c_depenfuncional_id = 2  and c.c_tipocentro_id     = 4  and c.c_prov_id            = ?1  order by d_centro
-- Lista consultorios
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where c.c_depenfuncional_id = 2  and c.c_tipocentro_id     = 5  and c.c_prov_id            = ?1  order by d_centro
-- Lista hospitales
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c where  c.c_depenfuncional_id in (2,3,7)  and c.c_tipocentro_id     in (1,3,17,18,21)  and c.c_prov_id            = ?1   order by d_centro
-- Centros de especialidades
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c where c.c_depenfuncional_id in (2,8,16)  and c.c_tipocentro_id     in (7,8,28,32,31)  and c.c_prov_id            = ?1  order by d_centro
-- Emergencias
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where  c.c_depenfuncional_id = 2   and c.c_tipocentro_id = 11  order by d_centro
-- Otros
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where c.D_CENTRO LIKE 'OTROS CENTROS%' and c.c_prov_id            = ?1  order by d_centro
-- Privados
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where (c.c_depenfuncional_id in (9,10,11,12,13,14,15) OR c.D_CENTRO like 'OTROS CENTROS%')  and c.c_prov_id            = ?1  order by d_centro
-- Puntos de vacunación
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from cesa.cesa_centros c  where (c.c_depenfuncional_id = 2 or c.c_depenfuncional_id = 4 or c.c_depenfuncional_id = 24 or c.c_depenfuncional_id = 26)  and c.c_tipocentro_id = 33 and d_centro <> 'AMBUIBERICA'   and c.c_prov_id            = ?1  order by d_centro

-- Lista Centros de Salud (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where c.c_depenfuncional_id = 2  and c.c_tipocentro_id     = 4  and c.c_prov_id            = ?1  order by d_centro
-- Lista consultorios (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where c.c_depenfuncional_id = 2  and c.c_tipocentro_id     = 5  and c.c_prov_id            = ?1  order by d_centro
-- Lista hospitales (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c where  c.c_depenfuncional_id in (2,3,7)  and c.c_tipocentro_id     in (1,3,17,18,21)  and c.c_prov_id            = ?1   order by d_centro
-- Centros de especialidades (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c where c.c_depenfuncional_id in (2,8,16)  and c.c_tipocentro_id     in (7,8,28,32,31)  and c.c_prov_id            = ?1  order by d_centro
-- Emergencias (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where  c.c_depenfuncional_id = 2   and c.c_tipocentro_id = 11  order by d_centro
-- Otros (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where c.D_CENTRO LIKE 'OTROS CENTROS%' and c.c_prov_id            = ?1  order by d_centro
-- Privados (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where (c.c_depenfuncional_id in (9,10,11,12,13,14,15) OR c.D_CENTRO like 'OTROS CENTROS%')  and c.c_prov_id            = ?1  order by d_centro
-- Puntos de vacunación (solo activos)
select c.c_centro_id, c.d_centro, c.C_DEPENFUNCIONAL_ID, c.C_TIPOCENTRO_ID, c.c_prov_id, c.c_mun_id, c.d_calle, c.C_TIPOVIA_ID, c.n_portal, c.n_planta, c.d_letra , c.c_postal  from comu_cs.comu_v_centros c  where (c.c_depenfuncional_id = 2 or c.c_depenfuncional_id = 4 or c.c_depenfuncional_id = 24 or c.c_depenfuncional_id = 26)  and c.c_tipocentro_id = 33 and d_centro <> 'AMBUIBERICA'   and c.c_prov_id            = ?1  order by d_centro

Última actualización: September 26, 2022