File "hojaVida.php"

Full Path: C:/wamp64/www/casos_medicos1/views/hojaVida.php
File size: 15.59 KB
MIME-type: text/html
Charset: utf-8

<!DOCTYPE html>
<html lang="es">

<head>
  <meta charset="utf-8">
  <title>Historia Clínica - <?= htmlspecialchars($hoja['nombre']) ?></title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
  <style>
    body {
      background-color: #f4f6f4;
      font-family: 'Segoe UI', sans-serif;
    }

    .card {
      border-radius: 12px;
    }

    .nav-tabs .nav-link.active {
      background-color: #ff7f00 !important;
      color: #fff !important;
      border: none;
    }

    .nav-tabs .nav-link {
      color: #ff7f00;
      font-weight: 500;
    }

    .info-label {
      font-weight: 600;
      color: #2d7a2e;
    }

    .info-value {
      color: #222;
    }

    h4 {
      border-left: 6px solid #ff7f00;
      padding-left: 10px;
      color: #333;
    }

    h6 {
      color: #2d7a2e;
      font-weight: bold;
    }

    .btn-warning {
      background-color: #ff7f00;
      border: none;
      color: #fff;
    }

    .btn-success {
      background-color: #2d7a2e;
      border: none;
    }

    .btn-secondary {
      background-color: #95a5a6;
      border: none;
    }

    .foto-paciente {
      max-width: 140px;
      border-radius: 8px;
      box-shadow: 0 0 6px rgba(0, 0, 0, 0.2);
    }

    select.form-select-sm {
      border: 1px solid #ccc;
    }

    /* Diagnóstico tabla desplegable */
    .main-row {
      cursor: pointer;
      transition: background-color 0.2s;
    }

    .main-row:hover {
      background-color: #e9f5ff;
    }

    .detail-cell {
      background-color: #f1f5f9;
      padding: 15px;
      border-radius: 8px;
      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
      font-size: 0.9rem;
    }

    .detail-section {
      margin-bottom: 12px;
    }

    .detail-title {
      font-weight: bold;
      color: #0d6efd;
      margin-bottom: 4px;
      border-bottom: 1px solid #dee2e6;
      padding-bottom: 2px;
    }

    .detail-cell p {
      margin: 0;
      text-align: justify;
    }

    .toggle-icon {
      display: inline-block;
      width: 20px;
      font-weight: bold;
      margin-right: 8px;
      transition: transform 0.2s;
    }

    .toggle-icon.rotate {
      transform: rotate(45deg);
    }
  </style>
</head>

<body class="p-4">

  <div class="container bg-white p-4 shadow rounded">
    <div class="d-flex justify-content-between align-items-center mb-3">
      <h4>Historia Clínica - <?= htmlspecialchars($hoja['nombre']) ?></h4>
      <div>
        <button id="btnEditar" class="btn btn-sm btn-warning">Editar</button>
        <button id="btnGuardar" class="btn btn-sm btn-success d-none">Actualizar</button>
        <button id="btnCancelar" class="btn btn-sm btn-secondary d-none">Cancelar</button>
        <a href="index.php?url=Reportes/exportar_pdf&cedula=<?= urlencode($cedula) ?>" class="btn btn-sm btn-outline-primary" target="_blank">PDF</a>
        <a href="index.php?url=HojaVida/volver" class="btn btn-sm btn-outline-dark">
          Volver
        </a>
      </div>
    </div>

    <!-- Pestañas -->
    <ul class="nav nav-tabs" id="myTab">
      <li class="nav-item"><a class="nav-link active" data-bs-toggle="tab" href="#hoja">Hoja de Vida</a></li>
      <li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#diag">Diagnóstico</a></li>
      <li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#rec">Recomendaciones</a></li>
      <li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#inc">Incapacidades</a></li>
      <li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#seg">Seguimiento</a></li>
      <li class="nav-item"><a class="nav-link" data-bs-toggle="tab" href="#seg">Proceso Calificación</a></li>
    </ul>

    <div class="tab-content mt-3">
      <div class="tab-pane fade show active" id="hoja">
        <div class="row mb-3">
          <div class="col-md-3 text-center">
            <?php
            $fotoBD = $hoja['foto'] ?? '';

            $project = '/casos_medicos1/public/';

            // Ruta física real (para file_exists)
            $rutaServidor = $_SERVER['DOCUMENT_ROOT'] . $project . ltrim($fotoBD, '/');

            // Ruta web (para el navegador)
            $rutaWeb = $project . ltrim($fotoBD, '/');

            if (!empty($fotoBD) && file_exists($rutaServidor)) {
              echo '<img src="' . htmlspecialchars($rutaWeb) . '" class="foto-paciente" alt="Foto paciente">';
            } else {
              echo '<img src="' . $project . 'uploads/default_user.png" class="foto-paciente" alt="Sin foto">';
            }
            ?>
          </div>
          <div class="col-md-9">
            <input type="hidden" name="id" value="<?= $hoja['id'] ?>" id="paciente_id">
            <div class="row">
              <div class="col-md-6 mb-2"><span class="info-label">Cédula:</span> <?= $hoja['cedula'] ?></div>
              <div class="col-md-6 mb-2"><span class="info-label">Nombre:</span> <span data-editable data-name="nombre"><?= $hoja['nombre'] ?></span></div>
              <div class="col-md-4 mb-2"><span class="info-label">Fecha nacimiento:</span> <span data-editable data-name="fecha_nacimiento"><?= $hoja['fecha_nacimiento'] ?></span></div>
              <div class="col-md-4 mb-2"><span class="info-label">Edad:</span> <span data-editable data-name="edad"><?= $hoja['edad'] ?></span></div>
              <div class="col-md-4 mb-2"><span class="info-label">Estado:</span>
                <select disabled name="id_estado" class="form-select form-select-sm">
                  <?php foreach ($listas['estado'] as $e): ?>
                    <option value="<?= (int)$e['id'] ?>"
                      <?= ((int)$hoja['id_estado'] === (int)$e['id']) ? 'selected' : '' ?>>
                      <?= htmlspecialchars($e['nombre']) ?>
                    </option>
                  <?php endforeach; ?>
                </select>
              </div>
            </div>
          </div>
        </div>

        <h6 class="border-bottom pb-2 mt-3">Datos Laborales</h6>
        <div class="row">
          <div class="col-md-4 mb-2"><span class="info-label">AFP:</span>
            <select disabled name="id_afp" class="form-select form-select-sm">
              <?php foreach ($listas['afp'] as $a): ?>
                <option value="<?= (int)$a['id'] ?>"
                  <?= ((int)$hoja['id_afp'] === (int)$a['id']) ? 'selected' : '' ?>>
                  <?= htmlspecialchars($a['nombre']) ?>
                </option>

              <?php endforeach; ?>
            </select>

          </div>
          <div class="col-md-4 mb-2"><span class="info-label">EPS:</span>
            <select disabled name="id_eps" class="form-select form-select-sm">
              <?php foreach ($listas['eps'] as $ep): ?>
                <option value="<?= $ep['id'] ?>" <?= $hoja['id_eps'] == $ep['id'] ? 'selected' : '' ?>>
                  <?= htmlspecialchars($ep['nombre']) ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>

          <div class="col-md-4 mb-2"><span class="info-label">ARL:</span>
            <select disabled name="id_arl" class="form-select form-select-sm">
              <?php foreach ($listas['arl'] as $ar): ?>
                <option value="<?= $ar['id'] ?>" <?= $hoja['id_arl'] == $ar['id'] ? 'selected' : '' ?>>
                  <?= htmlspecialchars($ar['nombre']) ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>
          <div class="col-md-4 mb-2"><span class="info-label">Empresa:</span>
            <select disabled name="id_empresa" class="form-select form-select-sm">
              <?php foreach ($listas['empresa'] as $em): ?>
                <option value="<?= $em['id'] ?>" <?= $hoja['id_empresa'] == $em['id'] ? 'selected' : '' ?>>
                  <?= htmlspecialchars($em['nombre']) ?>
                </option>
              <?php endforeach; ?>
            </select>
          </div>
          <div class="col-md-4 mb-2"><span class="info-label">Planta:</span>
            <select disabled name="id_planta" class="form-select form-select-sm">
              <?php foreach ($listas['planta'] as $pl): ?>
                <option value="<?= $pl['id'] ?>" <?= $hoja['id_planta'] == $pl['id'] ? 'selected' : '' ?>>
                  <?= htmlspecialchars($pl['nombre']) ?>
                </option>
              <?php endforeach; ?>
            </select>

          </div>
          <div class="col-md-4 mb-2"><span class="info-label">Regional:</span><span data-editable data-name="regional"><?= $hoja['regional'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Centro de trabajo:</span> <span data-editable data-name="centro_trabajo"><?= $hoja['centro_trabajo'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Tipo de contrato:</span> <span data-editable data-name="tipo_contrato"><?= $hoja['tipo_contrato'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Fecha inicio:</span> <span data-editable data-name="fecha_inicio"><?= $hoja['fecha_inicio'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Cargo inicial:</span> <span data-editable data-name="cargo_inicial"><?= $hoja['cargo_inicial'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Nuevo cargo:</span> <span data-editable data-name="cargo_reubicado"><?= $hoja['cargo_reubicado'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">% Productividad:</span> <span data-editable data-name="productividad"><?= $hoja['productividad'] ?></span></div>
          <div class="col-md-4 mb-2"><span class="info-label">Semanas cotización:</span> <span data-editable data-name="semanas_cotizacion"><?= $hoja['semanas_cotizacion'] ?></span></div>
        </div>
      </div>

      <!-- DIAGNÓSTICO -->
      <div class="tab-pane fade" id="diag">
        <div id="contenedorDiagnostico" class="p-3 text-center">
          <div class="spinner-border text-success"></div>
          <p>Cargando diagnóstico...</p>
        </div>

        <script>
          document.querySelector('a[href="#diag"]').addEventListener('shown.bs.tab', function() {
            const cedula = "<?= $cedula ?>";
            fetch("index.php?url=diagnostico/listar&cedula=" + encodeURIComponent(cedula))
              .then(response => response.text())
              .then(html => {
                document.getElementById("contenedorDiagnostico").innerHTML = html;
              })
              .catch(err => {
                document.getElementById("contenedorDiagnostico").innerHTML =
                  "<div class='alert alert-danger'>Error al cargar diagnóstico</div>";
              });
          });
        </script>
      </div>

      <!-- RECOMENDACIONES -->
      <div class="tab-pane fade" id="rec">
        <div id="contenedorRecomendaciones" class="p-3 text-center">
          <div class="spinner-border text-success"></div>
          <p>Cargando recomendaciones...</p>
        </div>

        <script>
          document.querySelector('a[href="#rec"]').addEventListener('shown.bs.tab', function() {
            const cedula = "<?= $cedula ?>";

            fetch("index.php?url=Recomendaciones/index&cedula=" + encodeURIComponent(cedula))
              .then(r => r.text())
              .then(html => {
                document.getElementById("contenedorRecomendaciones").innerHTML = html;
              })
              .catch(err => {
                document.getElementById("contenedorRecomendaciones").innerHTML =
                  "<div class='alert alert-danger'>Error al cargar recomendaciones</div>";
              });
          });
        </script>
      </div>

      <!-- INCAPACIDADES -->
      <div class="tab-pane fade" id="inc">
        <div id="contenedorIncap" class="p-3 text-center">
          <div class="spinner-border text-success"></div>
          <p>Cargando incapacidades...</p>
        </div>

        <script>
          document.querySelector('a[href="#inc"]').addEventListener('shown.bs.tab', function() {
            const cedula = "<?= $cedula ?>";

            fetch("index.php?url=Incapacidades/index&cedula=" + encodeURIComponent(cedula))
              .then(r => r.text())
              .then(html => {
                document.getElementById("contenedorIncap").innerHTML = html;
              })
              .catch(() => {
                document.getElementById("contenedorIncap").innerHTML =
                  "<div class='alert alert-danger'>Error al cargar incapacidades</div>";
              });
          });
        </script>
      </div>

      <!-- SEGUIMIENTO -->
      <div class="tab-pane fade" id="seg">
        <div id="contenedorSeguimiento" class="p-3 text-center">
          <div class="spinner-border text-primary"></div>
          <p>Cargando seguimiento...</p>
        </div>
        <script>
          document.querySelector('a[href="#seg"]').addEventListener('shown.bs.tab', function() {

            const cedula = "<?= $cedula ?>"; // ⚠️ Asegúrate que este archivo recibe $cedula

            fetch("index.php?url=Seguimiento/listar&cedula=" + encodeURIComponent(cedula))
              .then(r => r.text())
              .then(html => {
                document.getElementById("contenedorSeguimiento").innerHTML = html;
              })
              .catch(e => {
                document.getElementById("contenedorSeguimiento").innerHTML =
                  "<div class='alert alert-danger'>Error al cargar seguimiento.</div>";
              });
          });
        </script>

      </div>

    </div>
  </div>

  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
  <script>
    // Editar Hoja de Vida
    document.addEventListener('DOMContentLoaded', () => {
      const btnEditar = document.getElementById('btnEditar');
      const btnGuardar = document.getElementById('btnGuardar');
      const btnCancelar = document.getElementById('btnCancelar');
      const campos = document.querySelectorAll('[data-editable]');
      const selects = document.querySelectorAll('select[disabled]');

      btnEditar.addEventListener('click', () => {
        campos.forEach(el => {
          const valor = el.innerText.trim();
          const input = document.createElement('input');
          input.className = 'form-control form-control-sm';
          input.name = el.dataset.name;
          input.value = valor;
          el.replaceWith(input);
        });
        selects.forEach(s => s.disabled = false);
        btnEditar.classList.add('d-none');
        btnGuardar.classList.remove('d-none');
        btnCancelar.classList.remove('d-none');
      });

      btnCancelar.addEventListener('click', () => window.location.reload());

      btnGuardar.addEventListener('click', () => {
        const formData = new FormData();
        formData.append('id', document.getElementById('paciente_id').value);
        formData.append('cedula', '<?= $cedula ?>');
        document.querySelectorAll('input[name], select[name]').forEach(i => formData.append(i.name, i.value));

        fetch('actualizar_paciente.php', {
            method: 'POST',
            body: formData
          })
          .then(res => res.text())
          .then(resp => {
            alert(resp);
            window.location.reload();
          })
          .catch(err => alert('Error al guardar: ' + err));
      });
    });
  </script>
</body>

</html>