当前位置:首页 > PHP

PHP实现医院

2026-02-14 18:39:23PHP

PHP实现医院管理系统的基本功能

医院管理系统需要涵盖多个模块,包括患者管理、医生排班、药品库存、病历记录等。以下是一个基本的PHP实现框架:

数据库设计 创建MySQL数据库表结构,例如:

CREATE TABLE patients (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    gender VARCHAR(10),
    age INT,
    contact VARCHAR(20),
    address TEXT
);

CREATE TABLE doctors (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    specialization VARCHAR(100),
    contact VARCHAR(20)
);

患者管理模块

// 添加患者
function addPatient($name, $gender, $age, $contact, $address) {
    global $conn;
    $sql = "INSERT INTO patients (name, gender, age, contact, address) 
            VALUES ('$name', '$gender', $age, '$contact', '$address')";
    return mysqli_query($conn, $sql);
}

医生排班模块

PHP实现医院

// 创建排班表
CREATE TABLE schedules (
    id INT AUTO_INCREMENT PRIMARY KEY,
    doctor_id INT,
    day VARCHAR(10),
    start_time TIME,
    end_time TIME,
    FOREIGN KEY (doctor_id) REFERENCES doctors(id)
);

// 添加排班
function addSchedule($doctor_id, $day, $start_time, $end_time) {
    global $conn;
    $sql = "INSERT INTO schedules (doctor_id, day, start_time, end_time)
            VALUES ($doctor_id, '$day', '$start_time', '$end_time')";
    return mysqli_query($conn, $sql);
}

安全性和验证

输入验证

function validatePatientData($data) {
    $errors = [];
    if(empty($data['name'])) $errors[] = "姓名不能为空";
    if(!in_array($data['gender'], ['男','女'])) $errors[] = "性别无效";
    if(!is_numeric($data['age']) || $data['age'] < 0) $errors[] = "年龄无效";
    return $errors;
}

防止SQL注入

PHP实现医院

function safeQuery($conn, $sql, $params) {
    $stmt = $conn->prepare($sql);
    $types = str_repeat('s', count($params));
    $stmt->bind_param($types, ...$params);
    $stmt->execute();
    return $stmt;
}

用户界面设计

登录系统

// 用户表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) UNIQUE,
    password VARCHAR(255),
    role ENUM('admin','doctor','staff')
);

// 登录验证
function authenticate($username, $password) {
    global $conn;
    $sql = "SELECT id, username, password, role FROM users WHERE username = ?";
    $stmt = safeQuery($conn, $sql, [$username]);
    $result = $stmt->get_result();
    if($row = $result->fetch_assoc()) {
        if(password_verify($password, $row['password'])) {
            return $row;
        }
    }
    return false;
}

报表生成功能

就诊统计

// 就诊记录表
CREATE TABLE appointments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    patient_id INT,
    doctor_id INT,
    date DATE,
    diagnosis TEXT,
    FOREIGN KEY (patient_id) REFERENCES patients(id),
    FOREIGN KEY (doctor_id) REFERENCES doctors(id)
);

// 生成月度报告
function generateMonthlyReport($month, $year) {
    global $conn;
    $start_date = "$year-$month-01";
    $end_date = "$year-$month-31";

    $sql = "SELECT d.name as doctor_name, COUNT(a.id) as appointment_count 
            FROM appointments a
            JOIN doctors d ON a.doctor_id = d.id
            WHERE a.date BETWEEN '$start_date' AND '$end_date'
            GROUP BY a.doctor_id";

    $result = mysqli_query($conn, $sql);
    $report = [];
    while($row = mysqli_fetch_assoc($result)) {
        $report[] = $row;
    }
    return $report;
}

系统集成与API

RESTful API端点

// 获取患者信息API
$app->get('/api/patients/{id}', function ($request, $response, $args) {
    $id = $args['id'];
    $sql = "SELECT * FROM patients WHERE id = ?";
    $stmt = safeQuery($this->db, $sql, [$id]);
    $patient = $stmt->get_result()->fetch_assoc();
    return $response->withJson($patient);
});

// 创建预约API
$app->post('/api/appointments', function ($request, $response) {
    $data = $request->getParsedBody();
    $sql = "INSERT INTO appointments (patient_id, doctor_id, date, diagnosis) 
            VALUES (?, ?, ?, ?)";
    $stmt = safeQuery($this->db, $sql, [
        $data['patient_id'],
        $data['doctor_id'],
        $data['date'],
        $data['diagnosis']
    ]);
    return $response->withJson(['status' => 'success']);
});

这个实现框架涵盖了医院管理系统的基本功能,可以根据实际需求进行扩展和完善。系统应采用MVC架构,分离业务逻辑和表现层,确保代码的可维护性和安全性。

标签: 医院PHP
分享给朋友:

相关文章

vue实现搜索附近医院

vue实现搜索附近医院

实现思路 使用Vue结合高德地图API或百度地图API实现附近医院搜索功能。核心步骤包括获取用户位置、调用地图API搜索附近医院、展示搜索结果。 获取用户位置 通过浏览器Geolocation A…

PHP实现图文聊天

PHP实现图文聊天

PHP实现图文聊天的方法 数据库设计 创建数据库表存储聊天消息,包含字段如消息ID、发送者ID、接收者ID、消息内容、消息类型(文本/图片)、发送时间等。使用MySQL或其他数据库管理系统。 CR…

PHP中实现重定向

PHP中实现重定向

PHP重定向的实现方法 在PHP中,重定向是通过发送HTTP头信息来实现的。以下是几种常见的重定向方法: 使用header()函数 header("Location: https://exampl…

PHP接口防重推荐实现

PHP接口防重推荐实现

防重实现方法 使用唯一请求标识符(UUID或业务ID)作为防重依据,客户端每次请求生成唯一标识,服务端校验该标识是否已处理过。适合短时间内的重复请求拦截。 // 客户端生成唯一标识 $reques…

域名转短域名PHP实现

域名转短域名PHP实现

短域名服务的基本原理 短域名服务通过将长URL映射到更短的唯一字符串实现跳转。核心步骤包括生成短码、存储原始URL与短码的对应关系、通过短码重定向到原始URL。 生成短码的常见方法 Base62编…

PHP实现excel

PHP实现excel

PHP 实现 Excel 操作 读取 Excel 文件 使用 PHP 读取 Excel 文件可以通过 PhpSpreadsheet 库实现。安装该库可以通过 Composer: composer…