diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 495a909..369798e 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -302,6 +302,9 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) { } // Ordenar por tiempo antes de agrupar para garantizar orden cronológico usort($_mpSecs, fn($a, $b) => $a['min'] <=> $b['min']); + // Mapa sep_id → minuto para re-ordenar secciones en el render + $_mpSepOrder = []; + foreach ($_mpSecs as $_s) { $_mpSepOrder[$_s['sep_id']] = $_s['min']; } $_mpGroups = []; foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; } $_mpGroupsFull = $_mpGroups; @@ -892,6 +895,26 @@ function _addExamWizardHtml(string $cid): string { $_firmaGlobalPacienteUsada = false; // la firma global solo va al primer campo firma if ($compact): ?>
false, 'min' => null, 'campos' => []]; + foreach ($esquema as $__c) { + if (($__c['tipo'] ?? '') === 'separador') { + if (!empty($__cur['campos'])) $__secs[] = $__cur; + $__it = isset($_mpSepOrder[$__c['id'] ?? '']); + $__cur = ['is_toma' => $__it, 'min' => $__it ? $_mpSepOrder[$__c['id']] : null, 'campos' => [$__c]]; + } else { + $__cur['campos'][] = $__c; + } + } + if (!empty($__cur['campos'])) $__secs[] = $__cur; + $__tomaIdxs = []; $__tomaList = []; + foreach ($__secs as $i => $s) { if ($s['is_toma']) { $__tomaIdxs[] = $i; $__tomaList[] = $s; } } + usort($__tomaList, fn($a, $b) => $a['min'] <=> $b['min']); + foreach ($__tomaIdxs as $j => $i) { $__secs[$i] = $__tomaList[$j]; } + $esquema = array_merge(...array_column($__secs, 'campos')); + } + $_saltarSeccion = false; $_mpSkipSec = false; // toma excluida por _tomas_config; siempre ocultar sin importar modoEditar foreach ($esquema as $campo):