36247-vm/update_patient_status.php
Flatlogic Bot c8d83e1d5c version 2
2025-11-25 08:14:18 +00:00

78 lines
2.2 KiB
PHP

<?php
require_once 'auth.php';
require_role('doctor');
require_once 'db/config.php';
header('Content-Type: application/json');
$response = ['success' => false, 'message' => 'Invalid request'];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$visit_id = $_POST['visit_id'] ?? null;
$status = $_POST['status'] ?? null;
$notes = $_POST['notes'] ?? null;
$service_rendered = $_POST['service_rendered'] ?? null;
$cost = $_POST['cost'] ?? null;
if ($visit_id && $status) {
try {
$pdo = db();
// All updates now go to the patient_visits table
$sql = "UPDATE patient_visits SET status = ?";
$params = [$status];
if ($notes !== null) {
$sql .= ", notes = ?";
$params[] = $notes;
}
if ($service_rendered !== null) {
$sql .= ", service_rendered = ?";
$params[] = $service_rendered;
}
if ($cost !== null) {
$sql .= ", cost = ?";
$params[] = $cost;
}
// When completing, set payment_status to unpaid for this specific visit
if ($status === 'Completed') {
$sql .= ", payment_status = 'unpaid'";
}
$sql .= " WHERE visit_id = ?";
$params[] = $visit_id;
$stmt = $pdo->prepare($sql);
if ($stmt->execute($params)) {
$response['success'] = true;
$response['message'] = 'Visit status updated successfully.';
$response['status_class'] = get_status_badge_class($status);
} else {
$response['message'] = 'Failed to update visit status.';
}
} catch (PDOException $e) {
$response['message'] = 'Database error: ' . $e->getMessage();
}
} else {
$response['message'] = 'Missing visit ID or status.';
}
}
echo json_encode($response);
function get_status_badge_class($status) {
switch ($status) {
case 'Pending':
return 'warning';
case 'In Progress':
return 'info';
case 'Completed':
return 'success';
default:
return 'secondary';
}
}
?>