PHP_WORKS/modules/medical_records/add.php
2025-05-30 11:10:48 +08:00

214 lines
13 KiB
PHP

<!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,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"/>
</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="../doctors/list.php">
<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="list.php" class="active">
<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";
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$patient_id = mysqli_real_escape_string($connID, $_POST['patient_id']);
$doctor_id = mysqli_real_escape_string($connID, $_POST['doctor_id']);
$department_id = mysqli_real_escape_string($connID, $_POST['department_id']);
$visit_date = mysqli_real_escape_string($connID, $_POST['visit_date']);
$chief_complaint = mysqli_real_escape_string($connID, $_POST['chief_complaint']);
$present_illness = mysqli_real_escape_string($connID, $_POST['present_illness']);
$physical_examination = mysqli_real_escape_string($connID, $_POST['physical_examination']);
$diagnosis = mysqli_real_escape_string($connID, $_POST['diagnosis']);
$treatment_plan = mysqli_real_escape_string($connID, $_POST['treatment_plan']);
$notes = mysqli_real_escape_string($connID, $_POST['notes']);
$sql = "INSERT INTO medical_records (patient_id, doctor_id, department_id, visit_date, chief_complaint, present_illness, physical_examination, diagnosis, treatment_plan, notes)
VALUES ('$patient_id', '$doctor_id', '$department_id', '$visit_date', '$chief_complaint', '$present_illness', '$physical_examination', '$diagnosis', '$treatment_plan', '$notes')";
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>';
}
}
$selected_patient_id = isset($_GET['patient_id']) ? $_GET['patient_id'] : '';
$patients_query = "SELECT * FROM patients ORDER BY name";
$patients_result = mysqli_query($connID, $patients_query);
$doctors_query = "SELECT d.*, dept.name as department_name FROM doctors d JOIN departments dept ON d.department_id = dept.id ORDER BY d.name";
$doctors_result = mysqli_query($connID, $doctors_query);
$departments_query = "SELECT * FROM departments ORDER BY name";
$departments_result = mysqli_query($connID, $departments_query);
?>
<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>
<select name="patient_id" class="form-control" required onchange="loadPatientInfo(this.value)">
<option value="">请选择患者</option>
<?php while($patient = mysqli_fetch_assoc($patients_result)): ?>
<option value="<?php echo $patient['id']; ?>" <?php echo ($selected_patient_id == $patient['id']) ? 'selected' : ''; ?>>
<?php echo htmlspecialchars($patient['name']); ?> - <?php echo $patient['phone']; ?>
</option>
<?php endwhile; ?>
</select>
</div>
<div class="form-group">
<label class="form-label">医生 *</label>
<select name="doctor_id" class="form-control" required onchange="loadDoctorDepartment(this.value)">
<option value="">请选择医生</option>
<?php while($doctor = mysqli_fetch_assoc($doctors_result)): ?>
<option value="<?php echo $doctor['id']; ?>" data-department="<?php echo $doctor['department_id']; ?>">
<?php echo htmlspecialchars($doctor['name']); ?> - <?php echo htmlspecialchars($doctor['department_name']); ?>
</option>
<?php endwhile; ?>
</select>
</div>
<div class="form-group">
<label class="form-label">科室 *</label>
<select name="department_id" class="form-control" required id="department_select">
<option value="">请选择科室</option>
<?php 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="datetime-local" name="visit_date" class="form-control" required value="<?php echo date('Y-m-d\TH:i'); ?>">
</div>
</div>
<div class="form-group">
<label class="form-label">主诉</label>
<textarea name="chief_complaint" class="form-control" rows="3" placeholder="患者主要症状和就诊原因"></textarea>
</div>
<div class="form-group">
<label class="form-label">现病史</label>
<textarea name="present_illness" class="form-control" rows="4" placeholder="患者病情发展过程、症状变化等"></textarea>
</div>
<div class="form-group">
<label class="form-label">体格检查</label>
<textarea name="physical_examination" class="form-control" rows="4" placeholder="体温、血压、心率等生命体征及体格检查结果"></textarea>
</div>
<div class="form-group">
<label class="form-label">诊断</label>
<textarea name="diagnosis" class="form-control" rows="3" placeholder="初步诊断或确定诊断"></textarea>
</div>
<div class="form-group">
<label class="form-label">治疗方案</label>
<textarea name="treatment_plan" class="form-control" rows="4" placeholder="治疗计划、用药方案、注意事项等"></textarea>
</div>
<div class="form-group">
<label class="form-label">备注</label>
<textarea name="notes" class="form-control" rows="3" placeholder="其他需要记录的信息"></textarea>
</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>
<script>
function loadDoctorDepartment(doctorId) {
if (doctorId) {
const doctorSelect = document.querySelector('select[name="doctor_id"]');
const selectedOption = doctorSelect.querySelector('option[value="' + doctorId + '"]');
if (selectedOption) {
const departmentId = selectedOption.getAttribute('data-department');
const departmentSelect = document.getElementById('department_select');
departmentSelect.value = departmentId;
}
}
}
</script>
</body>
</html>