Python医院挂号脚本

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。

会一些的技术:数据分析、算法、SQL、大数据相关、python

欢迎加入社区:码上找工作

作者专栏每日更新:
LeetCode解锁1000题: 打怪升级之旅
python数据分析可视化:企业实战案例

备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级

系统介绍

创建一个简单的医院挂号系统通常涉及患者注册、挂号功能,以及医生的安排。这里我们将使用 Python 来实现一个基本的命令行挂号系统。我们将构建以下功能:

  1. 患者注册:输入患者基本信息,注册后保存患者信息。
  2. 挂号服务:根据患者选择的科室和医生进行挂号。
  3. 查询挂号:查看当前所有的挂号信息。

我们将使用字典来存储患者和医生的数据,以简化数据库操作。

Python 代码实现

以下是医院挂号系统的一个简单实现:

python 复制代码
from typing import Dict, List, Tuple

class HospitalRegistrationSystem:
    def __init__(self):
        # 初始化用于存储病人信息和预约信息的字典,以及按科室分类的医生列表
        self.patients: Dict[int, Dict[str, str]] = {}
        self.appointments: List[Tuple[int, str]] = []
        self.doctors: Dict[str, List[str]] = {
            'Cardiology': ['Dr. Smith', 'Dr. Wesson'],
            'Orthopedics': ['Dr. Clark', 'Dr. Stone'],
            'Pediatrics': ['Dr. Adams', 'Dr. Black']
        }

    def register_patient(self) -> None:
        # 注册病人
        name = input("请输入病人姓名: ").strip()
        age = input("请输入病人年龄: ").strip()
        if not name or not age.isdigit():
            print("输入无效。姓名不能为空且年龄必须为数字。")
            return
        patient_id = len(self.patients) + 1
        self.patients[patient_id] = {'name': name, 'age': age}
        print(f"病人注册成功,病人ID: {patient_id}")

    def book_appointment(self) -> None:
        # 预约挂号
        try:
            patient_id = int(input("请输入您的病人ID: "))
            if patient_id not in self.patients:
                print("病人ID无效。")
                return

            print("可选择的科室有:")
            for specialty in self.doctors:
                print(specialty)
            specialty = input("请选择科室: ").strip()
            if specialty not in self.doctors:
                print("科室选择无效。")
                return

            print("可选择的医生有:")
            for idx, doctor in enumerate(self.doctors[specialty]):
                print(f"{idx + 1}. {doctor}")
            doc_choice = int(input("请选择医生(输入数字): "))
            if 1 <= doc_choice <= len(self.doctors[specialty]):
                doctor = self.doctors[specialty][doc_choice-1]
                self.appointments.append((patient_id, doctor))
                print(f"已成功预约{doctor}医生,病人ID {patient_id}。")
            else:
                print("医生选择无效。")
        except ValueError:
            print("输入错误,请输入有效的数字。")

    def view_appointments(self) -> None:
        # 查看预约信息
        if not self.appointments:
            print("当前没有预约。")
        for appointment in self.appointments:
            patient_id, doctor = appointment
            patient_name = self.patients[patient_id]['name']
            print(f"病人 {patient_name} (ID: {patient_id}) 预约了 {doctor} 医生。")

# 主程序交互循环
if __name__ == "__main__":
    system = HospitalRegistrationSystem()
    while True:
        print("\n1. 注册病人")
        print("2. 预约挂号")
        print("3. 查看预约")
        print("4. 退出系统")
        choice = input("请输入选项: ")
        if choice == '1':
            system.register_patient()
        elif choice == '2':
            system.book_appointment()
        elif choice == '3':
            system.view_appointments()
        elif choice == '4':
            print("退出系统。")
            break
        else:
            print("无效选择,请重新输入。")

功能说明

  • 患者注册:患者可以通过提供姓名和年龄来注册。每位患者被赋予一个唯一的 ID。
  • 挂号服务:患者可以选择专科和专科内的医生进行挂号。系统将确认挂号详情。
  • 查询挂号:可以查看所有挂号信息,包括患者名称和他们的医生。

运行流程

用户将通过命令行界面与系统交互,选择注册、挂号或查看挂号信息。这个系统简单而实用,适合作为学习项目进一步开发。

这个系统当前是非常基础的版本,实际应用中需要处理更多细节,如挂号时间、取消挂号、医生的排班表等。此外,为了保证数据持久性,应当将数据存储于数据库而非内存字典。

相关推荐
databook3 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar4 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780515 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_5 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机11 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机12 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i13 小时前
drf初步梳理
python·django
每日AI新事件13 小时前
python的异步函数
python