08 Módulo Pacientes Ver Ficha Paciente, Actualizar Datos y Eliminar Sis Odontológico Clinica Dental

Duración: 11 min
Módulo: Módulo de Gestión de Pacientes (CRUD Completo) Lección 3 de 4

Descripción

🎓 Lección 08: Ver Ficha del Paciente, Actualización de Datos y Eliminación

Objetivo General: Implementar las operaciones de consulta detallada (show), actualización (edit/update) y eliminación (destroy) dentro del módulo de pacientes en Laravel para la gestión integral de un Sistema Odontológico o Clínica Dental, asegurando la integridad referencial de datos entre usuarios, roles y pacientes.

🚀 Pasos Clave de la Lección

  • 📢 ⏱️ 00:00Introducción y Contexto del Módulo: Repaso de la acción create finalizada en la lección anterior y planteamiento de las nuevas operaciones CRUD (show, edit, destroy).
  • 👁️ ⏱/ 01:10Visualización de la Ficha Médica (show): Búsqueda del registro en el controlador con la relación del usuario asociado y rendereo de la interfaz HTML de la ficha médica (calculando edad de forma automática, datos de contacto, alergias, historial y antecedentes).
  • 📝 ⏱️ 03:28Formulario de Edición y Carga de Datos (edit): Recuperación del objeto paciente por su ID y mapeo de sus propiedades existentes dentro del formulario de edición.
  • 🔄 ⏱️ 04:39Procesamiento de Actualización y Sincronización (update): Validación de inputs, actualización del modelo Paciente y verificación con wasChanged() para re-encriptar la contraseña en la tabla User si el DNI/Documento sufrió modificaciones.
  • 🧪 ⏱️ 05:50Prueba de Campo de Edición y Re-encriptación Hash: Verificación práctica en la base de datos de los cambios reflejados y de la generación del nuevo hash de contraseña tras cambiar el documento.
  • 🗑️ ⏱️ 07:28Eliminación en Cascada Controlada (destroy): Lógica para la eliminación segura de registros asociados en las tablas users, model_has_roles y pacientes mediante un modal de confirmación.
  • 🎉 ⏱️ 08:56Verificación de Limpieza de Tablas: Demostración en la base de datos de la eliminación del usuario, su rol de asignación y la ficha del paciente.

🛠️ Comandos y Rutas Principales

Tipo / AcciónRuta HTTP / ComandoMétodo / Propósito
HTTP Routing/pacientes/{id}GET — Invoca PacienteController@show para ver la ficha completa
HTTP Routing/pacientes/{id}/editGET — Invoca PacienteController@edit para cargar el formulario
HTTP Routing/pacientes/{id}PUT / PATCH — Invoca PacienteController@update para procesar cambios
HTTP Routing/pacientes/{id}DELETE — Invoca PacienteController@destroy para eliminar el registro
Artisan Commandphp artisan route:list --name=pacientesLista y verifica el mapeo correcto de las rutas de recurso del módulo

🔒 Buenas Prácticas y Seguridad

  1. 🔐 Incrustación y Cifrado Seguro de Contraseñas: Si el DNI o número de documento actúa como clave inicial por defecto, detecte el cambio mediante $paciente->wasChanged('dni') o métodos equivalentes de Eloquent antes de aplicar la función Hash::make() para evitar encriptar cadenas vacías o sin modificar.
  2. 🛡️ Integridad Referencial y Transacciones DB: Al eliminar un registro interdependiente (Usuario $\rightarrow$ Asignación de Rol $\rightarrow$ Paciente), envuelva la lógica dentro de una transacción DB::transaction() para prevenir que queden datos huérfanos si ocurre un fallo intermedio.
  3. 🩺 Modularización de Componentes de Alto Impacto: Separe adecuadamente las vistas complejas (como el Odontograma) de la ficha del paciente base para no saturar las consultas Eloquent y mantener un rendimiento óptimo en la renderización de las vistas.