openapi: 3.0.3
info:
title: 'Bornive-Api - Documentación Oficial '
description: 'Desarrollado por la **Fundación Nacer Para Vivir IPS** - Gestión de salud rural de los pacientes.'
version: 1.0.0
servers:
-
url: 'http://fnpvi.nacerparavivir.org'
tags:
-
name: 'Afinamientos y Seguimiento'
description: "\nGestión de afinamientos de presión arterial para pacientes con sospecha de HTA."
-
name: 'Auditoría y Logs'
description: "\nMódulo para el análisis y monitoreo de los logs del sistema (laravel.log), con filtros avanzados por módulo y prioridad."
-
name: Autenticación
description: "\nEndpoints para gestionar el acceso a la API y el perfil del usuario."
-
name: 'Brigadas de Salud'
description: "\nGestión de brigadas en campo, incluyendo sincronización de pacientes offline y entrega de medicamentos."
-
name: 'Encuestas de Satisfacción'
description: "\nGestión de encuestas aplicadas a los pacientes para evaluar la calidad del servicio."
-
name: Endpoints
description: ''
-
name: 'Envíos de Muestras (Laboratorio)'
description: "\nGestión de planillas de remisión de muestras de laboratorio desde las sedes."
-
name: 'Estadísticas Públicas (Landing Page)'
description: "\nEndpoints sin autenticación para mostrar el impacto en la landing page."
-
name: 'Estadísticas y Dashboard'
description: "\nMódulo para obtener el resumen de actividades del usuario logueado en el mes actual o en un rango de fechas."
-
name: 'Gestión de Pacientes'
description: "\nEndpoints para el registro, consulta y actualización de pacientes en el sistema."
-
name: 'Gestión de Usuarios'
description: "\nAdministración de los usuarios del sistema, sus roles (admin, auxiliar, supervisor) y sedes de pertenencia."
-
name: Medicamentos
description: "\nCatálogo de medicamentos disponibles para entrega en visitas y brigadas."
-
name: 'Medicamentos de Paciente'
description: "\nGestión de la relación entre pacientes y los medicamentos asignados para su tratamiento."
-
name: 'Notificaciones Push (FCM)'
description: "\nGestión de tokens de dispositivo y envío de notificaciones push a través de Firebase Cloud Messaging (FCM)."
-
name: Sedes
description: "\nGestión de las sedes de atención en salud disponibles en el sistema."
-
name: 'Tamizajes de Presión Arterial (PA)'
description: "\nMódulo para el tamizaje primario de pacientes, captura de signos básicos y conducta inicial."
-
name: 'Tests FINDRISK'
description: "\nEvaluación de riesgo de padecer diabetes tipo 2 mediante el cuestionario FINDRISK."
-
name: 'Visitas Domiciliarias'
description: "\nGestión de visitas realizadas a pacientes en su domicilio, incluyendo toma de signos vitales, fotos y firmas."
paths:
/api/afinamientos:
get:
summary: 'Listar afinamientos'
operationId: listarAfinamientos
description: 'Permite obtener el histórico de afinamientos realizados, filtrando por usuario, paciente o rango de fechas.'
parameters:
-
in: query
name: usuario_id
description: 'ID del usuario promotor.'
example: '4044680601076201931'
required: false
schema:
type: string
description: 'ID del usuario promotor.'
example: '4044680601076201931'
-
in: query
name: paciente_id
description: 'ID del paciente.'
example: 550e8400-e29b-41d4-a716-446655440000
required: false
schema:
type: string
description: 'ID del paciente.'
example: 550e8400-e29b-41d4-a716-446655440000
-
in: query
name: fecha_desde
description: 'date Fecha inicial (Y-m-d).'
example: '2024-01-01'
required: false
schema:
type: string
description: 'date Fecha inicial (Y-m-d).'
example: '2024-01-01'
-
in: query
name: fecha_hasta
description: 'date Fecha final (Y-m-d).'
example: '2024-12-31'
required: false
schema:
type: string
description: 'date Fecha final (Y-m-d).'
example: '2024-12-31'
responses:
200:
description: success
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
example: uuid-123
idpaciente:
type: string
example: uuid-pac
idusuario:
type: string
example: uuid-user
fecha_tamizaje:
type: string
example: '2024-03-25'
presion_arterial_tamiz:
type: string
example: 145/95
promedio_sistolica:
type: integer
example: 138
promedio_diastolica:
type: integer
example: 88
conducta:
type: string
example: 'Seguimiento en 3 meses'
nombre_paciente:
type: string
example: 'Juan Pérez'
identificacion_paciente:
type: string
example: '12345678'
edad_paciente:
type: integer
example: 45
promotor_vida:
type: string
example: 'Maria Gomez'
example:
-
id: uuid-123
idpaciente: uuid-pac
idusuario: uuid-user
fecha_tamizaje: '2024-03-25'
presion_arterial_tamiz: 145/95
promedio_sistolica: 138
promedio_diastolica: 88
conducta: 'Seguimiento en 3 meses'
nombre_paciente: 'Juan Pérez'
identificacion_paciente: '12345678'
edad_paciente: 45
promotor_vida: 'Maria Gomez'
tags:
- 'Afinamientos y Seguimiento'
post:
summary: 'Crear afinamiento'
operationId: crearAfinamiento
description: "Registra un nuevo ciclo de 3 tomas de afinamiento de presión arterial.\nLos promedios se calculan automáticamente en el servidor."
parameters: []
responses:
200:
description: 'success creation'
content:
application/json:
schema:
type: object
example:
message: 'Afinamiento creado exitosamente'
data:
id: uuid-001
promedio_sistolica: 138
promedio_diastolica: 88
properties:
message:
type: string
example: 'Afinamiento creado exitosamente'
data:
type: object
properties:
id:
type: string
example: uuid-001
promedio_sistolica:
type: integer
example: 138
promedio_diastolica:
type: integer
example: 88
tags:
- 'Afinamientos y Seguimiento'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
idpaciente:
type: string
description: 'ID del paciente.'
example: uuid-paciente
procedencia:
type: string
description: 'Origen/Barrio del paciente.'
example: Centro
fecha_tamizaje:
type: date
description: 'Fecha del tamizaje inicial.'
example: '2024-03-25'
presion_arterial_tamiz:
type: string
description: 'Cifra PA inicial.'
example: 145/95
primer_afinamiento_fecha:
type: date
description: 'Fecha 1era toma.'
example: '2024-03-26'
nullable: true
presion_sistolica_1:
type: integer
description: 'Presión 1era toma.'
example: 138
nullable: true
presion_diastolica_1:
type: integer
description: 'Presión 1era toma.'
example: 88
nullable: true
segundo_afinamiento_fecha:
type: string
description: 'Segundo afinamiento (opcional). Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
presion_sistolica_2:
type: integer
description: 'Must be at least 50. Must not be greater than 300.'
example: 24
nullable: true
presion_diastolica_2:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 8
nullable: true
tercer_afinamiento_fecha:
type: string
description: 'Tercer afinamiento (opcional). Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
presion_sistolica_3:
type: integer
description: 'Must be at least 50. Must not be greater than 300.'
example: 6
nullable: true
presion_diastolica_3:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 25
nullable: true
conducta:
type: string
description: ''
example: architecto
nullable: true
required:
- idpaciente
- procedencia
- fecha_tamizaje
- presion_arterial_tamiz
'/api/afinamientos/{id}':
get:
summary: 'Consultar afinamiento'
operationId: consultarAfinamiento
description: 'Obtiene los detalles de un registro específico de afinamiento.'
parameters: []
responses:
200:
description: success
content:
application/json:
schema:
type: object
example:
id: uuid-123
nombre_paciente: 'Juan Pérez'
promedio_sistolica: 140
promedio_diastolica: 90
properties:
id:
type: string
example: uuid-123
nombre_paciente:
type: string
example: 'Juan Pérez'
promedio_sistolica:
type: integer
example: 140
promedio_diastolica:
type: integer
example: 90
tags:
- 'Afinamientos y Seguimiento'
put:
summary: 'Actualizar afinamiento'
operationId: actualizarAfinamiento
description: 'Permite modificar datos de tomas previas o agregar nuevas tomas al ciclo.'
parameters: []
responses: { }
tags:
- 'Afinamientos y Seguimiento'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
idpaciente:
type: string
description: 'The id of an existing record in the pacientes table.'
example: null
procedencia:
type: string
description: 'Must not be greater than 100 characters.'
example: b
fecha_tamizaje:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
presion_arterial_tamiz:
type: string
description: 'Must not be greater than 20 characters.'
example: ngzmiyvdljnikhwa
primer_afinamiento_fecha:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
presion_sistolica_1:
type: integer
description: 'Must be at least 50. Must not be greater than 300.'
example: 24
nullable: true
presion_diastolica_1:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 18
nullable: true
segundo_afinamiento_fecha:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
presion_sistolica_2:
type: integer
description: 'Toma 2da toma.'
example: 135
nullable: true
presion_diastolica_2:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 24
nullable: true
tercer_afinamiento_fecha:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
presion_sistolica_3:
type: integer
description: 'Must be at least 50. Must not be greater than 300.'
example: 8
nullable: true
presion_diastolica_3:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 6
nullable: true
conducta:
type: string
description: ''
example: architecto
nullable: true
delete:
summary: 'Eliminar afinamiento'
operationId: eliminarAfinamiento
description: ''
parameters: []
responses: { }
tags:
- 'Afinamientos y Seguimiento'
security: []
parameters:
-
in: path
name: id
description: 'ID del afinamiento.'
example: uuid-123
required: true
schema:
type: string
/api/mis-afinamientos:
get:
summary: 'Obtener afinamientos del usuario autenticado'
operationId: obtenerAfinamientosDelUsuarioAutenticado
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Afinamientos y Seguimiento'
security: []
'/api/afinamientos/paciente/{pacienteId}':
get:
summary: 'Obtener afinamientos por paciente'
operationId: obtenerAfinamientosPorPaciente
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Afinamientos y Seguimiento'
security: []
parameters:
-
in: path
name: pacienteId
description: ''
example: architecto
required: true
schema:
type: string
/api/logs:
get:
summary: 'Listar y filtrar logs'
operationId: listarYFiltrarLogs
description: ''
parameters:
-
in: query
name: search
description: 'Busqueda por texto.'
example: architecto
required: false
schema:
type: string
description: 'Busqueda por texto.'
example: architecto
-
in: query
name: type
description: 'Filtrar por tipo (visita, brigada, etc).'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por tipo (visita, brigada, etc).'
example: architecto
-
in: query
name: status
description: 'Filtrar por estado (success, error, warning).'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por estado (success, error, warning).'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Auditoría y Logs'
/api/logs/stats:
get:
summary: ''
operationId: getApiLogsStats
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Auditoría y Logs'
security: []
/api/logs/export:
get:
summary: ''
operationId: getApiLogsExport
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Auditoría y Logs'
security: []
/api/logs/download:
get:
summary: ''
operationId: getApiLogsDownload
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Auditoría y Logs'
security: []
/api/logs/clear:
post:
summary: ''
operationId: postApiLogsClear
description: ''
parameters: []
responses: { }
tags:
- 'Auditoría y Logs'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
confirm:
type: boolean
description: 'Must be accepted.'
example: false
required:
- confirm
security: []
'/api/logs/{id}':
get:
summary: ''
operationId: getApiLogsId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Auditoría y Logs'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the log.'
example: architecto
required: true
schema:
type: string
/api/login:
post:
summary: 'Iniciar sesión'
operationId: iniciarSesin
description: 'Permite a un usuario obtener un token de acceso (Bearer) proporcionando sus credenciales.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
token: 1|ABC...
usuario:
id: 1
nombre: Admin
rol: admin
sede:
id: 1
nombre: 'Sede Central'
properties:
token:
type: string
example: 1|ABC...
usuario:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: Admin
rol:
type: string
example: admin
sede:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'Sede Central'
422:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Las credenciales proporcionadas son incorrectas.'
errors:
usuario:
- 'Las credenciales proporcionadas son incorrectas.'
properties:
message:
type: string
example: 'Las credenciales proporcionadas son incorrectas.'
errors:
type: object
properties:
usuario:
type: array
example:
- 'Las credenciales proporcionadas son incorrectas.'
items:
type: string
tags:
- Autenticación
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
usuario:
type: string
description: 'El nombre de usuario.'
example: admin
contrasena:
type: string
description: 'La contraseña del usuario.'
example: secret123
required:
- usuario
- contrasena
security: []
/api/logout:
post:
summary: 'Cerrar sesión'
operationId: cerrarSesin
description: 'Revoca el token de acceso actual del usuario autenticado.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Sesión cerrada correctamente'
properties:
message:
type: string
example: 'Sesión cerrada correctamente'
tags:
- Autenticación
/api/perfil:
get:
summary: 'Ver perfil'
operationId: verPerfil
description: 'Obtiene la información detallada del usuario autenticado y su sede asociada.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: 1
nombre: Admin
usuario: admin
correo: admin@test.com
rol: admin
sede:
id: 1
nombre: 'Sede Central'
properties:
id:
type: integer
example: 1
nombre:
type: string
example: Admin
usuario:
type: string
example: admin
correo:
type: string
example: admin@test.com
rol:
type: string
example: admin
sede:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'Sede Central'
tags:
- Autenticación
put:
summary: 'Actualizar perfil'
operationId: actualizarPerfil
description: 'Permite al usuario autenticado actualizar su nombre, correo y contraseña.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Perfil actualizado correctamente'
usuario:
id: 1
nombre: 'Juan Perez'
correo: juan@test.com
properties:
message:
type: string
example: 'Perfil actualizado correctamente'
usuario:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'Juan Perez'
correo:
type: string
example: juan@test.com
422:
description: ''
content:
application/json:
schema:
type: object
example:
error: 'La contrasena actual no es correcta'
properties:
error:
type: string
example: 'La contrasena actual no es correcta'
tags:
- Autenticación
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
nombre:
type: string
description: 'El nombre completo.'
example: 'Juan Perez'
correo:
type: string
description: 'El correo electrónico.'
example: juan@test.com
contrasena_actual:
type: string
description: 'La contraseña actual (requerida si se cambia la nueva).'
example: architecto
contrasena_nueva:
type: string
description: 'La nueva contraseña (mínimo 6 caracteres).'
example: architecto
/api/brigadas:
get:
summary: 'Listar brigadas'
operationId: listarBrigadas
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Brigadas de Salud'
post:
summary: 'Crear brigada'
operationId: crearBrigada
description: 'Permite crear una brigada y sincronizar los pacientes que fueron capturados offline.'
parameters: []
responses: { }
tags:
- 'Brigadas de Salud'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
lugar_evento:
type: string
description: 'Nombre del lugar.'
example: 'Vereda El Cairo'
fecha_brigada:
type: date
description: 'Fecha del evento.'
example: architecto
tema:
type: string
description: 'Tema desarrollado.'
example: 'Charla HTA'
pacientes:
type: array
description: 'Array de IDs de pacientes (reales u offline_ID).'
example:
- uuid-1
- offline_2
items:
type: string
pacientes_data:
type: array
description: 'Datos completos de pacientes offline para auto-creación.'
example:
- []
items:
type: object
required:
- lugar_evento
- fecha_brigada
- tema
- pacientes
'/api/brigadas/{id}':
get:
summary: ''
operationId: getApiBrigadasId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Brigadas de Salud'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the brigada.'
example: architecto
required: true
schema:
type: string
/api/encuestas:
get:
summary: 'Listar todas las encuestas'
operationId: listarTodasLasEncuestas
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
post:
summary: 'Crear encuesta'
operationId: crearEncuesta
description: ''
parameters: []
responses: { }
tags:
- 'Encuestas de Satisfacción'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: 'UUID único para la encuesta.'
example: uuid-abc
idpaciente:
type: string
description: 'ID del paciente.'
example: uuid-pac
idsede:
type: string
description: 'ID de la sede.'
example: '1'
domicilio:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
entidad_afiliada:
type: string
description: 'Must not be greater than 100 characters.'
example: g
nullable: true
fecha:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
respuestas_calificacion:
type: json
description: 'JSON con calificaciones (Excelente, Bueno, etc).'
example: '["Excelente", "Bueno"]'
respuestas_adicionales:
type: json
description: 'JSON con respuestas abiertas.'
example: '{"pregunta1": "Respuesta"}'
sugerencias:
type: string
description: 'Must not be greater than 1000 characters.'
example: 'n'
nullable: true
required:
- id
- idpaciente
- idsede
- domicilio
- fecha
- respuestas_calificacion
- respuestas_adicionales
'/api/encuestas/{id}':
get:
summary: 'Consultar encuesta'
operationId: consultarEncuesta
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
put:
summary: 'Actualizar encuesta'
operationId: actualizarEncuesta
description: ''
parameters: []
responses: { }
tags:
- 'Encuestas de Satisfacción'
delete:
summary: ''
operationId: deleteApiEncuestasId
description: ''
parameters: []
responses: { }
tags:
- 'Encuestas de Satisfacción'
security: []
parameters:
-
in: path
name: id
description: 'ID de la encuesta.'
example: architecto
required: true
schema:
type: string
/api/mis-encuestas:
get:
summary: ''
operationId: getApiMisEncuestas
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
security: []
'/api/encuestas/paciente/{idpaciente}':
get:
summary: ''
operationId: getApiEncuestasPacienteIdpaciente
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
security: []
parameters:
-
in: path
name: idpaciente
description: ''
example: architecto
required: true
schema:
type: string
'/api/encuestas/usuario/{idusuario}':
get:
summary: ''
operationId: getApiEncuestasUsuarioIdusuario
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
security: []
parameters:
-
in: path
name: idusuario
description: ''
example: architecto
required: true
schema:
type: string
'/api/encuestas/sede/{idsede}':
get:
summary: ''
operationId: getApiEncuestasSedeIdsede
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
security: []
parameters:
-
in: path
name: idsede
description: ''
example: architecto
required: true
schema:
type: string
/api/encuestas-estadisticas:
get:
summary: ''
operationId: getApiEncuestasEstadisticas
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Encuestas de Satisfacción'
security: []
/api/health:
get:
summary: 'Health Check'
operationId: healthCheck
description: 'Verifica si la API está respondiendo correctamente.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
status: ok
timestamp: '2026-03-26T15:20:38.831636Z'
properties:
status:
type: string
example: ok
timestamp:
type: string
example: '2026-03-26T15:20:38.831636Z'
tags:
- Endpoints
security: []
/api/envio-muestras:
get:
summary: 'Listar envíos de muestras'
operationId: listarEnvosDeMuestras
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Envíos de Muestras (Laboratorio)'
post:
summary: 'Crear planilla de envío'
operationId: crearPlanillaDeEnvo
description: 'Permite registrar una nueva planilla de remisión de muestras a laboratorio.'
parameters: []
responses: { }
tags:
- 'Envíos de Muestras (Laboratorio)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fecha:
type: date
description: 'Fecha del envío.'
example: architecto
idsede:
type: string
description: 'ID de la sede remitente.'
example: architecto
detalles:
type: array
description: 'Lista de muestras por paciente.'
example:
- []
items:
type: object
properties:
paciente_id:
type: string
description: 'The id of an existing record in the pacientes table.'
example: architecto
numero_orden:
type: integer
description: 'Must be at least 1.'
example: 22
'*':
type: object
description: ''
example:
paciente_id: architecto
properties:
paciente_id:
type: string
description: 'ID del paciente.'
example: architecto
numero_orden:
type: integer
description: 'Número de orden de laboratorio.'
example: 16
required:
- paciente_id
- numero_orden
required:
- paciente_id
- numero_orden
responsable_transporte_id:
type: string
description: 'Must not be greater than 255 characters.'
example: b
nullable: true
responsable_recepcion_id:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
nullable: true
required:
- fecha
- idsede
- detalles
'/api/envio-muestras/{id}':
get:
summary: ''
operationId: getApiEnvioMuestrasId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Envíos de Muestras (Laboratorio)'
security: []
put:
summary: ''
operationId: putApiEnvioMuestrasId
description: ''
parameters: []
responses: { }
tags:
- 'Envíos de Muestras (Laboratorio)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
fecha:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
idsede:
type: string
description: 'The id of an existing record in the sedes table.'
example: null
responsable_transporte_id:
type: string
description: 'Must not be greater than 255 characters.'
example: b
nullable: true
responsable_recepcion_id:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
nullable: true
security: []
delete:
summary: ''
operationId: deleteApiEnvioMuestrasId
description: ''
parameters: []
responses: { }
tags:
- 'Envíos de Muestras (Laboratorio)'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the envio muestra.'
example: architecto
required: true
schema:
type: string
'/api/envio-muestras/sede/{sedeId}':
get:
summary: ''
operationId: getApiEnvioMuestrasSedeSedeId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Envíos de Muestras (Laboratorio)'
security: []
parameters:
-
in: path
name: sedeId
description: ''
example: architecto
required: true
schema:
type: string
'/api/envio-muestras/por-fecha-salida/{fecha}':
get:
summary: ''
operationId: getApiEnvioMuestrasPorFechaSalidaFecha
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Envíos de Muestras (Laboratorio)'
security: []
parameters:
-
in: path
name: fecha
description: ''
example: architecto
required: true
schema:
type: string
'/api/envio-muestras/{id}/actualizar-estado-correo':
put:
summary: 'Actualizar estado de correo (marcar como enviado/no enviado)'
operationId: actualizarEstadoDeCorreomarcarComoEnviadonoEnviado
description: ''
parameters: []
responses: { }
tags:
- 'Envíos de Muestras (Laboratorio)'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the envio muestra.'
example: architecto
required: true
schema:
type: string
/api/v1/public/mapa-calor:
get:
summary: 'Mapa de Calor (v1)'
operationId: mapaDeCalorv1
description: "Retorna los puntos geográficos agrupados por zona de visita y sede para el mapa de calor de la landing.\nLos datos están cacheados por 1 hora con Redis."
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
data:
-
zona: '208'
sede_principal: cajibio
lat: 2.5706
lng: -76.6619
impacto_visitas: 1
-
zona: '3219342703'
sede_principal: cajibio
lat: 2.723
lng: -76.6584
impacto_visitas: 1
-
zona: achiral
sede_principal: cajibio
lat: 2.6761
lng: -76.8252
impacto_visitas: 1
-
zona: altamira
sede_principal: cajibio
lat: 2.6644
lng: -76.7318
impacto_visitas: 9
-
zona: 'ALTO GRANDE'
sede_principal: cajibio
lat: 2.6222
lng: -76.6076
impacto_visitas: 39
-
zona: 'alto piendamo'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: arroyuela
sede_principal: cajibio
lat: 2.6531
lng: -76.6849
impacto_visitas: 5
-
zona: AURELIA
sede_principal: cajibio
lat: 2.6412
lng: -76.6198
impacto_visitas: 8
-
zona: B/piendalinda
sede_principal: cajibio
lat: 2.6459
lng: -76.5346
impacto_visitas: 1
-
zona: 'bajo carrizal'
sede_principal: cajibio
lat: 2.5977
lng: -76.6684
impacto_visitas: 1
-
zona: 'barrio Betania'
sede_principal: cajibio
lat: 2.6361
lng: -76.7313
impacto_visitas: 2
-
zona: 'Barrio Fátima'
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 1
-
zona: 'Barrio La Floresta'
sede_principal: morales
lat: 2.7584
lng: -76.6312
impacto_visitas: 2
-
zona: 'Barrio Modelo'
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 2
-
zona: 'barrio villamarcela'
sede_principal: piendamo
lat: 2.6365
lng: -76.5265
impacto_visitas: 1
-
zona: Bet
sede_principal: cajibio
lat: 2.5862
lng: -76.7405
impacto_visitas: 1
-
zona: Betania
sede_principal: cajibio
lat: 2.5843
lng: -76.7534
impacto_visitas: 7
-
zona: 'Buena vista'
sede_principal: cajibio
lat: 2.6918
lng: -76.6755
impacto_visitas: 8
-
zona: Buenavista
sede_principal: cajibio
lat: 2.6916
lng: -76.6772
impacto_visitas: 14
-
zona: CAJIBIO
sede_principal: cajibio
lat: 2.6331
lng: -76.5912
impacto_visitas: 13
-
zona: 'CAJIBIO 2'
sede_principal: cajibio
lat: 2.62
lng: -76.5796
impacto_visitas: 1
-
zona: 'CAJIBIO 3'
sede_principal: cajibio
lat: 2.6136
lng: -76.632
impacto_visitas: 1
-
zona: 'CAJIBIO 1'
sede_principal: cajibio
lat: 2.6194
lng: -76.5954
impacto_visitas: 3
-
zona: 'CAJIBIO 2'
sede_principal: cajibio
lat: 2.6247
lng: -76.6261
impacto_visitas: 85
-
zona: 'CAJIBIO 3'
sede_principal: cajibio
lat: 2.6124
lng: -76.6094
impacto_visitas: 36
-
zona: 'CAJIBIO 4'
sede_principal: cajibio
lat: 2.6237
lng: -76.6264
impacto_visitas: 7
-
zona: CAJIBIO4
sede_principal: cajibio
lat: 2.6367
lng: -76.648
impacto_visitas: 1
-
zona: 'CAJIBO 3'
sede_principal: cajibio
lat: 2.6238
lng: -76.5697
impacto_visitas: 1
-
zona: 'campa alegre sector la selva'
sede_principal: piendamo
lat: 2.73
lng: -76.5869
impacto_visitas: 1
-
zona: 'Campo Alegre'
sede_principal: cajibio
lat: 2.5777
lng: -76.7247
impacto_visitas: 3
-
zona: Campoalegre
sede_principal: cajibio
lat: 2.5759
lng: -76.7208
impacto_visitas: 6
-
zona: capilla
sede_principal: cajibio
lat: 2.5803
lng: -76.6232
impacto_visitas: 10
-
zona: carmelo
sede_principal: cajibio
lat: 2.6673
lng: -76.7008
impacto_visitas: 32
-
zona: carrizal
sede_principal: cajibio
lat: 2.597
lng: -76.6639
impacto_visitas: 31
-
zona: 'casas bajas'
sede_principal: cajibio
lat: 2.6381
lng: -76.7333
impacto_visitas: 2
-
zona: 'CASAS BAJAS'
sede_principal: cajibio
lat: 2.642
lng: -76.7341
impacto_visitas: 132
-
zona: Casitas
sede_principal: cajibio
lat: 2.6904
lng: -76.6559
impacto_visitas: 2
-
zona: 'CERRO BAJÓ'
sede_principal: morales
lat: 2.7514
lng: -76.7019
impacto_visitas: 2
-
zona: 'CERRO BAJO'
sede_principal: morales
lat: 2.7516
lng: -76.7008
impacto_visitas: 5
-
zona: cidral
sede_principal: cajibio
lat: 2.6751
lng: -76.6708
impacto_visitas: 24
-
zona: 'cidral 9'
sede_principal: cajibio
lat: 2.6688
lng: -76.6629
impacto_visitas: 1
-
zona: 'cidral ojo'
sede_principal: cajibio
lat: 2.6688
lng: -76.6628
impacto_visitas: 1
-
zona: COHETERA
sede_principal: cajibio
lat: 2.6437
lng: -76.6293
impacto_visitas: 30
-
zona: diamante
sede_principal: cajibio
lat: 2.6774
lng: -76.7275
impacto_visitas: 2
-
zona: dinde
sede_principal: cajibio
lat: 2.6971
lng: -76.7581
impacto_visitas: 187
-
zona: 'el cidral'
sede_principal: cajibio
lat: 2.6811
lng: -76.6751
impacto_visitas: 16
-
zona: 'el cidral L9'
sede_principal: cajibio
lat: 2.674
lng: -76.6769
impacto_visitas: 1
-
zona: 'el lago'
sede_principal: cajibio
lat: 2.5753
lng: -76.604
impacto_visitas: 1
-
zona: Fátima
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 1
-
zona: finde
sede_principal: cajibio
lat: 2.6865
lng: -76.7607
impacto_visitas: 1
-
zona: Florida
sede_principal: cajibio
lat: 2.5709
lng: -76.6947
impacto_visitas: 4
-
zona: Granja
sede_principal: cajibio
lat: 2.6519
lng: -76.6093
impacto_visitas: 3
-
zona: guangubio
sede_principal: cajibio
lat: 2.5815
lng: -76.6729
impacto_visitas: 67
-
zona: independencia
sede_principal: cajibio
lat: 2.7156
lng: -76.7199
impacto_visitas: 9
-
zona: independiente
sede_principal: cajibio
lat: 2.7095
lng: -76.7176
impacto_visitas: 1
-
zona: jardín
sede_principal: cajibio
lat: 2.5937
lng: -76.6798
impacto_visitas: 1
-
zona: 'l granja'
sede_principal: cajibio
lat: 2.6487
lng: -76.6107
impacto_visitas: 6
-
zona: 'l palma'
sede_principal: cajibio
lat: 2.6655
lng: -76.6249
impacto_visitas: 1
-
zona: 'l pedregosa'
sede_principal: cajibio
lat: 2.6666
lng: -76.6278
impacto_visitas: 1
-
zona: 'l. a palma'
sede_principal: cajibio
lat: 2.6672
lng: -76.6272
impacto_visitas: 1
-
zona: 'l. Granja'
sede_principal: cajibio
lat: 2.751
lng: -76.6696
impacto_visitas: 1
-
zona: 'l. palma'
sede_principal: cajibio
lat: 2.6663
lng: -76.6259
impacto_visitas: 1
-
zona: 'la arroyuela'
sede_principal: cajibio
lat: 2.6458
lng: -76.655
impacto_visitas: 5
-
zona: 'LA AURELIA'
sede_principal: cajibio
lat: 2.6581
lng: -76.6207
impacto_visitas: 1
-
zona: 'la balsa'
sede_principal: cajibio
lat: 2.5838
lng: -76.6722
impacto_visitas: 1
-
zona: 'La Florida'
sede_principal: cajibio
lat: 2.5602
lng: -76.6945
impacto_visitas: 1
-
zona: 'la granja'
sede_principal: cajibio
lat: 2.653
lng: -76.6128
impacto_visitas: 78
-
zona: 'la granja'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'la palma'
sede_principal: cajibio
lat: 2.6647
lng: -76.625
impacto_visitas: 134
-
zona: 'la palma pedregosa'
sede_principal: cajibio
lat: 2.6723
lng: -76.6232
impacto_visitas: 1
-
zona: 'La pama'
sede_principal: cajibio
lat: 2.669
lng: -76.6307
impacto_visitas: 1
-
zona: 'la pedregosa'
sede_principal: cajibio
lat: 2.6684
lng: -76.64
impacto_visitas: 35
-
zona: 'la unión'
sede_principal: cajibio
lat: 2.5936
lng: -76.603
impacto_visitas: 6
-
zona: 'la, palma'
sede_principal: cajibio
lat: 2.6632
lng: -76.6284
impacto_visitas: 3
-
zona: 'la. Granja'
sede_principal: cajibio
lat: 2.6454
lng: -76.6048
impacto_visitas: 2
-
zona: 'laa casitas'
sede_principal: cajibio
lat: 2.6897
lng: -76.6725
impacto_visitas: 2
-
zona: lago
sede_principal: cajibio
lat: 2.5792
lng: -76.6023
impacto_visitas: 1
-
zona: laguna
sede_principal: cajibio
lat: 2.7027
lng: -76.7704
impacto_visitas: 77
-
zona: 'laguna dinde'
sede_principal: cajibio
lat: 2.7062
lng: -76.7754
impacto_visitas: 24
-
zona: 'las casitas'
sede_principal: cajibio
lat: 2.691
lng: -76.658
impacto_visitas: 62
-
zona: 'loma corta'
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: 'loma larga'
sede_principal: cajibio
lat: 2.5685
lng: -76.6064
impacto_visitas: 5
-
zona: 'Los Pinos'
sede_principal: cajibio
lat: 2.5731
lng: -76.6684
impacto_visitas: 1
-
zona: MATARREDONDA
sede_principal: morales
lat: 2.7379
lng: -76.6653
impacto_visitas: 3
-
zona: MESETA
sede_principal: cajibio
lat: 2.5904
lng: -76.6956
impacto_visitas: 18
-
zona: michinchal
sede_principal: cajibio
lat: 2.688
lng: -76.7056
impacto_visitas: 24
-
zona: monterredondo
sede_principal: cajibio
lat: 2.6624
lng: -76.7159
impacto_visitas: 3
-
zona: MORALES
sede_principal: morales
lat: 2.7322
lng: -76.6541
impacto_visitas: 1
-
zona: mucho
sede_principal: cajibio
lat: 2.6721
lng: -76.7027
impacto_visitas: 1
-
zona: 'Nuevo horizonte'
sede_principal: cajibio
lat: 2.5961
lng: -76.6953
impacto_visitas: 26
-
zona: ortega
sede_principal: cajibio
lat: 2.683
lng: -76.7973
impacto_visitas: 148
-
zona: pal
sede_principal: cajibio
lat: 2.5614
lng: -76.613
impacto_visitas: 1
-
zona: palace
sede_principal: cajibio
lat: 2.563
lng: -76.6137
impacto_visitas: 34
-
zona: palma
sede_principal: cajibio
lat: 2.6598
lng: -76.6221
impacto_visitas: 35
-
zona: palomera
sede_principal: piendamo
lat: 2.6792
lng: -76.5335
impacto_visitas: 1
-
zona: 'PAN DE AZUCAR'
sede_principal: morales
lat: 2.7418
lng: -76.7019
impacto_visitas: 5
-
zona: 'PAN de azúcar. san francisco cajibio'
sede_principal: cajibio
lat: 2.7353
lng: -76.7025
impacto_visitas: 1
-
zona: Pedregosa
sede_principal: cajibio
lat: 2.6755
lng: -76.646
impacto_visitas: 89
-
zona: pinos
sede_principal: cajibio
lat: 2.5724
lng: -76.6677
impacto_visitas: 13
-
zona: PLAYON
sede_principal: morales
lat: 2.7364
lng: -76.7268
impacto_visitas: 5
-
zona: poooo
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 1
-
zona: PORVENIR
sede_principal: cajibio
lat: 2.6476
lng: -76.649
impacto_visitas: 3
-
zona: PPRIMAVERA
sede_principal: cajibio
lat: 2.6221
lng: -76.6578
impacto_visitas: 1
-
zona: PRIMAVERA
sede_principal: cajibio
lat: 2.6214
lng: -76.6549
impacto_visitas: 104
-
zona: PRIMAVERA⁶
sede_principal: cajibio
lat: 2.6243
lng: -76.6621
impacto_visitas: 1
-
zona: Recuerdo
sede_principal: cajibio
lat: 2.6229
lng: -76.7599
impacto_visitas: 27
-
zona: 'Recuerdo Bajo'
sede_principal: cajibio
lat: 2.6334
lng: -76.7692
impacto_visitas: 6
-
zona: 'Recuerdo Bajo 0'
sede_principal: cajibio
lat: 2.6032
lng: -76.7779
impacto_visitas: 1
-
zona: Rosario
sede_principal: cajibio
lat: 2.6119
lng: -76.736
impacto_visitas: 69
-
zona: ROSARIO
sede_principal: morales
lat: 2.7375
lng: -76.6681
impacto_visitas: 18
-
zona: 'Rural El Rosario'
sede_principal: morales
lat: 2.7324
lng: -76.6672
impacto_visitas: 2
-
zona: 'rural San Roque'
sede_principal: cajibio
lat: 2.7252
lng: -76.7643
impacto_visitas: 1
-
zona: salero
sede_principal: cajibio
lat: 2.6441
lng: -76.5276
impacto_visitas: 1
-
zona: 'san jose'
sede_principal: cajibio
lat: 2.6641
lng: -76.7003
impacto_visitas: 1
-
zona: 'san antonio'
sede_principal: cajibio
lat: 2.7247
lng: -76.6928
impacto_visitas: 23
-
zona: 'san Gabriel'
sede_principal: cajibio
lat: 2.6228
lng: -76.704
impacto_visitas: 69
-
zona: 'san jose'
sede_principal: cajibio
lat: 2.6736
lng: -76.6782
impacto_visitas: 20
-
zona: 'san jose'
sede_principal: piendamo
lat: 2.708
lng: -76.5737
impacto_visitas: 1
-
zona: 'san jose carmelo'
sede_principal: cajibio
lat: 2.689
lng: -76.6986
impacto_visitas: 15
-
zona: 'San Lorenzo'
sede_principal: cajibio
lat: 2.6127
lng: -76.769
impacto_visitas: 10
-
zona: 'san Migue'
sede_principal: cajibio
lat: 2.6976
lng: -76.7549
impacto_visitas: 1
-
zona: 'SAN RAFAEL'
sede_principal: morales
lat: 2.7352
lng: -76.6384
impacto_visitas: 3
-
zona: si
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 2
-
zona: siii
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 1
-
zona: 'SOCORRO BAJÓ'
sede_principal: morales
lat: 2.7364
lng: -76.7414
impacto_visitas: 2
-
zona: 'SOCORRO BAJO'
sede_principal: morales
lat: 2.7356
lng: -76.7414
impacto_visitas: 1
-
zona: tigre
sede_principal: cajibio
lat: 2.608
lng: -76.695
impacto_visitas: 83
-
zona: 'Tropical Tumaco'
sede_principal: cajibio
lat: 2.5932
lng: -76.7659
impacto_visitas: 5
-
zona: Tumaco
sede_principal: cajibio
lat: 2.5957
lng: -76.7643
impacto_visitas: 12
-
zona: TUNEL
sede_principal: cajibio
lat: 2.5534
lng: -76.5544
impacto_visitas: 3
-
zona: tunia
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: unión
sede_principal: cajibio
lat: 2.5929
lng: -76.6061
impacto_visitas: 44
-
zona: 'v/ uvales'
sede_principal: piendamo
lat: 2.7332
lng: -76.5693
impacto_visitas: 1
-
zona: 'v/campo alegre'
sede_principal: piendamo
lat: 2.7334
lng: -76.5806
impacto_visitas: 1
-
zona: v/salinas
sede_principal: piendamo
lat: 2.8241
lng: -76.5847
impacto_visitas: 1
-
zona: VENTA
sede_principal: cajibio
lat: 2.5873
lng: -76.5595
impacto_visitas: 9
-
zona: 'vereda cacahual'
sede_principal: cajibio
lat: 2.6924
lng: -76.7302
impacto_visitas: 1
-
zona: 'vereda diamante'
sede_principal: cajibio
lat: 2.6733
lng: -76.7129
impacto_visitas: 1
-
zona: 'vereda altamira'
sede_principal: cajibio
lat: 2.6699
lng: -76.7354
impacto_visitas: 5
-
zona: 'vereda alto piendamo'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'vereda arroyuela'
sede_principal: cajibio
lat: 2.6456
lng: -76.6686
impacto_visitas: 3
-
zona: 'vereda buena vista'
sede_principal: cajibio
lat: 2.6904
lng: -76.6725
impacto_visitas: 2
-
zona: 'vereda cacahual'
sede_principal: cajibio
lat: 2.6919
lng: -76.7272
impacto_visitas: 89
-
zona: 'vereda campo alegre'
sede_principal: piendamo
lat: 2.7317
lng: -76.5837
impacto_visitas: 2
-
zona: 'vereda campo alegre9'
sede_principal: piendamo
lat: 2.73
lng: -76.5869
impacto_visitas: 1
-
zona: 'vereda carmelo'
sede_principal: cajibio
lat: 2.6641
lng: -76.7022
impacto_visitas: 1
-
zona: 'vereda casas bajas'
sede_principal: cajibio
lat: 2.6511
lng: -76.7326
impacto_visitas: 1
-
zona: 'vereda diamante'
sede_principal: cajibio
lat: 2.6828
lng: -76.7207
impacto_visitas: 3
-
zona: 'vereda el cidral'
sede_principal: cajibio
lat: 2.6774
lng: -76.6764
impacto_visitas: 2
-
zona: 'vereda el diamante'
sede_principal: cajibio
lat: 2.6837
lng: -76.7199
impacto_visitas: 3
-
zona: 'Vereda El Maco'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 2
-
zona: 'vereda granja'
sede_principal: cajibio
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'vereda independencia'
sede_principal: cajibio
lat: 2.7143
lng: -76.7196
impacto_visitas: 21
-
zona: 'vereda la arroyuela'
sede_principal: cajibio
lat: 2.6494
lng: -76.6705
impacto_visitas: 3
-
zona: 'vereda la aurelia'
sede_principal: cajibio
lat: 2.6486
lng: -76.5961
impacto_visitas: 2
-
zona: 'vereda la aurelia.'
sede_principal: cajibio
lat: 2.6451
lng: -76.5952
impacto_visitas: 1
-
zona: 'vereda la esmeralda'
sede_principal: piendamo
lat: 2.6938
lng: -76.5394
impacto_visitas: 1
-
zona: 'vereda la granja'
sede_principal: cajibio
lat: 2.6452
lng: -76.6038
impacto_visitas: 1
-
zona: 'vereda la palma'
sede_principal: cajibio
lat: 2.6639
lng: -76.6251
impacto_visitas: 6
-
zona: 'vereda la palomera tunia'
sede_principal: piendamo
lat: 2.6792
lng: -76.5335
impacto_visitas: 1
-
zona: 'Vereda loma de bogota'
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: 'Vereda Maci'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 1
-
zona: 'Vereda Maco'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 1
-
zona: 'vereda michinchal'
sede_principal: cajibio
lat: 2.6895
lng: -76.7055
impacto_visitas: 37
-
zona: 'vereda puerta chiquita'
sede_principal: cajibio
lat: 2.6311
lng: -76.6786
impacto_visitas: 1
-
zona: 'vereda salero'
sede_principal: cajibio
lat: 2.6865
lng: -76.6665
impacto_visitas: 3
-
zona: 'vereda san g'
sede_principal: cajibio
lat: 2.6221
lng: -76.6982
impacto_visitas: 1
-
zona: 'vereda san Gabriel'
sede_principal: cajibio
lat: 2.6239
lng: -76.7049
impacto_visitas: 75
-
zona: 'vereda san jose'
sede_principal: cajibio
lat: 2.6833
lng: -76.7223
impacto_visitas: 1
-
zona: 'vereda san jose'
sede_principal: piendamo
lat: 2.708
lng: -76.5737
impacto_visitas: 2
-
zona: 'vereda san miguel'
sede_principal: cajibio
lat: 2.691
lng: -76.5756
impacto_visitas: 2
-
zona: 'vereda vivas Balcazar'
sede_principal: piendamo
lat: 2.678
lng: -76.5281
impacto_visitas: 1
-
zona: veredactunia
sede_principal: piendamo
lat: 2.6938
lng: -76.5394
impacto_visitas: 1
-
zona: 'villa marcela'
sede_principal: piendamo
lat: 2.6365
lng: -76.5265
impacto_visitas: 1
-
zona: villermosa
sede_principal: cajibio
lat: 2.6678
lng: -76.6598
impacto_visitas: 1
-
zona: VIUDA
sede_principal: cajibio
lat: 2.5656
lng: -76.5918
impacto_visitas: 4
-
zona: x
sede_principal: cajibio
lat: 2.6744
lng: -76.7303
impacto_visitas: 2
version: v1
cache: true
properties:
success:
type: boolean
example: true
data:
type: array
example:
-
zona: '208'
sede_principal: cajibio
lat: 2.5706
lng: -76.6619
impacto_visitas: 1
-
zona: '3219342703'
sede_principal: cajibio
lat: 2.723
lng: -76.6584
impacto_visitas: 1
-
zona: achiral
sede_principal: cajibio
lat: 2.6761
lng: -76.8252
impacto_visitas: 1
-
zona: altamira
sede_principal: cajibio
lat: 2.6644
lng: -76.7318
impacto_visitas: 9
-
zona: 'ALTO GRANDE'
sede_principal: cajibio
lat: 2.6222
lng: -76.6076
impacto_visitas: 39
-
zona: 'alto piendamo'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: arroyuela
sede_principal: cajibio
lat: 2.6531
lng: -76.6849
impacto_visitas: 5
-
zona: AURELIA
sede_principal: cajibio
lat: 2.6412
lng: -76.6198
impacto_visitas: 8
-
zona: B/piendalinda
sede_principal: cajibio
lat: 2.6459
lng: -76.5346
impacto_visitas: 1
-
zona: 'bajo carrizal'
sede_principal: cajibio
lat: 2.5977
lng: -76.6684
impacto_visitas: 1
-
zona: 'barrio Betania'
sede_principal: cajibio
lat: 2.6361
lng: -76.7313
impacto_visitas: 2
-
zona: 'Barrio Fátima'
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 1
-
zona: 'Barrio La Floresta'
sede_principal: morales
lat: 2.7584
lng: -76.6312
impacto_visitas: 2
-
zona: 'Barrio Modelo'
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 2
-
zona: 'barrio villamarcela'
sede_principal: piendamo
lat: 2.6365
lng: -76.5265
impacto_visitas: 1
-
zona: Bet
sede_principal: cajibio
lat: 2.5862
lng: -76.7405
impacto_visitas: 1
-
zona: Betania
sede_principal: cajibio
lat: 2.5843
lng: -76.7534
impacto_visitas: 7
-
zona: 'Buena vista'
sede_principal: cajibio
lat: 2.6918
lng: -76.6755
impacto_visitas: 8
-
zona: Buenavista
sede_principal: cajibio
lat: 2.6916
lng: -76.6772
impacto_visitas: 14
-
zona: CAJIBIO
sede_principal: cajibio
lat: 2.6331
lng: -76.5912
impacto_visitas: 13
-
zona: 'CAJIBIO 2'
sede_principal: cajibio
lat: 2.62
lng: -76.5796
impacto_visitas: 1
-
zona: 'CAJIBIO 3'
sede_principal: cajibio
lat: 2.6136
lng: -76.632
impacto_visitas: 1
-
zona: 'CAJIBIO 1'
sede_principal: cajibio
lat: 2.6194
lng: -76.5954
impacto_visitas: 3
-
zona: 'CAJIBIO 2'
sede_principal: cajibio
lat: 2.6247
lng: -76.6261
impacto_visitas: 85
-
zona: 'CAJIBIO 3'
sede_principal: cajibio
lat: 2.6124
lng: -76.6094
impacto_visitas: 36
-
zona: 'CAJIBIO 4'
sede_principal: cajibio
lat: 2.6237
lng: -76.6264
impacto_visitas: 7
-
zona: CAJIBIO4
sede_principal: cajibio
lat: 2.6367
lng: -76.648
impacto_visitas: 1
-
zona: 'CAJIBO 3'
sede_principal: cajibio
lat: 2.6238
lng: -76.5697
impacto_visitas: 1
-
zona: 'campa alegre sector la selva'
sede_principal: piendamo
lat: 2.73
lng: -76.5869
impacto_visitas: 1
-
zona: 'Campo Alegre'
sede_principal: cajibio
lat: 2.5777
lng: -76.7247
impacto_visitas: 3
-
zona: Campoalegre
sede_principal: cajibio
lat: 2.5759
lng: -76.7208
impacto_visitas: 6
-
zona: capilla
sede_principal: cajibio
lat: 2.5803
lng: -76.6232
impacto_visitas: 10
-
zona: carmelo
sede_principal: cajibio
lat: 2.6673
lng: -76.7008
impacto_visitas: 32
-
zona: carrizal
sede_principal: cajibio
lat: 2.597
lng: -76.6639
impacto_visitas: 31
-
zona: 'casas bajas'
sede_principal: cajibio
lat: 2.6381
lng: -76.7333
impacto_visitas: 2
-
zona: 'CASAS BAJAS'
sede_principal: cajibio
lat: 2.642
lng: -76.7341
impacto_visitas: 132
-
zona: Casitas
sede_principal: cajibio
lat: 2.6904
lng: -76.6559
impacto_visitas: 2
-
zona: 'CERRO BAJÓ'
sede_principal: morales
lat: 2.7514
lng: -76.7019
impacto_visitas: 2
-
zona: 'CERRO BAJO'
sede_principal: morales
lat: 2.7516
lng: -76.7008
impacto_visitas: 5
-
zona: cidral
sede_principal: cajibio
lat: 2.6751
lng: -76.6708
impacto_visitas: 24
-
zona: 'cidral 9'
sede_principal: cajibio
lat: 2.6688
lng: -76.6629
impacto_visitas: 1
-
zona: 'cidral ojo'
sede_principal: cajibio
lat: 2.6688
lng: -76.6628
impacto_visitas: 1
-
zona: COHETERA
sede_principal: cajibio
lat: 2.6437
lng: -76.6293
impacto_visitas: 30
-
zona: diamante
sede_principal: cajibio
lat: 2.6774
lng: -76.7275
impacto_visitas: 2
-
zona: dinde
sede_principal: cajibio
lat: 2.6971
lng: -76.7581
impacto_visitas: 187
-
zona: 'el cidral'
sede_principal: cajibio
lat: 2.6811
lng: -76.6751
impacto_visitas: 16
-
zona: 'el cidral L9'
sede_principal: cajibio
lat: 2.674
lng: -76.6769
impacto_visitas: 1
-
zona: 'el lago'
sede_principal: cajibio
lat: 2.5753
lng: -76.604
impacto_visitas: 1
-
zona: Fátima
sede_principal: morales
lat: 2.7584
lng: -76.631
impacto_visitas: 1
-
zona: finde
sede_principal: cajibio
lat: 2.6865
lng: -76.7607
impacto_visitas: 1
-
zona: Florida
sede_principal: cajibio
lat: 2.5709
lng: -76.6947
impacto_visitas: 4
-
zona: Granja
sede_principal: cajibio
lat: 2.6519
lng: -76.6093
impacto_visitas: 3
-
zona: guangubio
sede_principal: cajibio
lat: 2.5815
lng: -76.6729
impacto_visitas: 67
-
zona: independencia
sede_principal: cajibio
lat: 2.7156
lng: -76.7199
impacto_visitas: 9
-
zona: independiente
sede_principal: cajibio
lat: 2.7095
lng: -76.7176
impacto_visitas: 1
-
zona: jardín
sede_principal: cajibio
lat: 2.5937
lng: -76.6798
impacto_visitas: 1
-
zona: 'l granja'
sede_principal: cajibio
lat: 2.6487
lng: -76.6107
impacto_visitas: 6
-
zona: 'l palma'
sede_principal: cajibio
lat: 2.6655
lng: -76.6249
impacto_visitas: 1
-
zona: 'l pedregosa'
sede_principal: cajibio
lat: 2.6666
lng: -76.6278
impacto_visitas: 1
-
zona: 'l. a palma'
sede_principal: cajibio
lat: 2.6672
lng: -76.6272
impacto_visitas: 1
-
zona: 'l. Granja'
sede_principal: cajibio
lat: 2.751
lng: -76.6696
impacto_visitas: 1
-
zona: 'l. palma'
sede_principal: cajibio
lat: 2.6663
lng: -76.6259
impacto_visitas: 1
-
zona: 'la arroyuela'
sede_principal: cajibio
lat: 2.6458
lng: -76.655
impacto_visitas: 5
-
zona: 'LA AURELIA'
sede_principal: cajibio
lat: 2.6581
lng: -76.6207
impacto_visitas: 1
-
zona: 'la balsa'
sede_principal: cajibio
lat: 2.5838
lng: -76.6722
impacto_visitas: 1
-
zona: 'La Florida'
sede_principal: cajibio
lat: 2.5602
lng: -76.6945
impacto_visitas: 1
-
zona: 'la granja'
sede_principal: cajibio
lat: 2.653
lng: -76.6128
impacto_visitas: 78
-
zona: 'la granja'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'la palma'
sede_principal: cajibio
lat: 2.6647
lng: -76.625
impacto_visitas: 134
-
zona: 'la palma pedregosa'
sede_principal: cajibio
lat: 2.6723
lng: -76.6232
impacto_visitas: 1
-
zona: 'La pama'
sede_principal: cajibio
lat: 2.669
lng: -76.6307
impacto_visitas: 1
-
zona: 'la pedregosa'
sede_principal: cajibio
lat: 2.6684
lng: -76.64
impacto_visitas: 35
-
zona: 'la unión'
sede_principal: cajibio
lat: 2.5936
lng: -76.603
impacto_visitas: 6
-
zona: 'la, palma'
sede_principal: cajibio
lat: 2.6632
lng: -76.6284
impacto_visitas: 3
-
zona: 'la. Granja'
sede_principal: cajibio
lat: 2.6454
lng: -76.6048
impacto_visitas: 2
-
zona: 'laa casitas'
sede_principal: cajibio
lat: 2.6897
lng: -76.6725
impacto_visitas: 2
-
zona: lago
sede_principal: cajibio
lat: 2.5792
lng: -76.6023
impacto_visitas: 1
-
zona: laguna
sede_principal: cajibio
lat: 2.7027
lng: -76.7704
impacto_visitas: 77
-
zona: 'laguna dinde'
sede_principal: cajibio
lat: 2.7062
lng: -76.7754
impacto_visitas: 24
-
zona: 'las casitas'
sede_principal: cajibio
lat: 2.691
lng: -76.658
impacto_visitas: 62
-
zona: 'loma corta'
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: 'loma larga'
sede_principal: cajibio
lat: 2.5685
lng: -76.6064
impacto_visitas: 5
-
zona: 'Los Pinos'
sede_principal: cajibio
lat: 2.5731
lng: -76.6684
impacto_visitas: 1
-
zona: MATARREDONDA
sede_principal: morales
lat: 2.7379
lng: -76.6653
impacto_visitas: 3
-
zona: MESETA
sede_principal: cajibio
lat: 2.5904
lng: -76.6956
impacto_visitas: 18
-
zona: michinchal
sede_principal: cajibio
lat: 2.688
lng: -76.7056
impacto_visitas: 24
-
zona: monterredondo
sede_principal: cajibio
lat: 2.6624
lng: -76.7159
impacto_visitas: 3
-
zona: MORALES
sede_principal: morales
lat: 2.7322
lng: -76.6541
impacto_visitas: 1
-
zona: mucho
sede_principal: cajibio
lat: 2.6721
lng: -76.7027
impacto_visitas: 1
-
zona: 'Nuevo horizonte'
sede_principal: cajibio
lat: 2.5961
lng: -76.6953
impacto_visitas: 26
-
zona: ortega
sede_principal: cajibio
lat: 2.683
lng: -76.7973
impacto_visitas: 148
-
zona: pal
sede_principal: cajibio
lat: 2.5614
lng: -76.613
impacto_visitas: 1
-
zona: palace
sede_principal: cajibio
lat: 2.563
lng: -76.6137
impacto_visitas: 34
-
zona: palma
sede_principal: cajibio
lat: 2.6598
lng: -76.6221
impacto_visitas: 35
-
zona: palomera
sede_principal: piendamo
lat: 2.6792
lng: -76.5335
impacto_visitas: 1
-
zona: 'PAN DE AZUCAR'
sede_principal: morales
lat: 2.7418
lng: -76.7019
impacto_visitas: 5
-
zona: 'PAN de azúcar. san francisco cajibio'
sede_principal: cajibio
lat: 2.7353
lng: -76.7025
impacto_visitas: 1
-
zona: Pedregosa
sede_principal: cajibio
lat: 2.6755
lng: -76.646
impacto_visitas: 89
-
zona: pinos
sede_principal: cajibio
lat: 2.5724
lng: -76.6677
impacto_visitas: 13
-
zona: PLAYON
sede_principal: morales
lat: 2.7364
lng: -76.7268
impacto_visitas: 5
-
zona: poooo
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 1
-
zona: PORVENIR
sede_principal: cajibio
lat: 2.6476
lng: -76.649
impacto_visitas: 3
-
zona: PPRIMAVERA
sede_principal: cajibio
lat: 2.6221
lng: -76.6578
impacto_visitas: 1
-
zona: PRIMAVERA
sede_principal: cajibio
lat: 2.6214
lng: -76.6549
impacto_visitas: 104
-
zona: PRIMAVERA⁶
sede_principal: cajibio
lat: 2.6243
lng: -76.6621
impacto_visitas: 1
-
zona: Recuerdo
sede_principal: cajibio
lat: 2.6229
lng: -76.7599
impacto_visitas: 27
-
zona: 'Recuerdo Bajo'
sede_principal: cajibio
lat: 2.6334
lng: -76.7692
impacto_visitas: 6
-
zona: 'Recuerdo Bajo 0'
sede_principal: cajibio
lat: 2.6032
lng: -76.7779
impacto_visitas: 1
-
zona: Rosario
sede_principal: cajibio
lat: 2.6119
lng: -76.736
impacto_visitas: 69
-
zona: ROSARIO
sede_principal: morales
lat: 2.7375
lng: -76.6681
impacto_visitas: 18
-
zona: 'Rural El Rosario'
sede_principal: morales
lat: 2.7324
lng: -76.6672
impacto_visitas: 2
-
zona: 'rural San Roque'
sede_principal: cajibio
lat: 2.7252
lng: -76.7643
impacto_visitas: 1
-
zona: salero
sede_principal: cajibio
lat: 2.6441
lng: -76.5276
impacto_visitas: 1
-
zona: 'san jose'
sede_principal: cajibio
lat: 2.6641
lng: -76.7003
impacto_visitas: 1
-
zona: 'san antonio'
sede_principal: cajibio
lat: 2.7247
lng: -76.6928
impacto_visitas: 23
-
zona: 'san Gabriel'
sede_principal: cajibio
lat: 2.6228
lng: -76.704
impacto_visitas: 69
-
zona: 'san jose'
sede_principal: cajibio
lat: 2.6736
lng: -76.6782
impacto_visitas: 20
-
zona: 'san jose'
sede_principal: piendamo
lat: 2.708
lng: -76.5737
impacto_visitas: 1
-
zona: 'san jose carmelo'
sede_principal: cajibio
lat: 2.689
lng: -76.6986
impacto_visitas: 15
-
zona: 'San Lorenzo'
sede_principal: cajibio
lat: 2.6127
lng: -76.769
impacto_visitas: 10
-
zona: 'san Migue'
sede_principal: cajibio
lat: 2.6976
lng: -76.7549
impacto_visitas: 1
-
zona: 'SAN RAFAEL'
sede_principal: morales
lat: 2.7352
lng: -76.6384
impacto_visitas: 3
-
zona: si
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 2
-
zona: siii
sede_principal: cajibio
lat: 2.6234
lng: -76.571
impacto_visitas: 1
-
zona: 'SOCORRO BAJÓ'
sede_principal: morales
lat: 2.7364
lng: -76.7414
impacto_visitas: 2
-
zona: 'SOCORRO BAJO'
sede_principal: morales
lat: 2.7356
lng: -76.7414
impacto_visitas: 1
-
zona: tigre
sede_principal: cajibio
lat: 2.608
lng: -76.695
impacto_visitas: 83
-
zona: 'Tropical Tumaco'
sede_principal: cajibio
lat: 2.5932
lng: -76.7659
impacto_visitas: 5
-
zona: Tumaco
sede_principal: cajibio
lat: 2.5957
lng: -76.7643
impacto_visitas: 12
-
zona: TUNEL
sede_principal: cajibio
lat: 2.5534
lng: -76.5544
impacto_visitas: 3
-
zona: tunia
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: unión
sede_principal: cajibio
lat: 2.5929
lng: -76.6061
impacto_visitas: 44
-
zona: 'v/ uvales'
sede_principal: piendamo
lat: 2.7332
lng: -76.5693
impacto_visitas: 1
-
zona: 'v/campo alegre'
sede_principal: piendamo
lat: 2.7334
lng: -76.5806
impacto_visitas: 1
-
zona: v/salinas
sede_principal: piendamo
lat: 2.8241
lng: -76.5847
impacto_visitas: 1
-
zona: VENTA
sede_principal: cajibio
lat: 2.5873
lng: -76.5595
impacto_visitas: 9
-
zona: 'vereda cacahual'
sede_principal: cajibio
lat: 2.6924
lng: -76.7302
impacto_visitas: 1
-
zona: 'vereda diamante'
sede_principal: cajibio
lat: 2.6733
lng: -76.7129
impacto_visitas: 1
-
zona: 'vereda altamira'
sede_principal: cajibio
lat: 2.6699
lng: -76.7354
impacto_visitas: 5
-
zona: 'vereda alto piendamo'
sede_principal: piendamo
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'vereda arroyuela'
sede_principal: cajibio
lat: 2.6456
lng: -76.6686
impacto_visitas: 3
-
zona: 'vereda buena vista'
sede_principal: cajibio
lat: 2.6904
lng: -76.6725
impacto_visitas: 2
-
zona: 'vereda cacahual'
sede_principal: cajibio
lat: 2.6919
lng: -76.7272
impacto_visitas: 89
-
zona: 'vereda campo alegre'
sede_principal: piendamo
lat: 2.7317
lng: -76.5837
impacto_visitas: 2
-
zona: 'vereda campo alegre9'
sede_principal: piendamo
lat: 2.73
lng: -76.5869
impacto_visitas: 1
-
zona: 'vereda carmelo'
sede_principal: cajibio
lat: 2.6641
lng: -76.7022
impacto_visitas: 1
-
zona: 'vereda casas bajas'
sede_principal: cajibio
lat: 2.6511
lng: -76.7326
impacto_visitas: 1
-
zona: 'vereda diamante'
sede_principal: cajibio
lat: 2.6828
lng: -76.7207
impacto_visitas: 3
-
zona: 'vereda el cidral'
sede_principal: cajibio
lat: 2.6774
lng: -76.6764
impacto_visitas: 2
-
zona: 'vereda el diamante'
sede_principal: cajibio
lat: 2.6837
lng: -76.7199
impacto_visitas: 3
-
zona: 'Vereda El Maco'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 2
-
zona: 'vereda granja'
sede_principal: cajibio
lat: 2.6472
lng: -76.6082
impacto_visitas: 1
-
zona: 'vereda independencia'
sede_principal: cajibio
lat: 2.7143
lng: -76.7196
impacto_visitas: 21
-
zona: 'vereda la arroyuela'
sede_principal: cajibio
lat: 2.6494
lng: -76.6705
impacto_visitas: 3
-
zona: 'vereda la aurelia'
sede_principal: cajibio
lat: 2.6486
lng: -76.5961
impacto_visitas: 2
-
zona: 'vereda la aurelia.'
sede_principal: cajibio
lat: 2.6451
lng: -76.5952
impacto_visitas: 1
-
zona: 'vereda la esmeralda'
sede_principal: piendamo
lat: 2.6938
lng: -76.5394
impacto_visitas: 1
-
zona: 'vereda la granja'
sede_principal: cajibio
lat: 2.6452
lng: -76.6038
impacto_visitas: 1
-
zona: 'vereda la palma'
sede_principal: cajibio
lat: 2.6639
lng: -76.6251
impacto_visitas: 6
-
zona: 'vereda la palomera tunia'
sede_principal: piendamo
lat: 2.6792
lng: -76.5335
impacto_visitas: 1
-
zona: 'Vereda loma de bogota'
sede_principal: piendamo
lat: 2.7271
lng: -76.5519
impacto_visitas: 1
-
zona: 'Vereda Maci'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 1
-
zona: 'Vereda Maco'
sede_principal: morales
lat: 2.7586
lng: -76.6314
impacto_visitas: 1
-
zona: 'vereda michinchal'
sede_principal: cajibio
lat: 2.6895
lng: -76.7055
impacto_visitas: 37
-
zona: 'vereda puerta chiquita'
sede_principal: cajibio
lat: 2.6311
lng: -76.6786
impacto_visitas: 1
-
zona: 'vereda salero'
sede_principal: cajibio
lat: 2.6865
lng: -76.6665
impacto_visitas: 3
-
zona: 'vereda san g'
sede_principal: cajibio
lat: 2.6221
lng: -76.6982
impacto_visitas: 1
-
zona: 'vereda san Gabriel'
sede_principal: cajibio
lat: 2.6239
lng: -76.7049
impacto_visitas: 75
-
zona: 'vereda san jose'
sede_principal: cajibio
lat: 2.6833
lng: -76.7223
impacto_visitas: 1
-
zona: 'vereda san jose'
sede_principal: piendamo
lat: 2.708
lng: -76.5737
impacto_visitas: 2
-
zona: 'vereda san miguel'
sede_principal: cajibio
lat: 2.691
lng: -76.5756
impacto_visitas: 2
-
zona: 'vereda vivas Balcazar'
sede_principal: piendamo
lat: 2.678
lng: -76.5281
impacto_visitas: 1
-
zona: veredactunia
sede_principal: piendamo
lat: 2.6938
lng: -76.5394
impacto_visitas: 1
-
zona: 'villa marcela'
sede_principal: piendamo
lat: 2.6365
lng: -76.5265
impacto_visitas: 1
-
zona: villermosa
sede_principal: cajibio
lat: 2.6678
lng: -76.6598
impacto_visitas: 1
-
zona: VIUDA
sede_principal: cajibio
lat: 2.5656
lng: -76.5918
impacto_visitas: 4
-
zona: x
sede_principal: cajibio
lat: 2.6744
lng: -76.7303
impacto_visitas: 2
items:
type: object
properties:
zona:
type: string
example: '208'
sede_principal:
type: string
example: cajibio
lat:
type: number
example: 2.5706
lng:
type: number
example: -76.6619
impacto_visitas:
type: integer
example: 1
version:
type: string
example: v1
cache:
type: boolean
example: true
tags:
- 'Estadísticas Públicas (Landing Page)'
security: []
/api/estadisticas:
get:
summary: 'Obtener estadísticas generales'
operationId: obtenerEstadsticasGenerales
description: "Retorna el conteo de pacientes (total) y actividades (visitas, tamizajes, envíos, encuestas) del usuario logueado.\nSi no se envían fechas, filtra por el mes actual."
parameters:
-
in: query
name: fecha_inicio
description: 'date Fecha inicial (YYYY-MM-DD).'
example: '2024-03-01'
required: false
schema:
type: string
description: 'date Fecha inicial (YYYY-MM-DD).'
example: '2024-03-01'
-
in: query
name: fecha_fin
description: 'date Fecha final (YYYY-MM-DD).'
example: '2024-03-31'
required: false
schema:
type: string
description: 'date Fecha final (YYYY-MM-DD).'
example: '2024-03-31'
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Estadísticas y Dashboard'
'/api/estadisticas/sede/{sedeId}':
get:
summary: 'Obtener estadísticas por sede específica'
operationId: obtenerEstadsticasPorSedeEspecfica
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Estadísticas y Dashboard'
security: []
parameters:
-
in: path
name: sedeId
description: ''
example: architecto
required: true
schema:
type: string
/api/pacientes:
get:
summary: 'Listar pacientes'
operationId: listarPacientes
description: 'Obtiene todos los pacientes registrados con su sede asociada.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
example: uuid-1234
identificacion:
type: string
example: '102030'
nombre:
type: string
example: Juan
apellido:
type: string
example: Perez
sede:
type: object
properties:
id:
type: integer
example: 1
nombre:
type: string
example: 'Sede Central'
example:
-
id: uuid-1234
identificacion: '102030'
nombre: Juan
apellido: Perez
sede:
id: 1
nombre: 'Sede Central'
tags:
- 'Gestión de Pacientes'
post:
summary: 'Registrar paciente'
operationId: registrarPaciente
description: 'Crea un nuevo registro de paciente.'
parameters: []
responses:
201:
description: ''
content:
application/json:
schema:
type: object
example:
id: uuid-5678
identificacion: '10203040'
nombre: Carlos
estado: activo
properties:
id:
type: string
example: uuid-5678
identificacion:
type: string
example: '10203040'
nombre:
type: string
example: Carlos
estado:
type: string
example: activo
tags:
- 'Gestión de Pacientes'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
identificacion:
type: string
description: 'El documento de identidad.'
example: '10203040'
fecnacimiento:
type: string
description: 'Fecha de nacimiento (Y-m-d).'
example: '1990-05-15'
nombre:
type: string
description: 'Nombres del paciente.'
example: Carlos
apellido:
type: string
description: 'Apellidos del paciente.'
example: Rodriguez
genero:
type: string
description: 'Género (Masculino/Femenino/Otro).'
example: Masculino
idsede:
type: string
description: 'ID de la sede a la que pertenece.'
example: '1'
required:
- identificacion
- fecnacimiento
- nombre
- apellido
- genero
- idsede
'/api/pacientes/{id}':
get:
summary: 'Consultar paciente'
operationId: consultarPaciente
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Gestión de Pacientes'
put:
summary: 'Actualizar paciente'
operationId: actualizarPaciente
description: ''
parameters: []
responses: { }
tags:
- 'Gestión de Pacientes'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
identificacion:
type: string
description: ''
example: null
fecnacimiento:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
nombre:
type: string
description: ''
example: null
apellido:
type: string
description: ''
example: null
genero:
type: string
description: ''
example: null
idsede:
type: string
description: 'The id of an existing record in the sedes table.'
example: null
delete:
summary: 'Eliminar paciente'
operationId: eliminarPaciente
description: ''
parameters: []
responses: { }
tags:
- 'Gestión de Pacientes'
parameters:
-
in: path
name: id
description: 'ID del paciente.'
example: architecto
required: true
schema:
type: string
'/api/pacientes/buscar/{identificacion}':
get:
summary: 'Buscar por identificación'
operationId: buscarPorIdentificacin
description: 'Encuentra un paciente usando su número de documento.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
id: uuid-1234
identificacion: '102030'
nombre: Juan
properties:
id:
type: string
example: uuid-1234
identificacion:
type: string
example: '102030'
nombre:
type: string
example: Juan
404:
description: ''
content:
application/json:
schema:
type: object
example:
message: 'Paciente no encontrado'
properties:
message:
type: string
example: 'Paciente no encontrado'
tags:
- 'Gestión de Pacientes'
parameters:
-
in: path
name: identificacion
description: 'El número del documento.'
example: '102030'
required: true
schema:
type: string
/api/pacientes/sync-batch:
post:
summary: 'Sincronización masiva (Offline-first)'
operationId: sincronizacinMasivaOfflineFirst
description: 'Permite sincronizar un lote de pacientes desde la aplicación móvil. El sistema identifica si debe crear o actualizar basándose en el ID.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Sincronización completada'
resultados:
creados: 1
actualizados: 0
errores: []
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Sincronización completada'
resultados:
type: object
properties:
creados:
type: integer
example: 1
actualizados:
type: integer
example: 0
errores:
type: array
example: []
tags:
- 'Gestión de Pacientes'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
pacientes:
type: array
description: 'Lista de pacientes a sincronizar.'
example:
- []
items:
type: object
properties:
id:
type: string
description: 'UUID del paciente en el dispositivo.'
example: uuid-mobile-1
identificacion:
type: string
description: Documento.
example: '12345'
nombre:
type: string
description: Nombre.
example: Pedro
apellido:
type: string
description: Apellido.
example: Picapiedra
fecnacimiento:
type: string
description: 'Fecha (Y-m-d).'
example: '1980-01-01'
required:
- id
- identificacion
- nombre
- apellido
required:
- pacientes
'/api/pacientes/{id}/coordenadas':
put:
summary: 'Actualizar coordenadas'
operationId: actualizarCoordenadas
description: 'Actualiza la ubicación geográfica (Latitud/Longitud) del paciente.'
parameters: []
responses:
200:
description: ''
content:
application/json:
schema:
type: object
example:
success: true
message: 'Coordenadas actualizadas exitosamente'
data:
id: uuid-123
latitud: 6.2442
longitud: -75.5812
properties:
success:
type: boolean
example: true
message:
type: string
example: 'Coordenadas actualizadas exitosamente'
data:
type: object
properties:
id:
type: string
example: uuid-123
latitud:
type: number
example: 6.2442
longitud:
type: number
example: -75.5812
tags:
- 'Gestión de Pacientes'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
latitud:
type: number
description: 'Latitud entre -90 y 90.'
example: 6.2442
longitud:
type: number
description: 'Longitud entre -180 y 180.'
example: -75.5812
required:
- latitud
- longitud
parameters:
-
in: path
name: id
description: 'The ID of the paciente.'
example: architecto
required: true
schema:
type: string
/api/usuarios:
get:
summary: 'Listar usuarios'
operationId: listarUsuarios
description: ''
parameters:
-
in: query
name: rol
description: 'Filtrar por rol (admin, auxiliar, supervisor).'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por rol (admin, auxiliar, supervisor).'
example: architecto
-
in: query
name: sede_id
description: 'Filtrar por ID de sede.'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por ID de sede.'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Gestión de Usuarios'
post:
summary: 'Almacenar un nuevo usuario.'
operationId: almacenarUnNuevoUsuario
description: ''
parameters: []
responses: { }
tags:
- 'Gestión de Usuarios'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
nombre:
type: string
description: 'Must not be greater than 255 characters.'
example: b
usuario:
type: string
description: 'Must not be greater than 50 characters.'
example: 'n'
correo:
type: string
description: 'Must be a valid email address.'
example: ashly64@example.com
contrasena:
type: string
description: 'Must be at least 6 characters.'
example: vdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlx
rol:
type: string
description: ''
example: supervisor
enum:
- admin
- auxiliar
- aux
- supervisor
sede_id:
type: string
description: 'The id of an existing record in the sedes table.'
example: architecto
required:
- nombre
- usuario
- correo
- contrasena
- rol
- sede_id
security: []
'/api/usuarios/{id}':
get:
summary: 'Mostrar un usuario específico.'
operationId: mostrarUnUsuarioEspecfico
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Gestión de Usuarios'
security: []
put:
summary: 'Actualizar un usuario específico.'
operationId: actualizarUnUsuarioEspecfico
description: ''
parameters: []
responses: { }
tags:
- 'Gestión de Usuarios'
security: []
delete:
summary: 'Eliminar un usuario específico.'
operationId: eliminarUnUsuarioEspecfico
description: ''
parameters: []
responses: { }
tags:
- 'Gestión de Usuarios'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the usuario.'
example: architecto
required: true
schema:
type: string
'/api/usuarios/rol/{rol}':
get:
summary: 'Obtener usuarios por rol.'
operationId: obtenerUsuariosPorRol
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Gestión de Usuarios'
security: []
parameters:
-
in: path
name: rol
description: 'The rol.'
example: architecto
required: true
schema:
type: string
/api/auxiliares:
get:
summary: 'Obtener auxiliares (método específico).'
operationId: obtenerAuxiliaresmtodoEspecfico
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Gestión de Usuarios'
security: []
/api/medicamentos:
get:
summary: 'Listar medicamentos'
operationId: listarMedicamentos
description: ''
parameters:
-
in: query
name: busqueda
description: 'Filtrar por nombre de medicamento.'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por nombre de medicamento.'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Medicamentos
post:
summary: ''
operationId: postApiMedicamentos
description: ''
parameters: []
responses: { }
tags:
- Medicamentos
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
nombmedicamento:
type: string
description: ''
example: architecto
required:
- nombmedicamento
security: []
'/api/medicamentos/{id}':
get:
summary: ''
operationId: getApiMedicamentosId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Medicamentos
security: []
put:
summary: ''
operationId: putApiMedicamentosId
description: ''
parameters: []
responses: { }
tags:
- Medicamentos
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
nombmedicamento:
type: string
description: ''
example: null
security: []
delete:
summary: ''
operationId: deleteApiMedicamentosId
description: ''
parameters: []
responses: { }
tags:
- Medicamentos
security: []
parameters:
-
in: path
name: id
description: 'The ID of the medicamento.'
example: architecto
required: true
schema:
type: string
/api/medicamentos/buscar:
get:
summary: 'Listar medicamentos'
operationId: listarMedicamentos
description: ''
parameters:
-
in: query
name: busqueda
description: 'Filtrar por nombre de medicamento.'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por nombre de medicamento.'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Medicamentos
'/api/pacientes/{id}/medicamentos':
post:
summary: 'Asignar medicamentos a paciente'
operationId: asignarMedicamentosAPaciente
description: ''
parameters: []
responses: { }
tags:
- 'Medicamentos de Paciente'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
medicamentos:
type: array
description: 'Lista de medicamentos.'
example:
- []
items:
type: object
properties:
'*':
type: object
description: ''
example:
id: architecto
properties:
id:
type: string
description: 'ID del medicamento.'
example: architecto
dosis:
type: string
description: 'Dosis asignada.'
example: architecto
cantidad:
type: integer
description: 'Cantidad entregada/asignada.'
example: 16
required:
- id
required:
- medicamentos
put:
summary: ''
operationId: putApiPacientesIdMedicamentos
description: ''
parameters: []
responses: { }
tags:
- 'Medicamentos de Paciente'
security: []
delete:
summary: ''
operationId: deleteApiPacientesIdMedicamentos
description: ''
parameters: []
responses: { }
tags:
- 'Medicamentos de Paciente'
security: []
get:
summary: ''
operationId: getApiPacientesIdMedicamentos
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Medicamentos de Paciente'
security: []
parameters:
-
in: path
name: id
description: 'ID del paciente.'
example: architecto
required: true
schema:
type: string
/api/notifications/register-device:
post:
summary: 'Registrar dispositivo'
operationId: registrarDispositivo
description: 'Registra el token FCM del dispositivo para recibir notificaciones push.'
parameters: []
responses: { }
tags:
- 'Notificaciones Push (FCM)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'ID del usuario.'
example: architecto
fcm_token:
type: string
description: 'Token generado por Firebase en el móvil.'
example: architecto
platform:
type: string
description: 'android, ios, web.'
example: android
device_name:
type: string
description: ''
example: architecto
nullable: true
required:
- user_id
- fcm_token
- platform
/api/notifications/send-to-user:
post:
summary: ''
operationId: postApiNotificationsSendToUser
description: ''
parameters: []
responses: { }
tags:
- 'Notificaciones Push (FCM)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
user_id:
type: string
description: 'The id of an existing record in the usuarios table.'
example: architecto
title:
type: string
description: 'Must not be greater than 255 characters.'
example: 'n'
body:
type: string
description: ''
example: architecto
data:
type: object
description: ''
example: null
properties: { }
nullable: true
required:
- user_id
- title
- body
security: []
/api/notifications/send-to-all:
post:
summary: 'Notificación masiva (Broadcast)'
operationId: notificacinMasivaBroadcast
description: 'Envía una notificación push a todos los dispositivos registrados en el sistema.'
parameters: []
responses: { }
tags:
- 'Notificaciones Push (FCM)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
title:
type: string
description: 'Título de la notificación.'
example: architecto
body:
type: string
description: 'Contenido del mensaje.'
example: architecto
data:
type: object
description: 'Datos adicionales (key-value).'
example: []
properties: { }
nullable: true
required:
- title
- body
/api/notifications/unregister-device:
post:
summary: ''
operationId: postApiNotificationsUnregisterDevice
description: ''
parameters: []
responses: { }
tags:
- 'Notificaciones Push (FCM)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
fcm_token:
type: string
description: ''
example: architecto
required:
- fcm_token
security: []
/api/notifications/users-with-tokens:
get:
summary: 'Listar usuarios con tokens'
operationId: listarUsuariosConTokens
description: 'Obtiene una lista paginada de usuarios que tienen tokens de FCM registrados.'
parameters:
-
in: query
name: per_page
description: 'Resultados por página. Default: 15.'
example: 16
required: false
schema:
type: integer
description: 'Resultados por página. Default: 15.'
example: 16
-
in: query
name: search
description: 'Buscar por nombre, correo o usuario.'
example: architecto
required: false
schema:
type: string
description: 'Buscar por nombre, correo o usuario.'
example: architecto
-
in: query
name: platform
description: 'Filtrar por plataforma (android, ios, web).'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por plataforma (android, ios, web).'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Notificaciones Push (FCM)'
/api/notifications/stats:
get:
summary: ''
operationId: getApiNotificationsStats
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Notificaciones Push (FCM)'
security: []
'/api/notifications/user/{userId}/tokens':
get:
summary: ''
operationId: getApiNotificationsUserUserIdTokens
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Notificaciones Push (FCM)'
security: []
parameters:
-
in: path
name: userId
description: ''
example: architecto
required: true
schema:
type: string
/api/sedes:
get:
summary: 'Listar sedes'
operationId: listarSedes
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Sedes
post:
summary: ''
operationId: postApiSedes
description: ''
parameters: []
responses: { }
tags:
- Sedes
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
nombresede:
type: string
description: ''
example: architecto
required:
- nombresede
security: []
'/api/sedes/{id}':
get:
summary: ''
operationId: getApiSedesId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- Sedes
security: []
put:
summary: ''
operationId: putApiSedesId
description: ''
parameters: []
responses: { }
tags:
- Sedes
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
nombresede:
type: string
description: ''
example: null
security: []
delete:
summary: ''
operationId: deleteApiSedesId
description: ''
parameters: []
responses: { }
tags:
- Sedes
security: []
parameters:
-
in: path
name: id
description: 'The ID of the sede.'
example: architecto
required: true
schema:
type: string
/api/tamizajes:
get:
summary: 'Listar tamizajes'
operationId: listarTamizajes
description: ''
parameters:
-
in: query
name: paciente_id
description: 'Filtrar por paciente.'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por paciente.'
example: architecto
-
in: query
name: usuario_id
description: 'Filtrar por usuario/promotor.'
example: architecto
required: false
schema:
type: string
description: 'Filtrar por usuario/promotor.'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tamizajes de Presión Arterial (PA)'
post:
summary: 'Crear tamizaje'
operationId: crearTamizaje
description: ''
parameters: []
responses: { }
tags:
- 'Tamizajes de Presión Arterial (PA)'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
idpaciente:
type: string
description: 'ID del paciente.'
example: id-paciente
vereda_residencia:
type: string
description: Vereda.
example: 'Vereda Norte'
telefono:
type: string
description: 'Must not be greater than 20 characters.'
example: gzmiyvdljnikhway
nullable: true
brazo_toma:
type: string
description: 'izquierdo o derecho.'
example: izquierdo
posicion_persona:
type: string
description: 'de_pie, acostado, sentado.'
example: sentado
reposo_cinco_minutos:
type: string
description: 'si o no.'
example: si
fecha_primera_toma:
type: date
description: 'Fecha de la toma.'
example: architecto
pa_sistolica:
type: integer
description: Sistólica.
example: 120
pa_diastolica:
type: integer
description: Diastólica.
example: 80
conducta:
type: string
description: 'Must not be greater than 1000 characters.'
example: w
nullable: true
required:
- idpaciente
- vereda_residencia
- brazo_toma
- posicion_persona
- reposo_cinco_minutos
- fecha_primera_toma
- pa_sistolica
- pa_diastolica
/api/tamizajes/estadisticas:
get:
summary: 'Obtener estadísticas de tamizajes del usuario logueado'
operationId: obtenerEstadsticasDeTamizajesDelUsuarioLogueado
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tamizajes de Presión Arterial (PA)'
security: []
'/api/tamizajes/paciente/{pacienteId}':
get:
summary: 'Obtener tamizajes por paciente'
operationId: obtenerTamizajesPorPaciente
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tamizajes de Presión Arterial (PA)'
security: []
parameters:
-
in: path
name: pacienteId
description: ''
example: architecto
required: true
schema:
type: string
/api/tamizajes/mis-tamizajes:
get:
summary: 'Obtener tamizajes del usuario autenticado'
operationId: obtenerTamizajesDelUsuarioAutenticado
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tamizajes de Presión Arterial (PA)'
security: []
'/api/tamizajes/{id}':
get:
summary: 'Consultar tamizaje'
operationId: consultarTamizaje
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tamizajes de Presión Arterial (PA)'
put:
summary: 'Actualizar tamizaje'
operationId: actualizarTamizaje
description: ''
parameters: []
responses: { }
tags:
- 'Tamizajes de Presión Arterial (PA)'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
vereda_residencia:
type: string
description: 'Must not be greater than 100 characters.'
example: b
telefono:
type: string
description: 'Must not be greater than 20 characters.'
example: ngzmiyvdljnikhwa
nullable: true
brazo_toma:
type: string
description: ''
example: izquierdo
enum:
- izquierdo
- derecho
posicion_persona:
type: string
description: ''
example: de_pie
enum:
- de_pie
- acostado
- sentado
reposo_cinco_minutos:
type: string
description: ''
example: si
enum:
- si
- 'no'
fecha_primera_toma:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
pa_sistolica:
type: integer
description: 'Must be at least 50. Must not be greater than 300.'
example: 24
pa_diastolica:
type: integer
description: 'Must be at least 30. Must not be greater than 200.'
example: 8
conducta:
type: string
description: 'Must not be greater than 1000 characters.'
example: u
nullable: true
delete:
summary: 'Eliminar un tamizaje'
operationId: eliminarUnTamizaje
description: ''
parameters: []
responses: { }
tags:
- 'Tamizajes de Presión Arterial (PA)'
security: []
parameters:
-
in: path
name: id
description: 'ID del tamizaje.'
example: architecto
required: true
schema:
type: string
/api/findrisk:
get:
summary: 'Listar tests realizados'
operationId: listarTestsRealizados
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
post:
summary: 'Crear test FINDRISK'
operationId: crearTestFINDRISK
description: ''
parameters: []
responses: { }
tags:
- 'Tests FINDRISK'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
idpaciente:
type: string
description: 'ID del paciente.'
example: 550e8400-e29b-41d4-a716-446655440000
idsede:
type: string
description: 'ID de la sede.'
example: '4044680601076201931'
vereda:
type: string
description: 'Must not be greater than 100 characters.'
example: 'n'
nullable: true
telefono:
type: string
description: 'Must not be greater than 20 characters.'
example: gzmiyvdljnikhway
nullable: true
actividad_fisica:
type: string
description: '"si" o "no".'
example: si
medicamentos_hipertension:
type: string
description: '"si" o "no".'
example: si
frecuencia_frutas_verduras:
type: string
description: '"diariamente" o "no_diariamente".'
example: diariamente
azucar_alto_detectado:
type: string
description: '"si" o "no".'
example: si
peso:
type: number
description: 'Peso en kg.'
example: 85.0
talla:
type: number
description: 'Talla en cm.'
example: 175.0
perimetro_abdominal:
type: number
description: 'Perímetro abdominal en cm.'
example: 102.0
antecedentes_familiares:
type: string
description: '(no, abuelos_tios_primos, padres_hermanos_hijos).'
example: 'no'
conducta:
type: string
description: ''
example: architecto
nullable: true
promotor_vida:
type: string
description: 'Must not be greater than 100 characters.'
example: 'n'
nullable: true
required:
- idpaciente
- idsede
- actividad_fisica
- medicamentos_hipertension
- frecuencia_frutas_verduras
- azucar_alto_detectado
- peso
- talla
- perimetro_abdominal
- antecedentes_familiares
'/api/findrisk/{id}':
get:
summary: 'Consultar test FINDRISK'
operationId: consultarTestFINDRISK
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
put:
summary: 'Actualizar test FINDRISK'
operationId: actualizarTestFINDRISK
description: ''
parameters: []
responses: { }
tags:
- 'Tests FINDRISK'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
idsede:
type: string
description: 'The id of an existing record in the sedes table.'
example: null
vereda:
type: string
description: 'Must not be greater than 100 characters.'
example: b
nullable: true
telefono:
type: string
description: 'Must not be greater than 20 characters.'
example: ngzmiyvdljnikhwa
nullable: true
actividad_fisica:
type: string
description: ''
example: si
enum:
- si
- 'no'
medicamentos_hipertension:
type: string
description: ''
example: si
enum:
- si
- 'no'
frecuencia_frutas_verduras:
type: string
description: ''
example: diariamente
enum:
- diariamente
- no_diariamente
azucar_alto_detectado:
type: string
description: ''
example: si
enum:
- si
- 'no'
peso:
type: number
description: 'Must be at least 1. Must not be greater than 300.'
example: 8
talla:
type: number
description: 'Must be at least 50. Must not be greater than 250.'
example: 6
perimetro_abdominal:
type: number
description: 'Must be at least 30. Must not be greater than 200.'
example: 25
antecedentes_familiares:
type: string
description: ''
example: padres_hermanos_hijos
enum:
- 'no'
- abuelos_tios_primos
- padres_hermanos_hijos
conducta:
type: string
description: ''
example: architecto
nullable: true
promotor_vida:
type: string
description: 'Must not be greater than 100 characters.'
example: 'n'
nullable: true
delete:
summary: ''
operationId: deleteApiFindriskId
description: ''
parameters: []
responses: { }
tags:
- 'Tests FINDRISK'
security: []
parameters:
-
in: path
name: id
description: 'ID del test.'
example: '1'
required: true
schema:
type: string
/api/findrisk-estadisticas:
get:
summary: ''
operationId: getApiFindriskEstadisticas
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
'/api/findrisk-estadisticas/sede/{idsede}':
get:
summary: ''
operationId: getApiFindriskEstadisticasSedeIdsede
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
parameters:
-
in: path
name: idsede
description: ''
example: architecto
required: true
schema:
type: string
'/api/findrisk/paciente/{idpaciente}':
get:
summary: ''
operationId: getApiFindriskPacienteIdpaciente
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
parameters:
-
in: path
name: idpaciente
description: ''
example: architecto
required: true
schema:
type: string
'/api/findrisk/sede/{idsede}':
get:
summary: ''
operationId: getApiFindriskSedeIdsede
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
parameters:
-
in: path
name: idsede
description: ''
example: architecto
required: true
schema:
type: string
'/api/findrisk/paciente-sede/{identificacion}':
get:
summary: ''
operationId: getApiFindriskPacienteSedeIdentificacion
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
parameters:
-
in: path
name: identificacion
description: ''
example: architecto
required: true
schema:
type: string
/api/findrisk-tests/export:
get:
summary: ''
operationId: getApiFindriskTestsExport
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Tests FINDRISK'
security: []
/api/visitas:
get:
summary: 'Listar todas las visitas'
operationId: listarTodasLasVisitas
description: 'Permite filtrar las visitas por rango de fechas, usuario que realizó la visita y sede asociada al paciente.'
parameters:
-
in: query
name: fecha_desde
description: 'date optional Filtrar visitas desde esta fecha.'
example: '2024-01-01'
required: false
schema:
type: string
description: 'date optional Filtrar visitas desde esta fecha.'
example: '2024-01-01'
-
in: query
name: fecha_hasta
description: 'date optional Filtrar visitas hasta esta fecha.'
example: '2024-12-31'
required: false
schema:
type: string
description: 'date optional Filtrar visitas hasta esta fecha.'
example: '2024-12-31'
-
in: query
name: idusuario
description: 'optional Filtrar por el ID del usuario que realizó la visita.'
example: architecto
required: false
schema:
type: string
description: 'optional Filtrar por el ID del usuario que realizó la visita.'
example: architecto
-
in: query
name: idsede
description: 'optional Filtrar por el ID de la sede a la que pertenece el paciente.'
example: architecto
required: false
schema:
type: string
description: 'optional Filtrar por el ID de la sede a la que pertenece el paciente.'
example: architecto
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Visitas Domiciliarias'
post:
summary: 'Crear visita domiciliaria'
operationId: crearVisitaDomiciliaria
description: 'Permite registrar una visita, procesando coordenadas, fotos de riesgo y firmas en archivos o Base64.'
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
requestBody:
required: true
content:
multipart/form-data:
schema:
type: object
properties:
nombre_apellido:
type: string
description: 'Nombre del paciente contactado.'
example: architecto
identificacion:
type: string
description: 'Cédula del paciente.'
example: architecto
fecha:
type: date
description: 'Fecha de la visita.'
example: architecto
idusuario:
type: string
description: 'ID del usuario (Hacedor).'
example: architecto
idpaciente:
type: string
description: 'ID del paciente (opcional, se busca por cédula si falta).'
example: architecto
nullable: true
id:
type: string
description: "✅ CAMBIADO: Ya no requiere que exista en la BD\nCampos opcionales."
example: architecto
hta:
type: string
description: 'Presión arterial (si/no).'
example: architecto
nullable: true
dm:
type: string
description: 'Diabetes (si/no).'
example: architecto
nullable: true
telefono:
type: string
description: ''
example: architecto
nullable: true
zona:
type: string
description: ''
example: architecto
nullable: true
peso:
type: number
description: 'Peso (kg).'
example: 4326.41688
nullable: true
talla:
type: number
description: 'Talla (cm).'
example: 4326.41688
nullable: true
imc:
type: number
description: ''
example: 4326.41688
nullable: true
perimetro_abdominal:
type: number
description: ''
example: 4326.41688
nullable: true
frecuencia_cardiaca:
type: integer
description: ''
example: 16
nullable: true
frecuencia_respiratoria:
type: integer
description: ''
example: 16
nullable: true
tension_arterial:
type: string
description: 'Valor TA (e.g. 120/80).'
example: architecto
nullable: true
glucometria:
type: number
description: ''
example: 4326.41688
nullable: true
temperatura:
type: number
description: ''
example: 4326.41688
nullable: true
familiar:
type: string
description: ''
example: architecto
nullable: true
latitud:
type: number
description: '✅ AGREGAR VALIDACIONES FALTANTES.'
example: 4326.41688
nullable: true
longitud:
type: number
description: ''
example: 4326.41688
nullable: true
estado:
type: string
description: ''
example: architecto
nullable: true
sync_status:
type: integer
description: ''
example: 16
nullable: true
observaciones_adicionales:
type: string
description: ''
example: architecto
nullable: true
tipo_visita:
type: string
description: ''
example: architecto
nullable: true
riesgo_fotografico:
type: string
format: binary
description: 'Archivos. Must be a file. Must be an image. Must not be greater than 2048 kilobytes.'
nullable: true
riesgo_fotografico_url:
type: string
description: ''
example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
nullable: true
riesgo_fotografico_base64:
type: string
description: 'Imagen del riesgo en Base64.'
example: architecto
nullable: true
abandono_social:
type: string
description: ''
example: architecto
nullable: true
motivo:
type: string
description: ''
example: architecto
nullable: true
factores:
type: string
description: ''
example: architecto
nullable: true
conductas:
type: string
description: ''
example: architecto
nullable: true
novedades:
type: string
description: ''
example: architecto
nullable: true
proximo_control:
type: string
description: 'Must be a valid date.'
example: '2026-03-26T15:20:39'
nullable: true
firma:
type: string
format: binary
description: 'Must be a file. Must be an image. Must not be greater than 2048 kilobytes.'
nullable: true
firma_url:
type: string
description: ''
example: 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
nullable: true
firma_base64:
type: string
description: 'Firma en Base64.'
example: architecto
nullable: true
medicamentos:
type: json
description: 'JSON con lista de medicamentos e indicaciones.'
example: '[{"id": 1, "indicaciones": "Cena"}]'
required:
- nombre_apellido
- identificacion
- fecha
- idusuario
'/api/visitas/{id}':
get:
summary: ''
operationId: getApiVisitasId
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Visitas Domiciliarias'
security: []
put:
summary: 'Actualizar visita'
operationId: actualizarVisita
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
delete:
summary: ''
operationId: deleteApiVisitasId
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []
parameters:
-
in: path
name: id
description: 'The ID of the visita.'
example: 0004f8ed-7922-4ae7-9bb5-b5a80739ee69
required: true
schema:
type: string
'/api/visitas/buscar-paciente/{identificacion}':
get:
summary: ''
operationId: getApiVisitasBuscarPacienteIdentificacion
description: ''
parameters: []
responses:
401:
description: ''
content:
application/json:
schema:
type: object
example:
message: Unauthenticated.
properties:
message:
type: string
example: Unauthenticated.
tags:
- 'Visitas Domiciliarias'
security: []
parameters:
-
in: path
name: identificacion
description: ''
example: architecto
required: true
schema:
type: string
/api/upload-risk-photo:
post:
summary: ''
operationId: postApiUploadRiskPhoto
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []
/api/upload-signature:
post:
summary: ''
operationId: postApiUploadSignature
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []
/api/upload-photo:
post:
summary: ''
operationId: postApiUploadPhoto
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []
/api/visitas/upload-risk-photo-base64:
post:
summary: ''
operationId: postApiVisitasUploadRiskPhotoBase64
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []
/api/visitas/upload-signature-base64:
post:
summary: ''
operationId: postApiVisitasUploadSignatureBase64
description: ''
parameters: []
responses: { }
tags:
- 'Visitas Domiciliarias'
security: []