Overview
The Assistant (asistente) role is designed for receptionists and administrative staff who handle appointment scheduling, patient check-in, and agenda management. Assistants have restricted access focused on scheduling and reception tasks within their assigned clinic.Assistants are the front-line staff who manage daily operations, patient flow, and appointment scheduling.
Key Characteristics
Clinic-Specific Access
Access limited to their assigned clinic’s data only
Appointment Focus
Primary role is managing appointments and daily agenda
No Professional License
Does not require cedula_profesional (field is optional)
Limited Permissions
Cannot access clinical records or treatment details
Accessible Routes
Assistant routes are protected by thecan:asistente-only middleware, which verifies the user’s role is asistente.
Dashboard
- Today’s appointments (
citasHoy) - Total patients in the clinic (
totalPacientes) - Active treatments count (
tratamientosActivos) - System alerts and notifications
app/Http/Controllers/Clinica/DashboardController.php:12
The assistant dashboard uses the same controller as the dentist dashboard but renders a different view (
asistente.dashboard instead of dentista.dashboard) with reception-focused interface.DashboardController.php:24
Agenda Management
AgendaController@index
Purpose: View and manage the clinic’s appointment schedule
Typical Functions:
- View daily/weekly/monthly calendar
- Schedule new appointments
- Reschedule existing appointments
- Mark patient arrivals (check-in)
- View appointment details
id_clinica to show only the clinic’s agenda
Source: routes/web.php:45
Permission Boundaries
Can Access:
- Appointment scheduling and calendar
- Patient contact information (for scheduling)
- Daily appointment list
- Patient check-in workflow
- Basic patient demographics (name, phone, address)
Typical Workflows
Patient Check-In Process
Appointment Scheduling
Authentication & Authorization
Gate Definition
Theasistente-only gate is defined in AppServiceProvider.php:34:
Login Redirection
After successful authentication, Assistants are redirected to:AuthController.php:70
Session Validation
Assistants cannot log in if:- Their user status is not
'activo'(checked atAuthController.php:33) - Their clinic status is
'baja'(checked atAuthController.php:41)
Database Schema
Assistant users are stored in theusuario table:
| Field | Description | Required |
|---|---|---|
id_usuario | Primary key | ✓ |
id_clinica | Foreign key to clinic | ✓ |
nombre | First name (min 3 chars) | ✓ |
apellido_paterno | Paternal surname (min 3 chars) | ✓ |
apellido_materno | Maternal surname | Optional |
cedula_profesional | Professional license | Not Required |
nom_usuario | Username (4-20 alphanumeric) | ✓ |
password | Hashed password | ✓ |
rol | Must be 'asistente' | ✓ |
estatus | 'activo' or 'baja' | ✓ |
app/Models/Usuario.php:21
Unlike dentists, assistants do not require a
cedula_profesional since they are administrative staff, not medical professionals.Creating Assistant Accounts
Assistant accounts can only be created by Super Admins via:id_clinica- Must be an active clinicnombre- Min 3 chars, letters onlyapellido_paterno- Min 3 chars, letters onlynom_usuario- 4-20 alphanumeric, uniquepassword- Min 8 chars, mixed case, numbersrol- Set to'asistente'
apellido_materno- Maternal surnamecedula_profesional- Leave empty/null for assistants
cedula_profesional is only required when rol is 'dentista'
Source: app/Http/Controllers/Admin/UsuarioController.php:61
Account Management
Status Toggle
Super Admins can suspend or reactivate assistant accounts:estatus between 'activo' and 'baja'. When suspended, the assistant cannot log in.
Source: app/Http/Controllers/Admin/UsuarioController.php:91
Profile Updates
Assistants cannot update their own profiles. Updates must be performed by Super Admins via:Security Considerations
Data Privacy
Assistants should only have access to the minimum patient information necessary for scheduling:
- Name and contact details
- Appointment history
- Basic demographics
- Medical histories
- Treatment details
- Clinical notes
- X-rays or medical documents
Password Security
Passwords are automatically hashed using Laravel’s built-in hashing (defined in Usuario model as
'password' => 'hashed').Best Practices
- Minimal Access Principle: Only grant assistants access to scheduling and reception functions
- Training: Ensure assistants understand they should not access clinical data
- Appointment Management: Focus training on efficient scheduling and patient flow
- Communication: Establish clear protocols for communicating with dentists about patient arrivals
- Data Entry: Train on accurate data entry for appointments to avoid scheduling conflicts
Comparison with Other Roles
| Feature | Super Admin | Dentist | Assistant |
|---|---|---|---|
| Scope | All clinics | Own clinic | Own clinic |
| Patient Records | View all | Full access | Contact info only |
| Appointments | View stats | Full access | Scheduling focus |
| Clinical Data | View stats | Full access | No access |
| User Management | Full control | No access | No access |
| License Required | No | Yes | No |
Future Capabilities
Based on the system architecture, assistants may eventually have access to:- Patient Check-In System: Mobile or tablet-based check-in kiosks
- SMS Notifications: Send appointment reminders to patients
- Waitlist Management: Handle cancellations and fill empty slots
- Reports: Generate daily/weekly appointment reports
- Billing Support: Basic payment collection (if integrated)
Related Documentation
- Super Admin Role - Platform-level management
- Dentist Role - Clinical management
- Patient Access - Patient portal capabilities
- Appointment System - Detailed scheduling operations