Python医院挂号脚本

作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。
会一些的技术:数据分析、算法、SQL、大数据相关、python
欢迎加入社区:码上找工作
作者专栏每日更新:
LeetCode解锁1000题: 打怪升级之旅
python数据分析可视化:企业实战案例
备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级

系统介绍

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

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

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

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。
  • 挂号服务:患者可以选择专科和专科内的医生进行挂号。系统将确认挂号详情。
  • 查询挂号:可以查看所有挂号信息,包括患者名称和他们的医生。

运行流程

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

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

相关推荐

  1. Python医院挂号脚本

    2024-04-29 12:00:11       13 阅读
  2. 医院挂号系统

    2024-04-29 12:00:11       32 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 12:00:11       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 12:00:11       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 12:00:11       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 12:00:11       20 阅读

热门阅读

  1. 蓝桥杯每日一题:空调(差分)

    2024-04-29 12:00:11       13 阅读
  2. 学习 Rust 的第五天:了解程序的基本控制流程

    2024-04-29 12:00:11       10 阅读
  3. 冷热数据分离方案

    2024-04-29 12:00:11       11 阅读
  4. typedef,#define,asserr,exit函数,free函数

    2024-04-29 12:00:11       12 阅读
  5. 探索Vue 3 reactive()原理及其实现步骤

    2024-04-29 12:00:11       12 阅读
  6. vue 的 keep-alive 详解

    2024-04-29 12:00:11       12 阅读
  7. 算法基础一

    2024-04-29 12:00:11       12 阅读
  8. wps用js宏给文档增加用户名密码验证

    2024-04-29 12:00:11       13 阅读
  9. 每天学习一个Linux命令之ncdu

    2024-04-29 12:00:11       13 阅读
  10. 5.1 基于 Docker 安装 Zookeeper

    2024-04-29 12:00:11       9 阅读
  11. css折叠的导航栏

    2024-04-29 12:00:11       12 阅读
  12. 生成WHL或压缩包安装文件,发布到PYPI

    2024-04-29 12:00:11       11 阅读
  13. 在 Web3 方向有哪些工作,需要掌握哪些知识呢?

    2024-04-29 12:00:11       10 阅读
  14. 力扣经典150题第四十八题:合并区间

    2024-04-29 12:00:11       11 阅读