refactor: mejorar flujo de tomas prolongadas (A+B+C+D)

A) Fix bug: grupos fuera de _tomas_config contaminaban $_mpMap y bloqueaban
   firmas configuradas. Ahora se vacían y sus secciones se agregan a
   $_mpSkippedSepIds para que PHP no las renderice.

B) Quitar campo Resultado del esquema (14 campos eliminados del form 15 en
   BD). save_tomas_config.php ya no genera campo Resultado en exámenes nuevos.
   Patrón queda: separador → hora → observaciones → firma_profesional.

C) Condicionamiento implícito: con el fix de A, solo aparecen las secciones
   del grupo configurado en _tomas_config, sin cambios en el esquema DB.

D) UX: reemplaza popup automático por badges bajo el campo _c8j2g16.
   Cada examen seleccionado muestra badge con estado (pendiente/configurado)
   y botón "Configurar tiempos" que abre el panel solo al hacer clic.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-16 11:20:15 -05:00
co-authored by Claude Sonnet 4.6
parent 3b61ee6f35
commit 86ec692028
2 changed files with 74 additions and 36 deletions
+7 -26
View File
@@ -85,10 +85,10 @@ if ($action === 'add_exam') {
$sepLabel = "$examName · {$h12}:{$mm} {$ampm}";
}
$sepId = $prefix . 's' . $idx . $uid;
$horaId = $prefix . 'h' . $idx . $uid;
$resId = $prefix . 'r' . $idx . $uid;
$firmaId = $prefix . 'f' . $idx . $uid;
$sepId = $prefix . 's' . $idx . $uid;
$horaId = $prefix . 'h' . $idx . $uid;
$obsId = $prefix . 'o' . $idx . $uid;
$firmaId = $prefix . 'f' . $idx . $uid;
$esquema[] = [
'id' => $sepId,
@@ -96,28 +96,9 @@ if ($action === 'add_exam') {
'label' => $sepLabel,
'condicion'=> ['campo_id' => $condCampoId, 'valores' => [$examName]],
];
$esquema[] = [
'id' => $horaId,
'tipo' => 'hora',
'label' => 'Hora de toma',
];
$esquema[] = [
'id' => $resId,
'tipo' => 'numero',
'label' => 'Resultado',
];
$esquema[] = [
'id' => $prefix . 'o' . $idx . $uid,
'tipo' => 'texto',
'label' => 'Observaciones',
'placeholder' => '',
'required' => false,
];
$esquema[] = [
'id' => $firmaId,
'tipo' => 'firma_profesional',
'label' => 'Firma del profesional',
];
$esquema[] = ['id' => $horaId, 'tipo' => 'hora', 'label' => 'Hora de toma'];
$esquema[] = ['id' => $obsId, 'tipo' => 'texto', 'label' => 'Observaciones', 'placeholder' => '', 'required' => false];
$esquema[] = ['id' => $firmaId, 'tipo' => 'firma_profesional', 'label' => 'Firma del profesional'];
}
$db->getConnection()->prepare(