Skip to content

HealthCenterAPI automatiza el proceso de descarga y procesamiento de datos de centros de salud desde el SNS (Sistema Nacional de Salud). Realiza web scraping al SNS para obtener la información de forma automatizada y rápida. Proporciona una respuesta JSON estructurada con detalles completos sobre los centros de salud y admite filtrado.

License

Notifications You must be signed in to change notification settings

Ruben890/HealthCenterAPI

Repository files navigation

Documentación de la API de HealthCenter

Descripción General

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.


Características

  • 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 y pageSize.

Formato de Respuesta JSON

Respuesta Estándar

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
    }
}

Respuesta Paginada

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
    }
}

Configuración de Paginación

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).

Ejemplo de Solicitud con Paginación

Endpoint:

GET /api/HealthCenter/GetAllHealthCenter?pageNumber=2&pageSize=20

Respuesta:

{
    "Details": [...],
    "Pagination": {
        "TotalCount": 1866,
        "PageSize": 20,
        "CurrentPage": 2,
        "TotalPages": 94,
        "NextPage": 3
    }
}

Configuración

Selección de Fuente de Datos

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.

Parámetros Genéricos para Filtrado

Se admiten los siguientes parámetros de consulta:

  • SourceType: Especifica la fuente de datos (File o Database).
  • 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
}

Definiciones de Enum

DataSourceType

Define las fuentes de datos disponibles:

  • File: Archivos locales o en la nube.
  • Database: Base de datos relacional.

About

HealthCenterAPI automatiza el proceso de descarga y procesamiento de datos de centros de salud desde el SNS (Sistema Nacional de Salud). Realiza web scraping al SNS para obtener la información de forma automatizada y rápida. Proporciona una respuesta JSON estructurada con detalles completos sobre los centros de salud y admite filtrado.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages