La API de HealthCenter automatiza la descarga y procesamiento de datos de centros de salud provenientes del SNS (Sistema Nacional de Salud). Utiliza web scraping para acceder a la información del SNS de manera rápida y eficiente. La API devuelve una respuesta JSON estructurada con detalles completos sobre los centros de salud y ofrece opciones de filtrado y personalización de la fuente de datos. Además, está configurada para actualizarse automáticamente a la última versión disponible mediante un proceso programado diario, que solo descarga una nueva versión si la fecha de la versión del SNS coincide con la fecha actual. Si la fecha de la versión es anterior o diferente, no se descarga el archivo.
- Gestión Automatizada de Excel:
- Descarga diaria automatizada del archivo Excel del SNS.
- Conversión del archivo Excel a un formato JSON.
- Opciones Flexibles de Fuente de Datos:
- Uso directo del archivo Excel del SNS como fuente.
- Mapeo e importación de datos en una base de datos relacional para consultas mejoradas.
- Capacidades de Filtrado:
- Filtros basados en ubicación (por ejemplo, Provincia, Municipio).
- Filtros basados en servicios (por ejemplo, Internet, Emergencias).
- Fuente de Datos Configurable:
- Opciones de configuración para alternar entre fuentes de datos basadas en archivos o bases de datos.
- Paginación Integrada:
- Respuestas paginadas configurables con los parámetros
pageNumber
ypageSize
.
- Respuestas paginadas configurables con los parámetros
La API devuelve datos con la siguiente estructura:
{
"Name": "CENTRO DE PRIMER NIVEL DE ATENCION LOS PERALEJOS",
"Level": "PRIMER NIVEL",
"TypeCenter": "CENTRO DE PRIMER NIVEL",
"SRS": "METROPOLITANA",
"Tel": "809-561-5749",
"RNC": "NULL",
"Email": "GERENCIADNO@HOTMAIL.COM",
"Fax": "NULL",
"OpeningYear": 2009,
"lastRenovationYear": 0,
"Managed_By": "SNS",
"ServiceComplexity": "N/A",
"Location": {
"Province": "DISTRITO NACIONAL",
"Municipality": "SANTO DOMINGO DE GUZMAN",
"MunicipalDistrict": "SANTO DOMINGO DE GUZMÁN",
"Sector": "PERALEJOS 1",
"Address": "CALLE 33 NO 5 KM 13 AUTOPISTA DUARTE LOS PERALEJOS",
"Neighborhood": "LOS PERALEJOS",
"SubNeighborhood": "LOS PERALEJOS",
"Area": "DISTRITO NACIONAL OESTE",
"Zone": "LOS PERALEJOS",
"Latitud": 18.504775,
"Longitud": -69.996329
},
"Services": {
"isOffices": true,
"isDentistry": false,
"isEmergency": true,
"isLaboratory": false,
"isSonography": false,
"isPhysiotherapy": false,
"isInternet": true,
"Xray": false
}
}
Cuando se utiliza la paginación, la estructura incluye un objeto adicional Pagination
que contiene información sobre el estado actual de la paginación:
{
"Details": [
{
"Name": "CENTRO DE PRIMER NIVEL DE ATENCION LOS PERALEJOS",
"Level": "PRIMER NIVEL",
"TypeCenter": "CENTRO DE PRIMER NIVEL",
"SRS": "METROPOLITANA",
"Tel": "809-561-5749",
...
}
],
"Pagination": {
"TotalCount": 1866,
"PageSize": 20,
"CurrentPage": 1,
"TotalPages": 94,
"NextPage": 2
}
}
La paginación permite controlar cuántos elementos se devuelven por solicitud y en qué página se encuentran. Para ello, se utilizan los parámetros:
pageNumber
: Define el número de página a recuperar. (Por defecto:1
).pageSize
: Define el número de elementos por página. (Por defecto:20
).
Endpoint:
GET /api/HealthCenter/GetAllHealthCenter?pageNumber=2&pageSize=20
Respuesta:
{
"Details": [...],
"Pagination": {
"TotalCount": 1866,
"PageSize": 20,
"CurrentPage": 2,
"TotalPages": 94,
"NextPage": 3
}
}
La fuente de datos puede configurarse en el archivo application
segun el entorno que valla a utilizar:
"DataSourceType": {
"Database": false,
"File": true
}
- Database: Usa datos importados a una base de datos relacional.
- File: Usa datos directamente del archivo Excel descargado del SNS.
Se admiten los siguientes parámetros de consulta:
- SourceType: Especifica la fuente de datos (
File
oDatabase
). - Province: Filtra por provincia.
- Municipality: Filtra por municipio.
- Sector: Filtra por sector.
- Level: Filtra por el nivel del centro de salud (por ejemplo, "PRIMER NIVEL").
- TypeCenter: Filtra por el tipo de centro (por ejemplo, "CENTRO DE PRIMER NIVEL").
- Area: Filtra por área geográfica.
- Services: Filtra por servicios disponibles (por ejemplo,
isOffices
,isDentistry
).
Ejemplo de Objeto de Parámetros:
{
"SourceType": "File",
"Province": "DISTRITO NACIONAL",
"Level": "PRIMER NIVEL",
"isEmergency": true
}
Define las fuentes de datos disponibles:
- File: Archivos locales o en la nube.
- Database: Base de datos relacional.