<?php
ob_start();
session_start();

if (!isset($_SESSION["nombre"]) || empty($_SESSION['laboratorio'])) {
    header("Location: login.html");
    exit;
}
require 'header.php';
?>

<style>
@keyframes pulsar {
    0%   { opacity: 1; }
    50%  { opacity: 0.4; }
    100% { opacity: 1; }
}
.badge-nuevo { background: #27ae60; animation: pulsar 1.5s infinite; }
</style>

<div class="content-wrapper">
    <section class="content-header">
        <h1><i class="fa fa-flask"></i> Laboratorio Clínico <small>Órdenes y Resultados</small></h1>
    </section>
    <section class="content">
        <div class="row">
            <div class="col-md-12">
                <div class="nav-tabs-custom">
                    <ul class="nav nav-tabs">
                        <li class="active"><a href="#tab-pendientes" data-toggle="tab"><i class="fa fa-clock-o"></i> Pendientes / En Proceso</a></li>
                        <li><a href="#tab-completados" data-toggle="tab"><i class="fa fa-check-circle"></i> Completados</a></li>
                    </ul>
                    <div class="tab-content">

                        <!-- TAB PENDIENTES -->
                        <div class="tab-pane active" id="tab-pendientes">
                            <div class="box-body">
                                <div class="table-responsive">
                                    <table id="tblPendientes" class="table table-striped table-bordered table-condensed table-hover">
                                        <thead>
                                            <tr>
                                                <th>Fecha Orden</th>
                                                <th>Paciente</th>
                                                <th>Tipo</th>
                                                <th>Médico</th>
                                                <th>Estado</th>
                                                <th>Acciones</th>
                                            </tr>
                                        </thead>
                                        <tbody></tbody>
                                        <tfoot>
                                            <tr>
                                                <th>Fecha Orden</th>
                                                <th>Paciente</th>
                                                <th>Tipo</th>
                                                <th>Médico</th>
                                                <th>Estado</th>
                                                <th>Acciones</th>
                                            </tr>
                                        </tfoot>
                                    </table>
                                </div>
                            </div>
                        </div>

                        <!-- TAB COMPLETADOS -->
                        <div class="tab-pane" id="tab-completados">
                            <div class="box-body">
                                <div class="table-responsive">
                                    <table id="tblCompletados" class="table table-striped table-bordered table-condensed table-hover">
                                        <thead>
                                            <tr>
                                                <th>Fecha Resultado</th>
                                                <th>Paciente</th>
                                                <th>Tipo</th>
                                                <th>Estado</th>
                                                <th>Observación</th>
                                                <th>Acciones</th>
                                            </tr>
                                        </thead>
                                        <tbody></tbody>
                                        <tfoot>
                                            <tr>
                                                <th>Fecha Resultado</th>
                                                <th>Paciente</th>
                                                <th>Tipo</th>
                                                <th>Estado</th>
                                                <th>Observación</th>
                                                <th>Acciones</th>
                                            </tr>
                                        </tfoot>
                                    </table>
                                </div>
                            </div>
                        </div>

                    </div>
                </div>
            </div>
        </div>
    </section>
</div>

<!-- MODAL: Subir Resultado -->
<div class="modal fade" id="modalSubirResultado" tabindex="-1" role="dialog">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header" style="background:#27ae60;color:#fff;">
                <button type="button" class="close" data-dismiss="modal" style="color:#fff;">&times;</button>
                <h4 class="modal-title"><i class="fa fa-upload"></i> Subir Resultado de Laboratorio</h4>
            </div>
            <div class="modal-body">
                <form id="formSubirResultado" enctype="multipart/form-data">
                    <input type="hidden" id="sol_id_lab" name="idsolicitud" value="">
                    <input type="hidden" name="area" value="laboratorio">
                    <div class="form-group">
                        <label><i class="fa fa-file"></i> Archivo resultado <span class="text-danger">*</span></label>
                        <input type="file" id="archivoResultado" name="archivo" accept=".pdf,.jpg,.jpeg,.png" class="form-control" required>
                        <small class="text-muted">Formatos permitidos: PDF, JPG, PNG</small>
                    </div>
                    <div class="form-group">
                        <label><i class="fa fa-comment"></i> Observación <small class="text-muted">(opcional)</small></label>
                        <textarea name="observacion" id="obsLab" class="form-control" rows="3" placeholder="Puede escribir una observación sobre el resultado..."></textarea>
                    </div>
                </form>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Cancelar</button>
                <button type="button" class="btn btn-success" id="btnGuardarResultado">
                    <i class="fa fa-upload"></i> Subir Resultado
                </button>
            </div>
        </div>
    </div>
</div>

<?php require 'footer.php'; ?>

<script>
var AREA_ACTUAL = 'LABORATORIO';

var dtPendientes, dtCompletados;

$(document).ready(function () {
    dtPendientes = $('#tblPendientes').DataTable({
        processing: true,
        language: { url: '../public/datatables/Spanish.json' },
        ajax: {
            url: '../ajax/lab_rx.php?op=listar_pendientes',
            type: 'POST',
            data: { area: AREA_ACTUAL }
        },
        columns: [
            { data: "0" }, { data: "1" }, { data: "2" },
            { data: "3" }, { data: "4" }, { data: "5", orderable: false }
        ],
        order: [[0, 'asc']]
    });

    dtCompletados = $('#tblCompletados').DataTable({
        processing: true,
        language: { url: '../public/datatables/Spanish.json' },
        ajax: {
            url: '../ajax/lab_rx.php?op=listar_completados',
            type: 'POST',
            data: { area: AREA_ACTUAL }
        },
        columns: [
            { data: "0" }, { data: "1" }, { data: "2" },
            { data: "3" }, { data: "4" }, { data: "5", orderable: false }
        ],
        order: [[0, 'desc']]
    });

    // Recargar tab al cambiar
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        var target = $(e.target).attr("href");
        if (target === '#tab-pendientes') dtPendientes.ajax.reload();
        if (target === '#tab-completados') dtCompletados.ajax.reload();
    });
});

function marcarEnProceso(idsolicitud) {
    bootbox.confirm('¿Marcar esta orden como "En Proceso"?', function (result) {
        if (!result) return;
        $.post('../ajax/lab_rx.php?op=marcar_en_proceso', { idsolicitud: idsolicitud }, function (resp) {
            try { resp = (typeof resp === 'string') ? JSON.parse(resp) : resp; } catch(e) {}
            if (resp.success) {
                bootbox.alert('¡Orden marcada en proceso!', function() { dtPendientes.ajax.reload(); });
            } else {
                bootbox.alert('Error: ' + resp.message);
            }
        });
    });
}

function abrirModalResultado(idsolicitud) {
    $('#sol_id_lab').val(idsolicitud);
    $('#archivoResultado').val('');
    $('#obsLab').val('');
    $('#modalSubirResultado').modal('show');
}

$('#btnGuardarResultado').on('click', function () {
    var archivo = $('#archivoResultado')[0].files[0];
    if (!archivo) {
        bootbox.alert('Por favor seleccione un archivo de resultado.');
        return;
    }
    var btn = $(this);
    btn.prop('disabled', true).html('<i class="fa fa-spinner fa-spin"></i> Subiendo...');

    var formData = new FormData($('#formSubirResultado')[0]);
    $.ajax({
        url: '../ajax/lab_rx.php?op=subir_resultado',
        type: 'POST',
        data: formData,
        processData: false,
        contentType: false,
        dataType: 'json',
        success: function (resp) {
            btn.prop('disabled', false).html('<i class="fa fa-upload"></i> Subir Resultado');
            if (resp.success) {
                $('#modalSubirResultado').modal('hide');
                bootbox.alert('<i class="fa fa-check-circle text-success"></i> Resultado subido correctamente. El médico será notificado.', function () {
                    dtPendientes.ajax.reload();
                    dtCompletados.ajax.reload();
                });
            } else {
                bootbox.alert('Error: ' + resp.message);
            }
        },
        error: function () {
            btn.prop('disabled', false).html('<i class="fa fa-upload"></i> Subir Resultado');
            bootbox.alert('Error de comunicación con el servidor.');
        }
    });
});
</script>

<?php ob_end_flush(); ?>
