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

运行流程

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

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

相关推荐
神奇夜光杯2 分钟前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
Themberfue5 分钟前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
plmm烟酒僧6 分钟前
Windows下QT调用MinGW编译的OpenCV
开发语言·windows·qt·opencv
千天夜14 分钟前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
测试界的酸菜鱼18 分钟前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~22 分钟前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
晨曦_子画27 分钟前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
Black_Friend35 分钟前
关于在VS中使用Qt不同版本报错的问题
开发语言·qt
南宫生1 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
放飞自我的Coder1 小时前
【python ROUGE BLEU jiaba.cut NLP常用的指标计算】
python·自然语言处理·bleu·rouge·jieba分词