diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 26c6a61..5859b8b 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -300,8 +300,26 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) { foreach ($_mpSecs as $_s) { $_mpGroups[$_s['tipo']][] = $_s; } $_mpGroupsFull = $_mpGroups; - // La configuración de tomas siempre se hace manualmente en el panel; - // no se auto-aplica config guardada para evitar defaults no deseados. + // Aplicar filtro de ciclos si el profesional ya configuró las tomas para este paciente + $__rawCfg = $datosCliente['_tomas_config'] ?? null; + if (is_array($__rawCfg)) { + $_tomasConfig = $__rawCfg; + foreach ($_mpGroups as $__gk => &$__gsecs) { + if (!isset($_tomasConfig[$__gk])) { + foreach ($__gsecs as $__s) { $_mpSkippedSepIds[$__s['sep_id']] = true; } + $__gsecs = []; + continue; + } + $__allowed = array_flip($_tomasConfig[$__gk]); + foreach ($__gsecs as $__s) { + if (!isset($__allowed[$__s['firma']])) { + $_mpSkippedSepIds[$__s['sep_id']] = true; + } + } + $__gsecs = array_values(array_filter($__gsecs, fn($s) => isset($__allowed[$s['firma']]))); + } + unset($__gsecs); + } // Construir $_mpMap desde grupos (posiblemente filtrados) foreach ($_mpGroups as $_tipo => $_secs) { @@ -1325,8 +1343,9 @@ function _mpGuardarConfig(config, examType, onOk, onErr) { .catch(function() { onErr('Error de conexión.'); }); } -function _mpShowCfgPanel(examName, groups) { +function _mpShowCfgPanel(examName, groups, isModify) { // Construir checkboxes + var savedFirmas = window._mpSavedFirmas || {}; var html = ''; var multiGrupo = Object.keys(groups).length > 1; for (var gk in groups) { @@ -1337,11 +1356,17 @@ function _mpShowCfgPanel(examName, groups) { + '