107 Reporte de Listado del personal Medico en PDF del Sistema con LARAVEL(PHP-MySql) FullStack

Duración: 18 min
Módulo: 📝 Historial Clínico, Configuraciones y Reportes Lección 8 de 23

Descripción

📄 Lección 107: Generación de Reporte PDF (Listado del Personal Médico)

Esta lección se enfoca en poblar y dar formato a la vista del PDF, creando un reporte personalizado para el listado del personal médico (doctores). Se incorpora la información de configuración del sistema (logo, nombre de la clínica) para darle un aspecto profesional al documento.

1. ⚙️ Carga de Datos y Configuración en el Controlador

Antes de generar el PDF, la función PDF del DoctorController debe obtener todos los datos necesarios para el reporte.

  • Recuperación de la Configuración: Se busca el último registro de configuración (Configuracion::latest()->first()) para obtener el nombre, dirección, teléfono, correo y, crucialmente, la ruta del logotipo de la clínica [03:44].
  • Recuperación de Doctores: Se obtienen todos los registros de doctores (Doctor::all()) que se incluirán en el listado [13:49].
  • Envío de Datos: Ambas variables ($configuracion y $doctores) se envían a la vista pdf.blade.php mediante el método compact() [04:27].

2. 🎨 Diseño y Estructura del Documento

La vista pdf.blade.php es tratada como un documento HTML/CSS estándar, pero con consideraciones para la renderización en PDF.

A. Estilización y Librerías [10:45]

  • Para aplicar estilos más rápidamente, se incluye el CDN de Bootstrap 4.6 en la sección <head> de la vista pdf.blade.php. Esto permite usar clases de diseño como table-bordered, table-striped o text-center.

B. Encabezado del Reporte (Logo e Información) [05:13]

Se utiliza una tabla sin bordes para estructurar el encabezado en tres columnas (logo, información de la clínica y título del reporte).

  • Logo de la Clínica: Se muestra la imagen de configuración mediante la ruta pública de Laravel (url('storage/logos/' . $configuracion->logo)) con un ancho fijo (80px) [08:42].
  • Datos de la Clínica: Se imprimen el nombre, la dirección, el teléfono y el correo de la configuración, usando saltos de línea (<br>) y un tamaño de fuente pequeño (8pt) para optimizar el espacio [06:33].
  • Título del Reporte: Se utiliza una etiqueta con subrayado y centrado para el título "Listado del Personal Médico" [08:15].

C. Tabla de Listado de Doctores [10:07]

Se crea una tabla HTML con clases de Bootstrap para la presentación de los datos del personal médico.

ColumnaDescripción
Contador secuencial de filas, manejado con una variable PHP dentro del loop ($contador++) [14:50].
Apellidos y NombresSe concatenan los campos apellido y nombre [15:18].
TeléfonoSe muestra el número de contacto [16:07].
Licencia MédicaSe muestra el número de licencia [16:35].
EspecialidadSe muestra la especialidad del doctor [16:59].
  • Recorrido de Datos: Se utiliza un loop @foreach ($doctores as $doctor) para iterar sobre la lista de médicos y generar una fila (<tr>) por cada registro [14:20].

➡️ Próximo Paso [17:58]

La siguiente lección se centrará en crear un reporte más complejo que permite la filtración de datos por rango de fechas (en este caso, para el módulo de Eventos/Reservas).