query("SELECT id, username FROM users WHERE role = 'doctor' ORDER BY username"); $doctors = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch (PDOException $e) { $error = "Database error: " . $e->getMessage(); } if ($_SERVER["REQUEST_METHOD"] == "POST") { $patient_name = trim($_POST['patient_name']); $phone_number = trim($_POST['phone_number']); $address = trim($_POST['address']); $doctor_id = $_POST['doctor_id']; if (empty($patient_name) || empty($doctor_id)) { $error = "Patient name and assigned doctor are required."; } else { try { // Generate a unique patient ID $prefix = 'PT'; $stmt = $pdo->query("SELECT MAX(id) FROM patients"); $last_id = $stmt->fetchColumn(); $next_id = ($last_id) ? $last_id + 1 : 1; $patient_id = $prefix . str_pad($next_id, 6, '0', STR_PAD_LEFT); // Set initial status $status = 'Pending'; $total_fee = 20.00; // Example fee $sql = "INSERT INTO patients (patient_id, patient_name, phone_number, address, doctor_id, status, total_fee) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); if ($stmt->execute([$patient_id, $patient_name, $phone_number, $address, $doctor_id, $status, $total_fee])) { $_SESSION['message'] = "Patient registered successfully! Patient ID: $patient_id"; header("Location: reception.php"); exit(); } else { $error = "Failed to register patient."; } } catch (PDOException $e) { $error = "Database error: " . $e->getMessage(); } } } ?>