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;
|
$metodoPago = isset($datos['metodo_pago']) ? trim((string) $datos['metodo_pago']) : null;
|
||||||
$obs = isset($datos['observaciones']) ? trim((string) $datos['observaciones']) : null;
|
$obs = isset($datos['observaciones']) ? trim((string) $datos['observaciones']) : null;
|
||||||
$numOrden = isset($datos['numero_orden']) ? trim((string) $datos['numero_orden']) : null;
|
$numOrden = isset($datos['numero_orden']) ? trim((string) $datos['numero_orden']) : null;
|
||||||
|
$embarazada = !empty($datos['embarazada']) ? 1 : 0;
|
||||||
if ($numOrden === '') $numOrden = null;
|
if ($numOrden === '') $numOrden = null;
|
||||||
|
|
||||||
// ── Validaciones ──────────────────────────────────────────────
|
// ── Validaciones ──────────────────────────────────────────────
|
||||||
@@ -103,12 +104,12 @@ try {
|
|||||||
|
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"INSERT INTO turnero_solicitudes
|
"INSERT INTO turnero_solicitudes
|
||||||
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, observaciones, creado_por)
|
(turno_id, paciente_id, lugar_id, numero_orden, total_cobrado, metodo_pago, observaciones, embarazada, creado_por)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
|
||||||
);
|
);
|
||||||
$stmt->execute([
|
$stmt->execute([
|
||||||
$turnoId, $pacienteId, $lugarId, $numOrden,
|
$turnoId, $pacienteId, $lugarId, $numOrden,
|
||||||
$total, $metodoPago ?: null, $obs ?: null, adminId(),
|
$total, $metodoPago ?: null, $obs ?: null, $embarazada, adminId(),
|
||||||
]);
|
]);
|
||||||
$solicitudId = (int) $pdo->lastInsertId();
|
$solicitudId = (int) $pdo->lastInsertId();
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ $respuesta = [
|
|||||||
if ($incluirSolicitud) {
|
if ($incluirSolicitud) {
|
||||||
$stmt = $pdo->prepare(
|
$stmt = $pdo->prepare(
|
||||||
"SELECT s.id, s.turno_id, s.paciente_id, s.lugar_id,
|
"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
|
l.nombre AS lugar_nombre
|
||||||
FROM turnero_solicitudes s
|
FROM turnero_solicitudes s
|
||||||
LEFT JOIN turnero_lugares l ON l.id = s.lugar_id
|
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">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 class="pac-dato"><span class="lbl">Celular</span><span class="val" id="pac-cel">—</span></div>
|
||||||
</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">
|
<div id="bloque-pac-sin" class="text-muted small">
|
||||||
<i class="fas fa-info-circle me-1"></i>Sin paciente vinculado
|
<i class="fas fa-info-circle me-1"></i>Sin paciente vinculado
|
||||||
</div>
|
</div>
|
||||||
@@ -579,6 +585,10 @@ async function cargarFichaSolicitud(turnoId) {
|
|||||||
let consts = json.consentimientos || [];
|
let consts = json.consentimientos || [];
|
||||||
|
|
||||||
// Datos del paciente
|
// Datos del paciente
|
||||||
|
// Badge embarazada
|
||||||
|
const badgeEmb = document.getElementById('pac-embarazada');
|
||||||
|
if (badgeEmb) badgeEmb.classList.toggle('d-none', !(sol && sol.embarazada == 1));
|
||||||
|
|
||||||
if (pac) {
|
if (pac) {
|
||||||
document.getElementById('bloque-pac-info').style.display = '';
|
document.getElementById('bloque-pac-info').style.display = '';
|
||||||
document.getElementById('bloque-pac-sin').classList.add('d-none');
|
document.getElementById('bloque-pac-sin').classList.add('d-none');
|
||||||
|
|||||||
@@ -429,6 +429,16 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
</div>
|
</div>
|
||||||
</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 -->
|
<!-- Historial colapsable del paciente -->
|
||||||
<div id="sec-historial-pac" class="d-none">
|
<div id="sec-historial-pac" class="d-none">
|
||||||
<button class="hist-toggle-btn" id="btn-hist-toggle" onclick="toggleHistorialPaciente()">
|
<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('btn-hist-toggle').classList.remove('open');
|
||||||
document.getElementById('lista-pacientes-res').innerHTML = '';
|
document.getElementById('lista-pacientes-res').innerHTML = '';
|
||||||
document.getElementById('inp-buscar-pac').value = '';
|
document.getElementById('inp-buscar-pac').value = '';
|
||||||
|
document.getElementById('chk-embarazada').checked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function cambiarPaciente() {
|
function cambiarPaciente() {
|
||||||
@@ -1256,6 +1267,7 @@ async function guardarSolicitud() {
|
|||||||
total_cobrado: parseFloat(document.getElementById('inp-total').value) || null,
|
total_cobrado: parseFloat(document.getElementById('inp-total').value) || null,
|
||||||
metodo_pago: document.getElementById('sel-pago').value || null,
|
metodo_pago: document.getElementById('sel-pago').value || null,
|
||||||
observaciones: document.getElementById('inp-obs').value.trim() || null,
|
observaciones: document.getElementById('inp-obs').value.trim() || null,
|
||||||
|
embarazada: document.getElementById('chk-embarazada').checked ? 1 : 0,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
const json = await res.json();
|
const json = await res.json();
|
||||||
|
|||||||
Reference in New Issue
Block a user