diff --git a/modules/medical_records/add.php b/modules/medical_records/add.php new file mode 100644 index 0000000..3ff30fc --- /dev/null +++ b/modules/medical_records/add.php @@ -0,0 +1,214 @@ + + + + + + 新建病历 - 电子病历系统 + + + + +
+

+ + + + 新建病历 +

+
+ + + +
+ 病历创建成功!
'; + echo ''; + } else { + echo '
创建失败:' . mysqli_error($connID) . '
'; + } + } + + $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); + ?> + +
+
+

+ + + + 新建病历记录 +

+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + + + + + 取消 + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/modules/medical_records/complete.php b/modules/medical_records/complete.php new file mode 100644 index 0000000..afd61c0 --- /dev/null +++ b/modules/medical_records/complete.php @@ -0,0 +1,306 @@ + + + + + + 完成诊治 - 电子病历系统 + + + + +
+

+ + + + 完成诊治 +

+
+ + + +
+ 无效的病历ID
'; + exit; + } + + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $action = $_POST['action'] ?? ''; + + if ($action == 'complete') { + $sql = "UPDATE medical_records SET status = '已完成' WHERE id = $record_id AND status = '就诊中'"; + + if (mysqli_query($connID, $sql)) { + if (mysqli_affected_rows($connID) > 0) { + echo '
诊治已完成,病历状态已更新!
'; + echo ''; + } else { + echo '
操作失败,病历状态可能已变更
'; + } + } else { + echo '
操作失败:' . mysqli_error($connID) . '
'; + } + } + } + + $sql = "SELECT mr.*, p.name as patient_name, p.gender as patient_gender, + d.name as doctor_name, dept.name as department_name + FROM medical_records mr + JOIN patients p ON mr.patient_id = p.id + JOIN doctors d ON mr.doctor_id = d.id + JOIN departments dept ON mr.department_id = dept.id + WHERE mr.id = $record_id"; + $result = mysqli_query($connID, $sql); + + if (mysqli_num_rows($result) == 0) { + echo '
病历不存在
'; + exit; + } + + $record = mysqli_fetch_assoc($result); + + if ($record['status'] != '就诊中') { + echo '
该病历状态为:' . $record['status'] . ',无法完成诊治
'; + echo '
'; + echo '查看病历详情'; + echo '
'; + exit; + } + + // 检查必要信息是否完整 + $warnings = []; + if (empty($record['chief_complaint'])) $warnings[] = '患者主诉'; + if (empty($record['diagnosis'])) $warnings[] = '诊断结果'; + if (empty($record['treatment_plan'])) $warnings[] = '治疗方案'; + + // 检查是否有处方 + $prescription_count = mysqli_fetch_assoc(mysqli_query($connID, "SELECT COUNT(*) as count FROM prescriptions WHERE record_id = $record_id"))['count']; + ?> + +
+
+

+ + + + 完成诊治 - MR +

+

+ 将病历状态从 "就诊中" 更改为 "已完成" +

+
+
+
+
+
+

+ + + + 病历信息 +

+
+
+
+
+ 患者: + +
+
+ 医生: + +
+
+ 科室: + +
+
+ 就诊时间: + +
+
+ 当前状态: + 就诊中 +
+
+
+
+ +
+
+

+ + + + 完整性检查 +

+
+
+
+
+ 患者主诉 + + ✓ 已填写 + + ✗ 未填写 + +
+
+ 现病史 + + ✓ 已填写 + + ○ 可选 + +
+
+ 体格检查 + + ✓ 已填写 + + ○ 可选 + +
+
+ 诊断结果 + + ✓ 已填写 + + ✗ 未填写 + +
+
+ 治疗方案 + + ✓ 已填写 + + ✗ 未填写 + +
+
+ 处方信息 + 0): ?> + ✓ 已开具 (项) + + ○ 未开具 + +
+
+
+
+
+ + +
+

+ + + + 注意事项 +

+

+ 以下关键信息尚未填写: +
建议先完善这些信息后再完成诊治。 +

+
+ + +
+

+ + + + 完成诊治说明 +

+
    +
  • 完成诊治后,病历状态将变更为"已完成"
  • +
  • 已完成的病历将无法再次编辑
  • +
  • 患者可以查看完整的诊治记录和处方信息
  • +
  • 请确保所有诊治信息准确无误
  • +
+
+ +
+ +
+ + +
+ + + + + + 完善病历信息 + + + + + + + + 查看详情 + + + + + + + 取消 + +
+
+
+ + + \ No newline at end of file diff --git a/modules/medical_records/edit.php b/modules/medical_records/edit.php new file mode 100644 index 0000000..29d1bad --- /dev/null +++ b/modules/medical_records/edit.php @@ -0,0 +1,220 @@ + + + + + + 编辑病历 - 电子病历系统 + + + + +
+

+ + + + 编辑病历 +

+
+ + + +
+ 无效的病历ID
'; + exit; + } + + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $chief_complaint = $_POST['chief_complaint'] ? mysqli_real_escape_string($connID, $_POST['chief_complaint']) : NULL; + $present_illness = $_POST['present_illness'] ? mysqli_real_escape_string($connID, $_POST['present_illness']) : NULL; + $physical_examination = $_POST['physical_examination'] ? mysqli_real_escape_string($connID, $_POST['physical_examination']) : NULL; + $diagnosis = $_POST['diagnosis'] ? mysqli_real_escape_string($connID, $_POST['diagnosis']) : NULL; + $treatment_plan = $_POST['treatment_plan'] ? mysqli_real_escape_string($connID, $_POST['treatment_plan']) : NULL; + $notes = $_POST['notes'] ? mysqli_real_escape_string($connID, $_POST['notes']) : NULL; + + $sql = "UPDATE medical_records SET + chief_complaint = " . ($chief_complaint ? "'$chief_complaint'" : "NULL") . ", + present_illness = " . ($present_illness ? "'$present_illness'" : "NULL") . ", + physical_examination = " . ($physical_examination ? "'$physical_examination'" : "NULL") . ", + diagnosis = " . ($diagnosis ? "'$diagnosis'" : "NULL") . ", + treatment_plan = " . ($treatment_plan ? "'$treatment_plan'" : "NULL") . ", + notes = " . ($notes ? "'$notes'" : "NULL") . " + WHERE id = $record_id"; + + if (mysqli_query($connID, $sql)) { + echo '
病历信息更新成功!
'; + echo ''; + } else { + echo '
更新失败:' . mysqli_error($connID) . '
'; + } + } + + $sql = "SELECT mr.*, p.name as patient_name, d.name as doctor_name, dept.name as department_name + FROM medical_records mr + JOIN patients p ON mr.patient_id = p.id + JOIN doctors d ON mr.doctor_id = d.id + JOIN departments dept ON mr.department_id = dept.id + WHERE mr.id = $record_id"; + $result = mysqli_query($connID, $sql); + + if (mysqli_num_rows($result) == 0) { + echo '
病历不存在
'; + exit; + } + + $record = mysqli_fetch_assoc($result); + + if ($record['status'] == '已完成') { + echo '
已完成的病历无法编辑
'; + exit; + } + + $status_class = ''; + switch($record['status']) { + case '待诊': $status_class = 'status-pending'; break; + case '就诊中': $status_class = 'status-processing'; break; + } + ?> + +
+
+

+ + + + 编辑病历 - MR +

+
+ + 患者: | + 医生: | + 科室: + + + + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ + +
+ +
+ + +
+ +
+

编辑提示

+
    +
  • 请根据患者实际情况如实填写各项内容
  • +
  • 诊断应基于充分的检查和分析
  • +
  • 治疗方案要详细明确,便于后续执行
  • +
  • 重要信息请在备注中详细说明
  • +
+
+ +
+ + + + + + 查看详情 + + + + + + 取消 + +
+
+
+
+ +
+ 创建时间: | + 就诊时间: +
+ + + \ No newline at end of file diff --git a/modules/medical_records/list.php b/modules/medical_records/list.php new file mode 100644 index 0000000..de43c7c --- /dev/null +++ b/modules/medical_records/list.php @@ -0,0 +1,200 @@ + + + + + + 病历管理 - 电子病历系统 + + + + +
+

+ + + + 病历管理 +

+
+ + + +
+
+
+

+ + + + 病历列表 +

+
+ + + + + 新建病历 + +
+
+
+
+
+ + + + + 清除 + +
+
+ +
+ + + + + + + + + + + + + + + + 0): + while($record = mysqli_fetch_assoc($result)): + $status_class = ''; + switch($record['status']) { + case '待诊': $status_class = 'status-pending'; break; + case '就诊中': $status_class = 'status-processing'; break; + case '已完成': $status_class = 'status-completed'; break; + } + ?> + + + + + + + + + + + + + + + + + +
病历号患者姓名医生科室就诊时间主诉诊断状态操作
MR + + + + + + + + + 查看 + + 编辑 + + + 开始诊治 + + + 完成诊治 + +
+ + 未找到匹配的病历记录 + + 暂无病历数据 + +
+
+
+
+
+ + \ No newline at end of file diff --git a/modules/medical_records/start.php b/modules/medical_records/start.php new file mode 100644 index 0000000..b5f4956 --- /dev/null +++ b/modules/medical_records/start.php @@ -0,0 +1,275 @@ + + + + + + 开始诊治 - 电子病历系统 + + + + +
+

+ + + + 开始诊治 +

+
+ + + +
+ 无效的病历ID
'; + exit; + } + + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $action = $_POST['action'] ?? ''; + + if ($action == 'start') { + $chief_complaint = $_POST['chief_complaint'] ? mysqli_real_escape_string($connID, $_POST['chief_complaint']) : NULL; + $notes = $_POST['notes'] ? mysqli_real_escape_string($connID, $_POST['notes']) : NULL; + + $sql = "UPDATE medical_records SET + status = '就诊中', + chief_complaint = " . ($chief_complaint ? "'$chief_complaint'" : "chief_complaint") . ", + notes = " . ($notes ? "'$notes'" : "notes") . " + WHERE id = $record_id AND status = '待诊'"; + + if (mysqli_query($connID, $sql)) { + if (mysqli_affected_rows($connID) > 0) { + echo '
已开始诊治,病历状态已更新!
'; + echo ''; + } else { + echo '
操作失败,病历可能已被其他医生处理
'; + } + } else { + echo '
操作失败:' . mysqli_error($connID) . '
'; + } + } + } + + $sql = "SELECT mr.*, p.name as patient_name, p.gender as patient_gender, p.birth_date, p.phone as patient_phone, + d.name as doctor_name, d.specialty, dept.name as department_name + FROM medical_records mr + JOIN patients p ON mr.patient_id = p.id + JOIN doctors d ON mr.doctor_id = d.id + JOIN departments dept ON mr.department_id = dept.id + WHERE mr.id = $record_id"; + $result = mysqli_query($connID, $sql); + + if (mysqli_num_rows($result) == 0) { + echo '
病历不存在
'; + exit; + } + + $record = mysqli_fetch_assoc($result); + + if ($record['status'] != '待诊') { + echo '
该病历状态为:' . $record['status'] . ',无法开始诊治
'; + echo '
'; + echo '查看病历详情'; + echo '
'; + exit; + } + + $age = ''; + if($record['birth_date']) { + $today = new DateTime(); + $birth = new DateTime($record['birth_date']); + $age = $today->diff($birth)->y . '岁'; + } + ?> + +
+
+

+ + + + 开始诊治 - MR +

+

+ 将病历状态从 "待诊" 更改为 "就诊中" +

+
+
+
+
+
+

+ + + + 患者信息 +

+
+
+
+
+ 姓名: + +
+
+ 性别: + +
+
+ 年龄: + +
+
+ 联系电话: + +
+
+
+
+ +
+
+

+ + + + 诊治信息 +

+
+
+
+
+ 主治医生: + +
+
+ 专业: + +
+
+ 科室: + +
+
+ 就诊时间: + +
+
+ 当前状态: + 待诊 +
+
+
+
+
+ +
+ + +
+
+

+ + + + 初步记录(可选) +

+
+
+
+ + + 可以先记录患者的主要症状,后续可在编辑页面完善 +
+ +
+ + + 记录诊治开始时需要注意的事项 +
+
+
+ +
+

操作说明

+
    +
  • 点击"开始诊治"后,病历状态将从"待诊"变更为"就诊中"
  • +
  • 状态变更后可以进入详细的病历编辑和诊断流程
  • +
  • 初步信息可选填,主要诊治内容请在后续页面完善
  • +
  • 开始诊治后可以创建处方和记录详细诊断信息
  • +
+
+ +
+ + + + + + 查看详情 + + + + + + 取消 + +
+
+
+
+ + + \ No newline at end of file diff --git a/modules/medical_records/view.php b/modules/medical_records/view.php new file mode 100644 index 0000000..867123f --- /dev/null +++ b/modules/medical_records/view.php @@ -0,0 +1,335 @@ + + + + + + 病历详情 - 电子病历系统 + + + + +
+

+ + + + 病历详情 +

+
+ + + +
+ 无效的病历ID
'; + exit; + } + + $sql = "SELECT mr.*, p.name as patient_name, p.gender as patient_gender, p.birth_date, p.phone as patient_phone, + d.name as doctor_name, d.specialty, dept.name as department_name + FROM medical_records mr + JOIN patients p ON mr.patient_id = p.id + JOIN doctors d ON mr.doctor_id = d.id + JOIN departments dept ON mr.department_id = dept.id + WHERE mr.id = $record_id"; + + $result = mysqli_query($connID, $sql); + + if (mysqli_num_rows($result) == 0) { + echo '
病历不存在
'; + exit; + } + + $record = mysqli_fetch_assoc($result); + + $status_class = ''; + switch($record['status']) { + case '待诊': $status_class = 'status-pending'; break; + case '就诊中': $status_class = 'status-processing'; break; + case '已完成': $status_class = 'status-completed'; break; + } + + $age = ''; + if($record['birth_date']) { + $today = new DateTime(); + $birth = new DateTime($record['birth_date']); + $age = $today->diff($birth)->y . '岁'; + } + ?> + +
+
+
+

+ + + + 病历号:MR +

+
+ + + +
+
+
+ + + + + + 编辑病历 + + + + + + + + + 开始诊治 + + + + + + + + + 完成诊治 + + + + + + + + 查看患者 + +
+
+
+ +
+
+
+

+ + + + 患者信息 +

+
+
+
+
+ 姓名: + +
+
+ 性别: + +
+
+ 年龄: + +
+
+ 联系电话: + +
+
+
+
+ +
+
+

+ + + + 医生信息 +

+
+
+
+
+ 医生: + +
+
+ 专业: + +
+
+ 科室: + +
+
+ 就诊时间: + +
+
+
+
+
+ +
+
+

+ + + + 病历内容 +

+
+
+
+
+

主诉

+
+ 未填写'; ?> +
+ +

现病史

+
+ 未填写'; ?> +
+ +

体格检查

+
+ 未填写'; ?> +
+
+ +
+

诊断

+
+ 未填写'; ?> +
+ +

治疗方案

+
+ 未填写'; ?> +
+ + +

备注

+
+ +
+ +
+
+
+
+ + 0): + ?> +
+
+

+ + + + 处方明细 +

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
药品名称规格剂量用法频次疗程用药说明
+
+
+
+ + +
+ + + + + 返回病历列表 + +
+ +
+ 创建时间: +
+ + + \ No newline at end of file