Fix IA (max_tokens del modelo de razonamiento + fallback al gateway), sidebar con toggle arriba, busqueda de un solo campo (paciente/global), editar expediente, marketing en visitas, responsive de agenda; doc de diagnostico WhatsApp
This commit is contained in:
@@ -27,9 +27,9 @@ const MENU_ROLES: Record<string, FrontendRole[]> = {
|
||||
'/' : ['admin', 'medico', 'recepcion', 'enfermeria', 'cosmetologia', 'psicologa', 'farmacia', 'gerencia', 'marketing', 'lectura'],
|
||||
'/agenda': ['admin', 'recepcion', 'medico', 'gerencia', 'cosmetologia', 'marketing'],
|
||||
'/mis-ventas': ['medico'],
|
||||
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
'/pacientes': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia', 'marketing'],
|
||||
'/pos': ['admin', 'recepcion', 'gerencia'],
|
||||
'/visitas': ['admin', 'recepcion', 'medico', 'gerencia'],
|
||||
'/visitas': ['admin', 'recepcion', 'medico', 'gerencia', 'marketing'],
|
||||
'/consultas': ['admin', 'recepcion', 'medico', 'gerencia'],
|
||||
'/medicos': ['admin', 'recepcion', 'gerencia'],
|
||||
'/servicios': ['admin', 'recepcion', 'medico', 'lectura', 'gerencia'],
|
||||
|
||||
@@ -5,6 +5,19 @@ export function cn(...inputs: ClassValue[]) {
|
||||
return twMerge(clsx(inputs));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fecha de HOY en horario local (YYYY-MM-DD).
|
||||
* No usar `new Date().toISOString().split('T')[0]`: convierte a UTC y, en la
|
||||
* zona de la clínica (Tijuana, UTC-7/-8), a partir de las 16/17 h devuelve el
|
||||
* día siguiente, con lo que los módulos mostraban "sin datos del día".
|
||||
*/
|
||||
export function todayLocal(d: Date = new Date()): string {
|
||||
const y = d.getFullYear();
|
||||
const m = String(d.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(d.getDate()).padStart(2, '0');
|
||||
return `${y}-${m}-${day}`;
|
||||
}
|
||||
|
||||
type CsvCell = string | number | boolean | null | undefined;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user