07 Módulo Pacientes Formulario de Creacion Asignación Rol Paciente Sis Odontológico Clinica Dental

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

Descripción

🎓 Lección 07: Módulo Pacientes — Formulario de Creación y Asignación de Rol

Objetivo: Diseñar la arquitectura de base de datos para la entidad de pacientes, implementar la relación con usuarios mediante llaves foráneas, y desarrollar el flujo completo de creación con asignación automática de rol en Laravel.

🚀 Pasos Clave con Timestamps

  • ⏱️ 01:37 Diseño y Relación de Entidades: Análisis del diagrama DML para conectar la tabla pacientes con users mediante la llave foránea usuario_id con borrado en cascada.
  • ⏱️ 04:30 Creación de Modelo y Migración: Ejecución del comando Artisan para generar el modelo Paciente, migración y controlador con recursos en una sola instrucción.
  • ⏱️ 07:44 Configuración de Relaciones ORM: Definición del atributo $fillable y relaciones en Eloquent (belongsTo en Paciente y hasOne en User).
  • ⏱️ 09:50 Rutas de Recurso y Vistas Blade: Configuración de rutas HTTP independientes (index, create, store, show, edit, update, destroy) y estructuración del directorio de vistas.
  • ⏱️ 14:48 Vista de Listado General: Implementación de la vista principal con paginación, filtro de búsqueda y botones de acción.
  • ⏱️ 19:48 Formulario Dinámico de Registro: Construcción del formulario de alta con campos médicos, hábitos y antecedentes en formato array.
  • ⏱️ 21:11 Procesamiento de Transacción y Rol: Implementación del método store para registrar de forma atómica el usuario, asignar el rol de paciente y guardar la ficha médica.

🛠️ Comandos y Rutas Principales

TipoComando / Ruta HTTPFunción
💻 Terminalphp artisan make:model Paciente -mcrCrea Modelo, Migración y Controller con recursos
💻 Terminalphp artisan migrateEjecuta las migraciones pendientes en la BD
🌐 Ruta HTTPGET /admin/pacientesMétodo index() — Muestra el listado paginado
🌐 Ruta HTTPGET /admin/pacientes/createMétodo create() — Despliega el formulario de alta
🌐 Ruta HTTPPOST /admin/pacientesMétodo store() — Procesa y guarda el nuevo registro
🌐 Ruta HTTPGET /admin/pacientes/{id}Método show() — Visualización detallada de la ficha

🔒 Buenas Prácticas y Seguridad

  1. 🔐 Transacciones en Base de Datos (DB::transaction): Como el alta involucra crear registros en tres tablas distintas (users, model_has_roles y pacientes), rodea la lógica del controlador en una transacción de BD para revertir cambios (rollback) si algún paso falla.
  2. 🛡️ Validación Estricta de Entradas: Exige la regla unique:pacientes,numero_documento y valida el formato de arreglos para los hábitos/antecedentes antes de persistir la información.
  3. 🔑 Credenciales Automáticas Seguras: Muestra advertencias claras de cambio de clave tras el primer ingreso si utilizas el número de documento como contraseña provisional.