feat(turnero): campo embarazada en recepción y badge en toma de muestras
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
d40da57a60
commit
c9e5744de4
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE turnero_solicitudes
|
||||
ADD COLUMN embarazada TINYINT(1) NOT NULL DEFAULT 0
|
||||
COMMENT 'Indica si la paciente está embarazada al momento de la solicitud'
|
||||
AFTER observaciones;
|
||||
@@ -30,6 +30,7 @@ $total = isset($datos['total_cobrado']) && $datos['total_cobrado'] !== nul
|
||||
$metodoPago = isset($datos['metodo_pago']) ? trim((string) $datos['metodo_pago']) : null;
|
||||
$obs = isset($datos['observaciones']) ? trim((string) $datos['observaciones']) : null;
|
||||
$numOrden = isset($datos['numero_orden']) ? trim((string) $datos['numero_orden']) : null;
|
||||
$embarazada = !empty($datos['embarazada']) ? 1 : 0;
|
||||
if ($numOrden === '') $numOrden = null;
|
||||
|
||||
// ── Validaciones ──────────────────────────────────────────────
|
||||
@@ -103,12 +104,12 @@ try {
|
||||
|
||||
$stmt = $pdo->prepare(
|
||||
"INSERT INTO turnero_solicitudes
|
||||
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, observaciones, creado_por)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, observaciones, embarazada, creado_por)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||
);
|
||||
$stmt->execute([
|
||||
$turnoId, $pacienteId, $lugarId, $numOrden,
|
||||
$total, $metodoPago ?: null, $obs ?: null, adminId(),
|
||||
$total, $metodoPago ?: null, $obs ?: null, $embarazada, adminId(),
|
||||
]);
|
||||
$solicitudId = (int) $pdo->lastInsertId();
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ $respuesta = [
|
||||
if ($incluirSolicitud) {
|
||||
$stmt = $pdo->prepare(
|
||||
"SELECT s.id, s.turno_id, s.paciente_id, s.lugar_id,
|
||||
s.total_cobrado, s.metodo_pago, s.observaciones, s.creado_at,
|
||||
s.total_cobrado, s.metodo_pago, s.observaciones, s.embarazada, s.creado_at,
|
||||
l.nombre AS lugar_nombre
|
||||
FROM turnero_solicitudes s
|
||||
LEFT JOIN turnero_lugares l ON l.id = s.lugar_id
|
||||
|
||||
@@ -285,6 +285,12 @@ require_once __DIR__ . '/../../../shared/components/sidebar.php';
|
||||
<div class="pac-dato"><span class="lbl">Fecha nac.</span><span class="val" id="pac-fec">—</span></div>
|
||||
<div class="pac-dato"><span class="lbl">Celular</span><span class="val" id="pac-cel">—</span></div>
|
||||
</div>
|
||||
<div id="pac-embarazada" class="d-none mt-2">
|
||||
<span class="badge text-bg-danger">
|
||||
<i class="fas fa-baby me-1"></i>Paciente embarazada
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div id="bloque-pac-sin" class="text-muted small">
|
||||
<i class="fas fa-info-circle me-1"></i>Sin paciente vinculado
|
||||
</div>
|
||||
@@ -579,6 +585,10 @@ async function cargarFichaSolicitud(turnoId) {
|
||||
let consts = json.consentimientos || [];
|
||||
|
||||
// Datos del paciente
|
||||
// Badge embarazada
|
||||
const badgeEmb = document.getElementById('pac-embarazada');
|
||||
if (badgeEmb) badgeEmb.classList.toggle('d-none', !(sol && sol.embarazada == 1));
|
||||
|
||||
if (pac) {
|
||||
document.getElementById('bloque-pac-info').style.display = '';
|
||||
document.getElementById('bloque-pac-sin').classList.add('d-none');
|
||||
|
||||
@@ -429,6 +429,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Embarazo -->
|
||||
<div class="mt-2">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="chk-embarazada">
|
||||
<label class="form-check-label small fw-semibold text-danger" for="chk-embarazada">
|
||||
<i class="fas fa-baby me-1"></i>Paciente embarazada
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Historial colapsable del paciente -->
|
||||
<div id="sec-historial-pac" class="d-none">
|
||||
<button class="hist-toggle-btn" id="btn-hist-toggle" onclick="toggleHistorialPaciente()">
|
||||
@@ -1121,6 +1131,7 @@ function desvincularPaciente() {
|
||||
document.getElementById('btn-hist-toggle').classList.remove('open');
|
||||
document.getElementById('lista-pacientes-res').innerHTML = '';
|
||||
document.getElementById('inp-buscar-pac').value = '';
|
||||
document.getElementById('chk-embarazada').checked = false;
|
||||
}
|
||||
|
||||
function cambiarPaciente() {
|
||||
@@ -1256,6 +1267,7 @@ async function guardarSolicitud() {
|
||||
total_cobrado: parseFloat(document.getElementById('inp-total').value) || null,
|
||||
metodo_pago: document.getElementById('sel-pago').value || null,
|
||||
observaciones: document.getElementById('inp-obs').value.trim() || null,
|
||||
embarazada: document.getElementById('chk-embarazada').checked ? 1 : 0,
|
||||
}),
|
||||
});
|
||||
const json = await res.json();
|
||||
|
||||
Reference in New Issue
Block a user