VetMedik es un sistema integral de gestión para clínicas veterinarias desarrollado en PHP, pensado para resolver lo que cualquier consultorio necesita saber de su operación diaria: qué mascotas se atienden, quién es su tutor, cuándo es la próxima cita y cuánto se ha cobrado.
Con él se organiza el expediente clínico de cada mascota, la agenda de citas médicas, el cobro de servicios y los reportes financieros. Las consultas, las recetas y los recibos de pago quedan documentados de forma centralizada, con un historial completo por cada mascota.
Este software forma parte de mi Catalogo de Sistemas Gratis (PHP & MySQL).

Es la herramienta ideal para clínicas veterinarias y consultorios que siguen llevando sus citas en libretas o en hojas de cálculo, y pierden el rastro del historial de sus pacientes cuando el expediente cambia de manos.
El sistema fue diseñado para ponerse en marcha rápidamente, ya sea en un entorno local o en un servidor de producción.
¿Para quién es VetMedik?
- Clínicas y consultorios veterinarios que necesitan un expediente clínico ordenado por cada mascota y su tutor.
- Médicos veterinarios independientes que quieren agendar consultas, cirugías y vacunaciones sin perder el control de sus citas.
- Áreas de recepción y administración que requieren registrar cobros, emitir recibos y conocer el saldo pendiente.
- Estudiantes y desarrolladores que quieren ver cómo se estructura un sistema PHP real con arquitectura por capas, servicios y plantillas Twig.
Video demostrativo
En el siguiente video se muestra cómo usar VetMedik.
[Espacio reservado para el video]
Módulos del sistema
Dashboard: Se muestran cinco tarjetas con las métricas clave de la clínica: total de mascotas, médicos veterinarios activos, citas próximas, consultas pendientes y recaudación total. Se incluyen dos gráficas interactivas hechas con Chart.js: la distribución de mascotas por especie (dona) y el estatus global de las consultas (barras). Además, un monitor de citas en formato de fichas muestra el estatus, la hora, el avatar de la especie, los datos del tutor, el médico asignado, el costo y el estado de cobro, con botones de acción directa.
Pacientes y Tutores: El expediente clínico veterinario registra nombre, especie (canino, felino, ave, roedor, exótico, etc.), raza, sexo, peso, fecha de nacimiento aproximada, microchip o número de expediente, alergias, enfermedades previas y medicación. También se guardan los datos de contacto y ubicación del tutor. Cada mascota cuenta con un historial clínico unificado donde se consultan todas sus citas y atenciones previas.
Citas y Calendario: Se programan consultas médicas, cirugías, desparasitaciones, vacunaciones y revisiones. El calendario interactivo, construido con FullCalendar, ofrece vistas por mes, semana y día totalmente en español, con acceso directo a la edición de cada cita. Desde aquí también se emiten e imprimen en PDF las recetas y comprobantes médicos, con diagnóstico, síntomas y medicamentos prescritos.
Pagos y Recibos: Las consultas y servicios pendientes son cobrados con soporte para efectivo, tarjeta de débito o crédito y transferencia bancaria. Cada cobro genera un recibo imprimible foliado, con datos fiscales y desglose de la cuenta, y la cita pasa automáticamente al estado de pagada.
Reportes: Se muestran en tiempo real las consultas totales, las consultas atendidas, los ingresos cobrados y el saldo pendiente. Los reportes se filtran por rango de fechas, médico veterinario, paciente y estatus, y se exportan a CSV con codificación UTF-8 con BOM, compatible de forma nativa con Microsoft Excel y con caracteres especiales.
Administración: Se incluyen el directorio de médicos veterinarios, las especialidades o categorías veterinarias y el control de usuarios y accesos. La interfaz es responsiva, con tablas condensadas y botones compactos, y ofrece modo claro, oscuro o automático.
Ciclo de vida de la consulta
La trazabilidad clínica y financiera es la parte que más valor aporta en un sistema veterinario. Cada mascota conserva su propio expediente, y cada cita recorre un flujo claro desde que se agenda hasta que se cobra:
| Etapa | Qué se registra |
|---|---|
| Registro | Datos de la mascota (especie, raza, peso, alergias, microchip) y del tutor |
| Cita | Fecha, hora, tipo de servicio, médico veterinario asignado y costo |
| Atención | Diagnóstico, síntomas, medicamentos prescritos y receta en PDF |
| Cobro | Método de pago, recibo foliado y liquidación automática de la cita |
| Seguimiento | Estatus de la consulta (pendiente, aplicada, no asistió o cancelada) y reportes |
Datos técnicos
| Característica | Detalle |
|---|---|
| Lenguaje | PHP 8.0, 8.1, 8.2 o superior |
| Base de datos | MySQL 5.7+ / MariaDB 10.3+ |
| Motor de plantillas | Twig 3 |
| Enrutador | FastRoute |
| UI administrativa | CoreUI v5 |
| Componentes | Chart.js, FullCalendar y FPDF |
| Arquitectura | MVC + capa de servicios (LegoBox) |
| Servidor | Apache / Nginx con mod_rewrite (XAMPP, Laragon, WAMP o Docker) |
| Extensiones PHP | pdo_mysql, mbstring, json, curl |
| Licencia | Open Source |
Instalación rápida
- Clona el repositorio dentro de tu servidor web (por ejemplo,
C:\xampp\htdocs\vetmedik). - Crea la base de datos e importa el esquema:
CREATE DATABASE IF NOT EXISTS vetmedik;y después importa el archivoschema.sqldesde phpMyAdmin, MySQL Workbench o la consola. Con esto se crean las tablas y los datos de demostración. - Configura las credenciales de conexión en
core/controller/Database.phpsi no usas root sin contraseña en local. - Accede desde tu navegador a
https://localhost/vetmedik/. - Entra con las credenciales por defecto (
admin/admin) y cámbialas de inmediato por seguridad.
Descarga
Repositorio GitHub: github.com/evilnapsis/vetmedik
Descarga directa: github.com/evilnapsis/vetmedik/archive/refs/heads/main.zip
Antes de llevarlo a producción
- Las credenciales por defecto deben ser cambiadas antes de exponer el sistema a internet.
- La conexión a la base de datos debe configurarse con un usuario dedicado y contraseña, no con root.
- La ruta de acceso debe ajustarse si el sistema no es instalado en
/vetmedik/. - Debe verificarse que el módulo
mod_rewriteesté habilitado, ya que las rutas limpias dependen de él. - Se recomienda eliminar o reemplazar los datos de demostración del esquema antes de registrar información real de pacientes.