{"id":24472481,"url":"https://github.com/ruben890/healthcenterapi","last_synced_at":"2025-03-14T14:26:25.366Z","repository":{"id":272937892,"uuid":"917285619","full_name":"Ruben890/HealthCenterAPI","owner":"Ruben890","description":"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.","archived":false,"fork":false,"pushed_at":"2025-01-31T00:22:02.000Z","size":722,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-31T01:20:53.606Z","etag":null,"topics":["api","api-rest","dotnet","dotnetcore","entity-framework-core","files","posgresql","scharp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ruben890.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-15T17:46:26.000Z","updated_at":"2025-01-31T00:22:06.000Z","dependencies_parsed_at":"2025-01-17T15:35:20.589Z","dependency_job_id":"d5064ce0-9e30-4382-a6cf-0d794f406187","html_url":"https://github.com/Ruben890/HealthCenterAPI","commit_stats":null,"previous_names":["ruben890/healthcenterapi"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ruben890%2FHealthCenterAPI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ruben890%2FHealthCenterAPI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ruben890%2FHealthCenterAPI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ruben890%2FHealthCenterAPI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ruben890","download_url":"https://codeload.github.com/Ruben890/HealthCenterAPI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243591775,"owners_count":20315906,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-rest","dotnet","dotnetcore","entity-framework-core","files","posgresql","scharp"],"created_at":"2025-01-21T08:12:26.133Z","updated_at":"2025-03-14T14:26:25.336Z","avatar_url":"https://github.com/Ruben890.png","language":"C#","readme":"# Documentación de la API de HealthCenter\n\n## Descripción General\nLa **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.\n\n---\n\n## Características\n- **Gestión Automatizada de Excel:**\n  - Descarga diaria automatizada del archivo Excel del SNS.\n  - Conversión del archivo Excel a un formato JSON.\n- **Opciones Flexibles de Fuente de Datos:**\n  - Uso directo del archivo Excel del SNS como fuente.\n  - Mapeo e importación de datos en una base de datos relacional para consultas mejoradas.\n- **Capacidades de Filtrado:**\n  - Filtros basados en ubicación (por ejemplo, Provincia, Municipio).\n  - Filtros basados en servicios (por ejemplo, Internet, Emergencias).\n- **Fuente de Datos Configurable:**\n  - Opciones de configuración para alternar entre fuentes de datos basadas en archivos o bases de datos.\n- **Paginación Integrada:**\n  - Respuestas paginadas configurables con los parámetros `pageNumber` y `pageSize`.\n\n---\n\n## Formato de Respuesta JSON\n### Respuesta Estándar\nLa API devuelve datos con la siguiente estructura:\n\n```json\n{\n    \"Name\": \"CENTRO DE PRIMER NIVEL DE ATENCION LOS PERALEJOS\",\n    \"Level\": \"PRIMER NIVEL\",\n    \"TypeCenter\": \"CENTRO DE PRIMER NIVEL\",\n    \"SRS\": \"METROPOLITANA\",\n    \"Tel\": \"809-561-5749\",\n    \"RNC\": \"NULL\",\n    \"Email\": \"GERENCIADNO@HOTMAIL.COM\",\n    \"Fax\": \"NULL\",\n    \"OpeningYear\": 2009,\n    \"lastRenovationYear\": 0,\n    \"Managed_By\": \"SNS\",\n    \"ServiceComplexity\": \"N/A\",\n    \"Location\": {\n        \"Province\": \"DISTRITO NACIONAL\",\n        \"Municipality\": \"SANTO DOMINGO DE GUZMAN\",\n        \"MunicipalDistrict\": \"SANTO DOMINGO DE GUZMÁN\",\n        \"Sector\": \"PERALEJOS 1\",\n        \"Address\": \"CALLE 33 NO 5  KM 13 AUTOPISTA DUARTE LOS PERALEJOS\",\n        \"Neighborhood\": \"LOS PERALEJOS\",\n        \"SubNeighborhood\": \"LOS PERALEJOS\",\n        \"Area\": \"DISTRITO NACIONAL OESTE\",\n        \"Zone\": \"LOS PERALEJOS\",\n        \"Latitud\": 18.504775,\n        \"Longitud\": -69.996329\n    },\n    \"Services\": {\n        \"isOffices\": true,\n        \"isDentistry\": false,\n        \"isEmergency\": true,\n        \"isLaboratory\": false,\n        \"isSonography\": false,\n        \"isPhysiotherapy\": false,\n        \"isInternet\": true,\n        \"Xray\": false\n    }\n}\n```\n\n---\n\n### Respuesta Paginada\nCuando se utiliza la paginación, la estructura incluye un objeto adicional `Pagination` que contiene información sobre el estado actual de la paginación:\n\n```json\n{\n    \"Details\": [\n        {\n            \"Name\": \"CENTRO DE PRIMER NIVEL DE ATENCION LOS PERALEJOS\",\n            \"Level\": \"PRIMER NIVEL\",\n            \"TypeCenter\": \"CENTRO DE PRIMER NIVEL\",\n            \"SRS\": \"METROPOLITANA\",\n            \"Tel\": \"809-561-5749\",\n            ...\n        }\n    ],\n    \"Pagination\": {\n        \"TotalCount\": 1866,\n        \"PageSize\": 20,\n        \"CurrentPage\": 1,\n        \"TotalPages\": 94,\n        \"NextPage\": 2\n    }\n}\n```\n\n---\n\n## Configuración de Paginación\nLa 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:\n- **`pageNumber`**: Define el número de página a recuperar. (Por defecto: `1`).\n- **`pageSize`**: Define el número de elementos por página. (Por defecto: `20`).\n\n### Ejemplo de Solicitud con Paginación\n**Endpoint:**\n```\nGET /api/HealthCenter/GetAllHealthCenter?pageNumber=2\u0026pageSize=20\n```\n\n**Respuesta:**\n```json\n{\n    \"Details\": [...],\n    \"Pagination\": {\n        \"TotalCount\": 1866,\n        \"PageSize\": 20,\n        \"CurrentPage\": 2,\n        \"TotalPages\": 94,\n        \"NextPage\": 3\n    }\n}\n```\n\n---\n\n\n## Configuración\n### Selección de Fuente de Datos\nLa fuente de datos puede configurarse en el archivo `application` segun el entorno que valla a utilizar:\n```json\n\"DataSourceType\": {\n  \"Database\": false,\n  \"File\": true\n}\n```\n- **Database:** Usa datos importados a una base de datos relacional.\n- **File:** Usa datos directamente del archivo Excel descargado del SNS.\n\n### Parámetros Genéricos para Filtrado\nSe admiten los siguientes parámetros de consulta:\n- **SourceType:** Especifica la fuente de datos (`File` o `Database`).\n- **Province:** Filtra por provincia.\n- **Municipality:** Filtra por municipio.\n- **Sector:** Filtra por sector.\n- **Level:** Filtra por el nivel del centro de salud (por ejemplo, \"PRIMER NIVEL\").\n- **TypeCenter:** Filtra por el tipo de centro (por ejemplo, \"CENTRO DE PRIMER NIVEL\").\n- **Area:** Filtra por área geográfica.\n- **Services:** Filtra por servicios disponibles (por ejemplo, `isOffices`, `isDentistry`).\n\nEjemplo de Objeto de Parámetros:\n```json\n{\n    \"SourceType\": \"File\",\n    \"Province\": \"DISTRITO NACIONAL\",\n    \"Level\": \"PRIMER NIVEL\",\n    \"isEmergency\": true\n}\n```\n\n---\n\n## Definiciones de Enum\n### DataSourceType\nDefine las fuentes de datos disponibles:\n- **File:** Archivos locales o en la nube.\n- **Database:** Base de datos relacional.\n\n---\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruben890%2Fhealthcenterapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruben890%2Fhealthcenterapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruben890%2Fhealthcenterapi/lists"}