feat: 添加医生管理功能
This commit is contained in:
parent
ae6d8a58e9
commit
ebc20bbac3
162
modules/doctors/add.php
Normal file
162
modules/doctors/add.php
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>新增医生 - 电子病历系统</title>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="../../css/material.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<h1>
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
新增医生
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<nav class="nav-menu">
|
||||||
|
<ul>
|
||||||
|
<li><a href="../../index.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"/>
|
||||||
|
</svg>
|
||||||
|
仪表板
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../patients/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
|
||||||
|
</svg>
|
||||||
|
患者管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="list.php" class="active">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medical_records/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
|
||||||
|
</svg>
|
||||||
|
病历管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../departments/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z"/>
|
||||||
|
</svg>
|
||||||
|
科室管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medications/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17,3C18.1,3 19,3.9 19,5V8H21V10H19V19C19,20.1 18.1,21 17,21H7C5.9,21 5,20.1 5,19V10H3V8H5V5C5,3.9 5.9,3 7,3H17M7,5V8H17V5H7M7,10V19H17V10H7M9,12H15V14H9V12M9,15H13V17H9V15Z"/>
|
||||||
|
</svg>
|
||||||
|
药品管理
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<?php
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
|
include "../../conn/conn.php";
|
||||||
|
|
||||||
|
$name = mysqli_real_escape_string($connID, $_POST['name']);
|
||||||
|
$gender = mysqli_real_escape_string($connID, $_POST['gender']);
|
||||||
|
$phone = mysqli_real_escape_string($connID, $_POST['phone']);
|
||||||
|
$email = mysqli_real_escape_string($connID, $_POST['email']);
|
||||||
|
$specialty = mysqli_real_escape_string($connID, $_POST['specialty']);
|
||||||
|
$department_id = (int)$_POST['department_id'];
|
||||||
|
$license_number = mysqli_real_escape_string($connID, $_POST['license_number']);
|
||||||
|
|
||||||
|
$sql = "INSERT INTO doctors (name, gender, phone, email, specialty, department_id, license_number)
|
||||||
|
VALUES ('$name', '$gender', '$phone', '$email', '$specialty', '$department_id', '$license_number')";
|
||||||
|
|
||||||
|
if (mysqli_query($connID, $sql)) {
|
||||||
|
echo '<div class="alert alert-success">医生信息添加成功!</div>';
|
||||||
|
echo '<script>setTimeout(function(){window.location.href="list.php";}, 2000);</script>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="alert alert-error">添加失败:' . mysqli_error($connID) . '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"/>
|
||||||
|
</svg>
|
||||||
|
新增医生信息
|
||||||
|
</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<form method="POST">
|
||||||
|
<div class="grid grid-2">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">医生姓名 *</label>
|
||||||
|
<input type="text" name="name" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">性别 *</label>
|
||||||
|
<select name="gender" class="form-control" required>
|
||||||
|
<option value="">请选择</option>
|
||||||
|
<option value="男">男</option>
|
||||||
|
<option value="女">女</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">联系电话 *</label>
|
||||||
|
<input type="tel" name="phone" class="form-control" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">邮箱地址</label>
|
||||||
|
<input type="email" name="email" class="form-control">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">专业特长 *</label>
|
||||||
|
<input type="text" name="specialty" class="form-control" required placeholder="如:心血管内科、普通外科等">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">所属科室 *</label>
|
||||||
|
<select name="department_id" class="form-control" required>
|
||||||
|
<option value="">请选择科室</option>
|
||||||
|
<?php
|
||||||
|
include "../../conn/conn.php";
|
||||||
|
$departments_query = "SELECT * FROM departments ORDER BY name";
|
||||||
|
$departments_result = mysqli_query($connID, $departments_query);
|
||||||
|
while($department = mysqli_fetch_assoc($departments_result)):
|
||||||
|
?>
|
||||||
|
<option value="<?php echo $department['id']; ?>">
|
||||||
|
<?php echo htmlspecialchars($department['name']); ?>
|
||||||
|
</option>
|
||||||
|
<?php endwhile; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">执业证书号 *</label>
|
||||||
|
<input type="text" name="license_number" class="form-control" required placeholder="医师执业证书编号">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; gap: 16px; margin-top: 24px;">
|
||||||
|
<button type="submit" class="btn btn-primary">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"/>
|
||||||
|
</svg>
|
||||||
|
保存医生信息
|
||||||
|
</button>
|
||||||
|
<a href="list.php" class="btn" style="background: #f5f5f5; color: #666;">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
|
||||||
|
</svg>
|
||||||
|
取消
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
205
modules/doctors/edit.php
Normal file
205
modules/doctors/edit.php
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>编辑医生 - 电子病历系统</title>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="../../css/material.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<h1>
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"/>
|
||||||
|
</svg>
|
||||||
|
编辑医生信息
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<nav class="nav-menu">
|
||||||
|
<ul>
|
||||||
|
<li><a href="../../index.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"/>
|
||||||
|
</svg>
|
||||||
|
仪表板
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../patients/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
|
||||||
|
</svg>
|
||||||
|
患者管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="list.php" class="active">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medical_records/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
|
||||||
|
</svg>
|
||||||
|
病历管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../departments/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z"/>
|
||||||
|
</svg>
|
||||||
|
科室管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medications/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17,3C18.1,3 19,3.9 19,5V8H21V10H19V19C19,20.1 18.1,21 17,21H7C5.9,21 5,20.1 5,19V10H3V8H5V5C5,3.9 5.9,3 7,3H17M7,5V8H17V5H7M7,10V19H17V10H7M9,12H15V14H9V12M9,15H13V17H9V15Z"/>
|
||||||
|
</svg>
|
||||||
|
药品管理
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<?php
|
||||||
|
include "../../conn/conn.php";
|
||||||
|
|
||||||
|
$doctor_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
|
||||||
|
|
||||||
|
if ($doctor_id <= 0) {
|
||||||
|
echo '<div class="alert alert-error">无效的医生ID</div>';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||||
|
$name = mysqli_real_escape_string($connID, $_POST['name']);
|
||||||
|
$gender = mysqli_real_escape_string($connID, $_POST['gender']);
|
||||||
|
$phone = mysqli_real_escape_string($connID, $_POST['phone']);
|
||||||
|
$email = $_POST['email'] ? mysqli_real_escape_string($connID, $_POST['email']) : NULL;
|
||||||
|
$specialty = mysqli_real_escape_string($connID, $_POST['specialty']);
|
||||||
|
$department_id = (int)$_POST['department_id'];
|
||||||
|
$license_number = mysqli_real_escape_string($connID, $_POST['license_number']);
|
||||||
|
|
||||||
|
$sql = "UPDATE doctors SET
|
||||||
|
name = '$name',
|
||||||
|
gender = '$gender',
|
||||||
|
phone = '$phone',
|
||||||
|
email = " . ($email ? "'$email'" : "NULL") . ",
|
||||||
|
specialty = '$specialty',
|
||||||
|
department_id = '$department_id',
|
||||||
|
license_number = '$license_number'
|
||||||
|
WHERE id = $doctor_id";
|
||||||
|
|
||||||
|
if (mysqli_query($connID, $sql)) {
|
||||||
|
echo '<div class="alert alert-success">医生信息更新成功!</div>';
|
||||||
|
echo '<script>setTimeout(function(){window.location.href="list.php";}, 2000);</script>';
|
||||||
|
} else {
|
||||||
|
echo '<div class="alert alert-error">更新失败:' . mysqli_error($connID) . '</div>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT d.*, dept.name as department_name
|
||||||
|
FROM doctors d
|
||||||
|
LEFT JOIN departments dept ON d.department_id = dept.id
|
||||||
|
WHERE d.id = $doctor_id";
|
||||||
|
$result = mysqli_query($connID, $sql);
|
||||||
|
|
||||||
|
if (mysqli_num_rows($result) == 0) {
|
||||||
|
echo '<div class="alert alert-error">医生不存在</div>';
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$doctor = mysqli_fetch_assoc($result);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z"/>
|
||||||
|
</svg>
|
||||||
|
编辑医生信息
|
||||||
|
</h2>
|
||||||
|
<p style="margin: 8px 0 0 0; color: #666;">
|
||||||
|
当前编辑:<?php echo htmlspecialchars($doctor['name']); ?> - <?php echo htmlspecialchars($doctor['department_name']); ?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<form method="POST">
|
||||||
|
<div class="grid grid-2">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">医生姓名 *</label>
|
||||||
|
<input type="text" name="name" class="form-control" required value="<?php echo htmlspecialchars($doctor['name']); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">性别 *</label>
|
||||||
|
<select name="gender" class="form-control" required>
|
||||||
|
<option value="男" <?php echo $doctor['gender'] == '男' ? 'selected' : ''; ?>>男</option>
|
||||||
|
<option value="女" <?php echo $doctor['gender'] == '女' ? 'selected' : ''; ?>>女</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">联系电话 *</label>
|
||||||
|
<input type="tel" name="phone" class="form-control" required value="<?php echo htmlspecialchars($doctor['phone']); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">邮箱地址</label>
|
||||||
|
<input type="email" name="email" class="form-control" value="<?php echo htmlspecialchars($doctor['email']); ?>">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">专业特长 *</label>
|
||||||
|
<input type="text" name="specialty" class="form-control" required value="<?php echo htmlspecialchars($doctor['specialty']); ?>"
|
||||||
|
placeholder="如:心血管内科、普通外科等">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">所属科室 *</label>
|
||||||
|
<select name="department_id" class="form-control" required>
|
||||||
|
<option value="">请选择科室</option>
|
||||||
|
<?php
|
||||||
|
$departments_query = "SELECT * FROM departments ORDER BY name";
|
||||||
|
$departments_result = mysqli_query($connID, $departments_query);
|
||||||
|
while($department = mysqli_fetch_assoc($departments_result)):
|
||||||
|
?>
|
||||||
|
<option value="<?php echo $department['id']; ?>"
|
||||||
|
<?php echo $doctor['department_id'] == $department['id'] ? 'selected' : ''; ?>>
|
||||||
|
<?php echo htmlspecialchars($department['name']); ?>
|
||||||
|
</option>
|
||||||
|
<?php endwhile; ?>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="form-label">执业证书号 *</label>
|
||||||
|
<input type="text" name="license_number" class="form-control" required
|
||||||
|
value="<?php echo htmlspecialchars($doctor['license_number']); ?>"
|
||||||
|
placeholder="医师执业证书编号">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="display: flex; gap: 16px; margin-top: 24px;">
|
||||||
|
<button type="submit" class="btn btn-primary">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"/>
|
||||||
|
</svg>
|
||||||
|
保存修改
|
||||||
|
</button>
|
||||||
|
<a href="list.php" class="btn btn-secondary">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M9,12L11,14L15,10M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2Z"/>
|
||||||
|
</svg>
|
||||||
|
返回列表
|
||||||
|
</a>
|
||||||
|
<a href="list.php" class="btn" style="background: #f5f5f5; color: #666;">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"/>
|
||||||
|
</svg>
|
||||||
|
取消
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="margin-top: 16px; text-align: center; color: #666; font-size: 14px;">
|
||||||
|
创建时间:<?php echo date('Y年m月d日 H:i', strtotime($doctor['created_at'])); ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
184
modules/doctors/list.php
Normal file
184
modules/doctors/list.php
Normal file
@ -0,0 +1,184 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>医生管理 - 电子病历系统</title>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="../../css/material.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<h1>
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生管理
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<nav class="nav-menu">
|
||||||
|
<ul>
|
||||||
|
<li><a href="../../index.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"/>
|
||||||
|
</svg>
|
||||||
|
仪表板
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../patients/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
|
||||||
|
</svg>
|
||||||
|
患者管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="list.php" class="active">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medical_records/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
|
||||||
|
</svg>
|
||||||
|
病历管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../departments/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z"/>
|
||||||
|
</svg>
|
||||||
|
科室管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medications/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17,3C18.1,3 19,3.9 19,5V8H21V10H19V19C19,20.1 18.1,21 17,21H7C5.9,21 5,20.1 5,19V10H3V8H5V5C5,3.9 5.9,3 7,3H17M7,5V8H17V5H7M7,10V19H17V10H7M9,12H15V14H9V12M9,15H13V17H9V15Z"/>
|
||||||
|
</svg>
|
||||||
|
药品管理
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生列表
|
||||||
|
</h2>
|
||||||
|
<div style="margin-top: 16px;">
|
||||||
|
<a href="add.php" class="btn btn-primary">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z"/>
|
||||||
|
</svg>
|
||||||
|
新增医生
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<div style="margin-bottom: 20px;">
|
||||||
|
<form method="GET" style="display: flex; gap: 16px; align-items: center;">
|
||||||
|
<input type="text" name="search" class="form-control" placeholder="搜索医生姓名、电话或执照号"
|
||||||
|
value="<?php echo isset($_GET['search']) ? htmlspecialchars($_GET['search']) : ''; ?>"
|
||||||
|
style="max-width: 300px;">
|
||||||
|
<select name="department" class="form-control" style="max-width: 150px;">
|
||||||
|
<option value="">全部科室</option>
|
||||||
|
<?php
|
||||||
|
include "../../conn/conn.php";
|
||||||
|
$dept_query = "SELECT * FROM departments ORDER BY name";
|
||||||
|
$dept_result = mysqli_query($connID, $dept_query);
|
||||||
|
while($dept = mysqli_fetch_assoc($dept_result)):
|
||||||
|
?>
|
||||||
|
<option value="<?php echo $dept['id']; ?>" <?php echo (isset($_GET['department']) && $_GET['department'] == $dept['id']) ? 'selected' : ''; ?>>
|
||||||
|
<?php echo htmlspecialchars($dept['name']); ?>
|
||||||
|
</option>
|
||||||
|
<?php endwhile; ?>
|
||||||
|
</select>
|
||||||
|
<button type="submit" class="btn btn-primary btn-small">搜索</button>
|
||||||
|
<?php if(isset($_GET['search']) && $_GET['search'] || isset($_GET['department']) && $_GET['department']): ?>
|
||||||
|
<a href="list.php" class="btn btn-small" style="background: #f5f5f5; color: #666;">清除</a>
|
||||||
|
<?php endif; ?>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="table-responsive">
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>ID</th>
|
||||||
|
<th>姓名</th>
|
||||||
|
<th>性别</th>
|
||||||
|
<th>联系电话</th>
|
||||||
|
<th>邮箱</th>
|
||||||
|
<th>专业</th>
|
||||||
|
<th>科室</th>
|
||||||
|
<th>执照号</th>
|
||||||
|
<th>创建时间</th>
|
||||||
|
<th>操作</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
$search = isset($_GET['search']) ? trim($_GET['search']) : '';
|
||||||
|
$department = isset($_GET['department']) ? trim($_GET['department']) : '';
|
||||||
|
|
||||||
|
$where_clause = 'WHERE 1=1';
|
||||||
|
if ($search) {
|
||||||
|
$search = mysqli_real_escape_string($connID, $search);
|
||||||
|
$where_clause .= " AND (d.name LIKE '%$search%' OR d.phone LIKE '%$search%' OR d.license_number LIKE '%$search%')";
|
||||||
|
}
|
||||||
|
if ($department) {
|
||||||
|
$department = mysqli_real_escape_string($connID, $department);
|
||||||
|
$where_clause .= " AND d.department_id = '$department'";
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = "SELECT d.*, dept.name as department_name
|
||||||
|
FROM doctors d
|
||||||
|
JOIN departments dept ON d.department_id = dept.id
|
||||||
|
$where_clause
|
||||||
|
ORDER BY d.created_at DESC";
|
||||||
|
|
||||||
|
$result = mysqli_query($connID, $sql);
|
||||||
|
|
||||||
|
if(mysqli_num_rows($result) > 0):
|
||||||
|
while($doctor = mysqli_fetch_assoc($result)):
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td><?php echo $doctor['id']; ?></td>
|
||||||
|
<td><strong><?php echo htmlspecialchars($doctor['name']); ?></strong></td>
|
||||||
|
<td><?php echo $doctor['gender']; ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($doctor['phone']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($doctor['email']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($doctor['specialty']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($doctor['department_name']); ?></td>
|
||||||
|
<td><?php echo htmlspecialchars($doctor['license_number']); ?></td>
|
||||||
|
<td><?php echo date('Y-m-d H:i', strtotime($doctor['created_at'])); ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="view.php?id=<?php echo $doctor['id']; ?>" class="btn btn-small btn-primary">查看</a>
|
||||||
|
<a href="edit.php?id=<?php echo $doctor['id']; ?>" class="btn btn-small btn-warning">编辑</a>
|
||||||
|
<a href="../medical_records/add.php?doctor_id=<?php echo $doctor['id']; ?>" class="btn btn-small btn-success">排班</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php
|
||||||
|
endwhile;
|
||||||
|
else:
|
||||||
|
?>
|
||||||
|
<tr>
|
||||||
|
<td colspan="10" style="text-align: center; color: #999; padding: 40px;">
|
||||||
|
<?php if($search || $department): ?>
|
||||||
|
未找到匹配的医生信息
|
||||||
|
<?php else: ?>
|
||||||
|
暂无医生数据
|
||||||
|
<?php endif; ?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endif; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
391
modules/doctors/view.php
Normal file
391
modules/doctors/view.php
Normal file
@ -0,0 +1,391 @@
|
|||||||
|
<?php
|
||||||
|
include "../../conn/conn.php";
|
||||||
|
|
||||||
|
// 获取医生ID
|
||||||
|
$doctor_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
|
||||||
|
|
||||||
|
if ($doctor_id <= 0) {
|
||||||
|
echo "<script>alert('无效的医生ID'); window.location.href='list.php';</script>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询医生信息
|
||||||
|
$sql = "SELECT d.*, dept.name as department_name
|
||||||
|
FROM doctors d
|
||||||
|
JOIN departments dept ON d.department_id = dept.id
|
||||||
|
WHERE d.id = $doctor_id";
|
||||||
|
|
||||||
|
$result = mysqli_query($connID, $sql);
|
||||||
|
|
||||||
|
if (mysqli_num_rows($result) == 0) {
|
||||||
|
echo "<script>alert('医生不存在'); window.location.href='list.php';</script>";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$doctor = mysqli_fetch_assoc($result);
|
||||||
|
|
||||||
|
// 获取该医生的统计信息
|
||||||
|
$stats_sql = "SELECT
|
||||||
|
COUNT(DISTINCT mr.id) as total_records,
|
||||||
|
COUNT(DISTINCT mr.patient_id) as total_patients,
|
||||||
|
COUNT(CASE WHEN DATE(mr.created_at) = CURDATE() THEN 1 END) as today_records,
|
||||||
|
COUNT(CASE WHEN mr.created_at >= DATE_SUB(NOW(), INTERVAL 7 DAY) THEN 1 END) as week_records
|
||||||
|
FROM medical_records mr
|
||||||
|
WHERE mr.doctor_id = $doctor_id";
|
||||||
|
|
||||||
|
$stats_result = mysqli_query($connID, $stats_sql);
|
||||||
|
$stats = mysqli_fetch_assoc($stats_result);
|
||||||
|
|
||||||
|
// 获取最近的病历记录
|
||||||
|
$recent_records_sql = "SELECT mr.*, p.name as patient_name, p.phone as patient_phone
|
||||||
|
FROM medical_records mr
|
||||||
|
JOIN patients p ON mr.patient_id = p.id
|
||||||
|
WHERE mr.doctor_id = $doctor_id
|
||||||
|
ORDER BY mr.created_at DESC
|
||||||
|
LIMIT 5";
|
||||||
|
|
||||||
|
$recent_records_result = mysqli_query($connID, $recent_records_sql);
|
||||||
|
?>
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>医生详情 - <?php echo htmlspecialchars($doctor['name']); ?> - 电子病历系统</title>
|
||||||
|
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap" rel="stylesheet">
|
||||||
|
<link href="../../css/material.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
|
.doctor-header {
|
||||||
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
||||||
|
color: white;
|
||||||
|
padding: 2rem;
|
||||||
|
border-radius: 12px;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.doctor-header::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 200px;
|
||||||
|
height: 200px;
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
border-radius: 50%;
|
||||||
|
transform: translate(50%, -50%);
|
||||||
|
}
|
||||||
|
.doctor-avatar {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
font-size: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
border: 3px solid rgba(255, 255, 255, 0.3);
|
||||||
|
}
|
||||||
|
.doctor-name {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
.doctor-title {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
opacity: 0.9;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
.doctor-id {
|
||||||
|
background: rgba(255, 255, 255, 0.2);
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.3rem 0.8rem;
|
||||||
|
border-radius: 20px;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.stats-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||||
|
gap: 1rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
.stat-card {
|
||||||
|
background: white;
|
||||||
|
padding: 1.5rem;
|
||||||
|
border-radius: 12px;
|
||||||
|
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||||
|
text-align: center;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
}
|
||||||
|
.stat-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
}
|
||||||
|
.stat-number {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
font-weight: 700;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
.stat-label {
|
||||||
|
color: #666;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.info-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
gap: 2rem;
|
||||||
|
}
|
||||||
|
.info-item {
|
||||||
|
padding: 1rem 0;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
.info-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.info-label {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #666;
|
||||||
|
margin-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
.info-value {
|
||||||
|
font-size: 1.1rem;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.recent-records {
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
.record-item {
|
||||||
|
padding: 1rem;
|
||||||
|
border: 1px solid #eee;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
transition: box-shadow 0.3s ease;
|
||||||
|
}
|
||||||
|
.record-item:hover {
|
||||||
|
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
||||||
|
}
|
||||||
|
.record-header {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
.patient-name {
|
||||||
|
font-weight: 500;
|
||||||
|
color: #1976d2;
|
||||||
|
}
|
||||||
|
.record-date {
|
||||||
|
color: #666;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.info-grid {
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
gap: 1rem;
|
||||||
|
}
|
||||||
|
.doctor-header {
|
||||||
|
padding: 1.5rem;
|
||||||
|
}
|
||||||
|
.doctor-name {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header class="header">
|
||||||
|
<h1>
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生详情
|
||||||
|
</h1>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<nav class="nav-menu">
|
||||||
|
<ul>
|
||||||
|
<li><a href="../../index.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z"/>
|
||||||
|
</svg>
|
||||||
|
仪表板
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../patients/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
|
||||||
|
</svg>
|
||||||
|
患者管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="list.php" class="active">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
医生管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medical_records/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
|
||||||
|
</svg>
|
||||||
|
病历管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../departments/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z"/>
|
||||||
|
</svg>
|
||||||
|
科室管理
|
||||||
|
</a></li>
|
||||||
|
<li><a href="../medications/list.php">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M17,3C18.1,3 19,3.9 19,5V8H21V10H19V19C19,20.1 18.1,21 17,21H7C5.9,21 5,20.1 5,19V10H3V8H5V5C5,3.9 5.9,3 7,3H17M7,5V8H17V5H7M7,10V19H17V10H7M9,12H15V14H9V12M9,15H13V17H9V15Z"/>
|
||||||
|
</svg>
|
||||||
|
药品管理
|
||||||
|
</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<!-- 医生头部信息 -->
|
||||||
|
<div class="doctor-header">
|
||||||
|
<div class="doctor-avatar">
|
||||||
|
👨⚕️
|
||||||
|
</div>
|
||||||
|
<div class="doctor-name"><?php echo htmlspecialchars($doctor['name']); ?></div>
|
||||||
|
<div class="doctor-title"><?php echo htmlspecialchars($doctor['specialty']); ?> • <?php echo htmlspecialchars($doctor['department_name']); ?></div>
|
||||||
|
<div class="doctor-id">医生编号: <?php echo $doctor['id']; ?></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 统计卡片 -->
|
||||||
|
<div class="stats-grid">
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-number" style="color: #1976d2;"><?php echo $stats['total_records']; ?></div>
|
||||||
|
<div class="stat-label">总病历数</div>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-number" style="color: #388e3c;"><?php echo $stats['total_patients']; ?></div>
|
||||||
|
<div class="stat-label">接诊患者数</div>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-number" style="color: #f57c00;"><?php echo $stats['today_records']; ?></div>
|
||||||
|
<div class="stat-label">今日接诊</div>
|
||||||
|
</div>
|
||||||
|
<div class="stat-card">
|
||||||
|
<div class="stat-number" style="color: #7b1fa2;"><?php echo $stats['week_records']; ?></div>
|
||||||
|
<div class="stat-label">本周接诊</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-grid">
|
||||||
|
<!-- 基本信息 -->
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"/>
|
||||||
|
</svg>
|
||||||
|
基本信息
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">姓名</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['name']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">性别</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['gender']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">联系电话</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['phone']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">邮箱地址</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['email']); ?></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 职业信息 -->
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14.84,2.5C16.2,2.5 17.5,3.2 18.28,4.38L18.5,4.75L19.25,4.38C19.92,4 20.75,4.2 21.13,4.87C21.5,5.54 21.33,6.42 20.66,6.79L20.04,7.12C20.04,7.12 20.04,7.12 20.04,7.12C20.47,7.88 20.47,8.78 20.04,9.54L20.5,9.78C21.17,10.15 21.33,11.04 20.97,11.71C20.6,12.38 19.72,12.54 19.05,12.17L18.5,11.88C17.71,13.07 16.39,13.77 15.04,13.77C13.68,13.77 12.36,13.07 11.57,11.88L11,12.17C10.33,12.54 9.45,12.38 9.08,11.71C8.71,11.04 8.88,10.15 9.55,9.78L10,9.54C9.58,8.78 9.58,7.88 10,7.12L9.38,6.79C8.71,6.42 8.55,5.54 8.92,4.87C9.29,4.2 10.17,4 10.84,4.38L11.57,4.75C12.35,3.56 13.67,2.86 15.04,2.86M15.04,4.64C14.18,4.64 13.4,5.09 12.96,5.78L12.5,6.5L11.78,6.06C11.58,5.94 11.32,6 11.19,6.21C11.07,6.42 11.13,6.68 11.34,6.81L12.06,7.25L11.78,7.94C11.58,8.38 11.58,8.87 11.78,9.31L12.06,10L11.34,10.44C11.13,10.57 11.07,10.83 11.19,11.04C11.32,11.25 11.58,11.31 11.78,11.19L12.5,10.75L12.96,11.47C13.4,12.16 14.18,12.61 15.04,12.61C15.9,12.61 16.68,12.16 17.12,11.47L17.58,10.75L18.3,11.19C18.5,11.31 18.76,11.25 18.89,11.04C19.01,10.83 18.95,10.57 18.74,10.44L18.02,10L18.3,9.31C18.5,8.87 18.5,8.38 18.3,7.94L18.02,7.25L18.74,6.81C18.95,6.68 19.01,6.42 18.89,6.21C18.76,6 18.5,5.94 18.3,6.06L17.58,6.5L17.12,5.78C16.68,5.09 15.9,4.64 15.04,4.64M11,15.5V17.5H3V15.5C3,14.39 6.69,13.5 9.5,13.5C10.4,13.5 11.5,13.65 12.5,13.91C11.84,14.8 11.5,15.88 11.5,17C11.34,16.83 11.17,16.66 11,15.5M9.5,12A2.5,2.5 0 0,1 7,9.5A2.5,2.5 0 0,1 9.5,7A2.5,2.5 0 0,1 12,9.5A2.5,2.5 0 0,1 9.5,12Z"/>
|
||||||
|
</svg>
|
||||||
|
职业信息
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">所属科室</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['department_name']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">专业特长</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['specialty']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">执业证号</div>
|
||||||
|
<div class="info-value"><?php echo htmlspecialchars($doctor['license_number']); ?></div>
|
||||||
|
</div>
|
||||||
|
<div class="info-item">
|
||||||
|
<div class="info-label">入职日期</div>
|
||||||
|
<div class="info-value"><?php echo date('Y年m月d日', strtotime($doctor['created_at'])); ?></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 最近病历记录 -->
|
||||||
|
<div class="recent-records">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">
|
||||||
|
<svg class="icon" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
|
||||||
|
</svg>
|
||||||
|
最近病历记录
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
<div class="card-content">
|
||||||
|
<?php if (mysqli_num_rows($recent_records_result) > 0): ?>
|
||||||
|
<?php while($record = mysqli_fetch_assoc($recent_records_result)): ?>
|
||||||
|
<div class="record-item">
|
||||||
|
<div class="record-header">
|
||||||
|
<span class="patient-name"><?php echo htmlspecialchars($record['patient_name']); ?></span>
|
||||||
|
<span class="record-date"><?php echo date('Y-m-d H:i', strtotime($record['created_at'])); ?></span>
|
||||||
|
</div>
|
||||||
|
<div style="color: #666; margin-bottom: 0.5rem;">
|
||||||
|
联系电话: <?php echo htmlspecialchars($record['patient_phone']); ?>
|
||||||
|
</div>
|
||||||
|
<div style="color: #333;">
|
||||||
|
主要症状: <?php echo htmlspecialchars(mb_substr($record['symptoms'], 0, 100, 'UTF-8')); ?>
|
||||||
|
<?php if (mb_strlen($record['symptoms'], 'UTF-8') > 100): ?>...<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 0.5rem;">
|
||||||
|
<a href="../medical_records/view.php?id=<?php echo $record['id']; ?>" class="btn btn-small btn-primary">查看详情</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<?php endwhile; ?>
|
||||||
|
<div style="text-align: center; margin-top: 1rem;">
|
||||||
|
<a href="../medical_records/list.php?doctor_id=<?php echo $doctor_id; ?>" class="btn btn-primary">查看全部病历</a>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div style="text-align: center; color: #999; padding: 2rem;">
|
||||||
|
暂无病历记录
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 操作按钮 -->
|
||||||
|
<div style="margin-top: 2rem; text-align: center;">
|
||||||
|
<a href="list.php" class="btn btn-primary">返回医生列表</a>
|
||||||
|
<a href="edit.php?id=<?php echo $doctor_id; ?>" class="btn btn-warning">编辑信息</a>
|
||||||
|
<a href="../medical_records/add.php?doctor_id=<?php echo $doctor_id; ?>" class="btn btn-success">新建病历</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue
Block a user