Comunes¶
Servicio Web para REUS¶
REUS (Reclamaciones y Sugerencias). Aplicación de la Gerencia Regional de la Salud (Sacyl).
- Responsable informático: Mario Plasencia Ortega (mplasencia@saludcastillayleon.es)
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