Sistema de Gestión para Centros de Salud: Caso Real

Cómo una aplicación de escritorio en Python resuelve la administración de subcentros y postas médicas

Interfaz del sistema de gestión clínica - Pucusoft

Introducción

En Ecuador y Perú, miles de centros de salud, subcentros y postas médicas aún llevan sus registros en papel. La historia clínica del paciente, las recetas, el control de medicamentos y la agenda de citas dependen de cuadernos y archivadores que se pierden, se deterioran y no permiten tomar decisiones basadas en datos.

Frente a esta realidad, desarrollamos un sistema de escritorio que cualquier centro de salud puede implementar sin necesidad de internet ni servidores costosos. En este artículo analizamos la arquitectura, el stack y los beneficios concretos de esta solución.

Los Proyectos

Ambos repositorios alojan el mismo sistema de gestión clínica. El stack y la arquitectura son idénticos. Puedes revisar el código completo en GitHub:

Centro-Medico

Repositorio principal del sistema. Contiene toda la aplicación con la versión estable y funcional.

Python 3.13 CustomTkinter PyMySQL ReportLab
github.com/PueroSoftware/Centro-Medico

Centro_Medico_CTk

Versión derivada del mismo sistema con CustomTkinter como capa gráfica moderna.

Python 3.13 CustomTkinter PyMySQL ReportLab
github.com/PueroSoftware/Centro_Medico_CTk

Stack Tecnológico

Python 3.13

Lenguaje moderno con tipado fuerte, amplio ecosistema de librerías y facilidad de mantenimiento. Ideal para aplicaciones de escritorio en entornos de salud.

CustomTkinter

Librería moderna que extiende Tkinter con temas oscuro/claro, widgets estilizados y aspecto profesional sin perder la simplicidad del Tkinter clásico.

PyMySQL + MariaDB

Conexión directa a bases de datos MySQL/MariaDB. Permite consultas SQL avanzadas, joins entre tablas (pacientes, doctores, citas, recetas) y reportes personalizados.

ReportLab

Generación de documentos PDF directamente desde la aplicación. Recetas médicas, reportes de pacientes y resúmenes de consulta se imprimen al instante.

GeoPy + TkinterMapView

Geolocalización de centros de salud y pacientes. Visualización en mapa interactivo para planificar visitas domiciliarias y cobertura geográfica.

TkCalendar

Selector de fechas intuitivo para agendar citas, programar cirugías y controlar fechas de vencimiento de medicamentos en la botica.

Módulos del Sistema

Módulo Función Archivo
Pacientes Registro, edición, historial clínico y búsqueda de pacientes frontend/Paciente_Gui.py
Doctores Gestión de médicos, especialidades y horarios frontend/Doctor_Gui.py
Citas Agenda de consultas, reagendamiento y cancelaciones frontend/Cita_Gui.py
Recetas Generación de recetas médicas en PDF con códigos de medicamentos frontend/Receta_Gui.py
Botica / Bodega Control de inventario de medicamentos, ingresos y salidas frontend/Botica_Gui.py
Despacho Registro de entregas de medicamentos a pacientes frontend/Despacho_Gui.py
Panel de administración del sistema - Pucusoft

La arquitectura sigue el patrón MVC simplificado: cada módulo tiene su capa de base de datos en backend/ (CRUD) y su interfaz gráfica en frontend/. La conexión a la base de datos y la lógica compartida reside en fichero/.

"Separar la lógica de negocio de la interfaz gráfica permite que cualquier módulo pueda actualizarse sin afectar a los demás. Un principio básico de arquitectura de software que muchos sistemas comerciales ignoran."

¿Dos Repositorios? La Explicación Técnica

Al analizar ambos repositorios encontramos que comparten el mismo código base, las mismas dependencias y la misma estructura de carpetas. Ambos utilizan CustomTkinter como librería gráfica. La única diferencia significativa es que la versión del repositorio Centro_Medico_CTk contiene marcadores de conflicto de merge sin resolver (<<<<<<< HEAD), lo que sugiere que fue una rama de trabajo o un experimento durante la migración de Tkinter clásico a CustomTkinter.

Lección aprendida

Mantener dos repositorios para un mismo proyecto puede generar confusión. La práctica recomendada es usar ramas (branches) dentro de un mismo repositorio para diferentes versiones o experimentos, y documentar claramente qué rama está en producción.

Beneficios Reales para Centros de Salud

Eliminación de Papel

Los registros en papel se pierden, se dañan con la humedad y ocupan espacio. Un sistema digital permite encontrar la historia de cualquier paciente en segundos. Para un subcentro que atiende 50+ pacientes al día, esto ahorra horas de trabajo administrativo semanal.

Recetas Médicas Automáticas

Con ReportLab, el médico genera la receta en PDF con un clic, incluyendo medicamentos, dosis y datos del paciente. Se imprime y se entrega. Fin de la letra ilegible del doctor y de las recetas perdidas.

Control de Medicamentos

El módulo de botica/bodega lleva el inventario en tiempo real: entradas, salidas, stock mínimo y fechas de vencimiento. Evita la compra excesiva o el desabastecimiento de medicamentos críticos.

Agenda Centralizada

Todos los doctores comparten una misma agenda. No más citas dobles ni pacientes esperando por error. El sistema valida disponibilidad antes de agendar.

Sin Dependencia de Internet

A diferencia de las soluciones en la nube, esta aplicación corre completamente en modo local. Ideal para postas médicas rurales donde el internet es intermitente o inexistente. La base de datos MariaDB está en la misma red local.

Toma de Decisiones Basada en Datos

Con los datos digitalizados, el director del centro puede responder preguntas como: ¿Cuántos pacientes atendimos este mes? ¿Qué especialidad tiene más demanda? ¿Qué medicamentos se usan más? Datos que en papel simplemente no existen.

Conclusiones

Este proyecto demuestra que no hace falta una inversión millonaria para digitalizar un centro de salud. Con Python, una base de datos relacional y una interfaz gráfica moderna, cualquier subcentro o posta médica en Ecuador y Perú puede dar el salto del papel al software.

La clave está en entender las necesidades reales del personal de salud: rapidez, facilidad de uso, funcionamiento sin internet y generación de documentos físicos (recetas, reportes). Todo eso está cubierto en este sistema.

En Pucusoft adaptamos esta solución a las necesidades específicas de cada centro de salud. Desde la instalación hasta la capacitación del personal.

"La tecnología en salud no tiene que ser complicada. Tiene que ser útil, confiable y estar al alcance de quien la necesita."

¿Qué opinas de este artículo?

Escríbenos por WhatsApp, nos interesa tu opinión.

Opinar en WhatsApp
Jose Puero

Jose Puero

CEO & Desarrollador en Pucusoft

Fundé Pucusoft en 2019 con la misión de transformar ideas digitales en realidad. Más de 50 proyectos exitosos en Perú y Ecuador. Especialista en Flutter, Kotlin, Python y arquitectura de software.

¿Tu centro de salud sigue en papel?

Te ayudamos a implementar un sistema de gestión adaptado a tu presupuesto y necesidades. Consultoría gratuita.