作者介绍:10年大厂数据\经营分析经验,现任大厂数据部门负责人。
会一些的技术:数据分析、算法、SQL、大数据相关、python
欢迎加入社区:码上找工作
作者专栏每日更新:
LeetCode解锁1000题: 打怪升级之旅
python数据分析可视化:企业实战案例备注说明:方便大家阅读,统一使用python,带必要注释,公众号 数据分析螺丝钉 一起打怪升级
系统介绍
创建一个简单的医院挂号系统通常涉及患者注册、挂号功能,以及医生的安排。这里我们将使用 Python 来实现一个基本的命令行挂号系统。我们将构建以下功能:
- 患者注册:输入患者基本信息,注册后保存患者信息。
- 挂号服务:根据患者选择的科室和医生进行挂号。
- 查询挂号:查看当前所有的挂号信息。
我们将使用字典来存储患者和医生的数据,以简化数据库操作。
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。
- 挂号服务:患者可以选择专科和专科内的医生进行挂号。系统将确认挂号详情。
- 查询挂号:可以查看所有挂号信息,包括患者名称和他们的医生。
运行流程
用户将通过命令行界面与系统交互,选择注册、挂号或查看挂号信息。这个系统简单而实用,适合作为学习项目进一步开发。
这个系统当前是非常基础的版本,实际应用中需要处理更多细节,如挂号时间、取消挂号、医生的排班表等。此外,为了保证数据持久性,应当将数据存储于数据库而非内存字典。