基于Python的医院信息管理系统

作者主页:IT研究室✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

一、开发环境

  • 开发语言:Python
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:Django
  • 前端:Vue

二、系统功能模块

  • 角色:患者、医生、管理员
  • 功能:
    患者
    出诊医生信息、医院公告、挂号信息管理、取消挂号管理、问诊记录管理、处方开具管理;
    医生
    出诊医生信息、挂号信息管理、取消挂号管理、问诊记录管理、药品信息管理、处方开具管理;
    管理员
    患者管理、科室管理、医生管理、出诊医生管理、挂号信息管理、取消挂号管理、问诊记录管理、药品信息管理、处方开具管理、公告管理。

三、系统界面展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、部分代码设计

# 挂号列表
def orderList(request):
  user_id = request.POST.get('user_id')
  department_id = request.POST.get('department_id')
  doctor_id = request.POST.get('doctor_id')
  status = request.POST.get('status')
  list = order.objects.all()
  if user_id:
    list = list.filter(patient_id=user_id)
  if department_id:
    list = list.filter(department_id=department_id)
  if doctor_id:
    list = list.filter(doctor_id=doctor_id)
  if status:
    list = list.filter(status=status)
  arr = []
  print('list:', list)
  for item in list:
    temp = {}
    temp['id'] = item.id
    temp['patient_id'] = item.patient_id
    temp['patient_name'] = user_patient.objects.filter(id=item.patient_id).first().name 
    temp['department_id'] = item.department_id
    temp['department_name'] = department.objects.filter(id=item.department_id).first().name 
    temp['readme'] = item.readme
    temp['registration_fee'] = item.registration_fee
    temp['doctor_id'] = item.doctor_id
    temp['medicine_list'] = item.medicine_list
    checkDoctor = user_doctor.objects.filter(id=item.doctor_id).first()
    if checkDoctor:
      temp['doctor_name'] = checkDoctor.name
    else:
      temp['doctor_name'] = ''
    temp['order_advice'] = item.order_advice
    temp['total_cost'] = item.total_cost
    temp['status'] = item.status
    temp['time'] = item.time
    arr.append(temp)
  return Action.success(arr)

@api_view(['GET',"POST"])
# 添加就诊
def orderAdd(request):
  # 获取参数
  user_id = request.POST.get('user_id')
  department_id = request.POST.get('department_id')
  readme = request.POST.get('readme')
  # 查询
  checkOrder = order.objects.filter(patient_id=user_id,department_id=department_id,status=1).first()
  if checkOrder:
    return Action.fail("请勿重复挂号")
  checkDepartment = department.objects.filter(id=department_id).first()
  # 若没注册,添加入数据库
  newOrder = order(patient_id=user_id, department_id=department_id, readme=readme, registration_fee=checkDepartment.registration_fee,status=1)
  newOrder.save()
  return Action.success()

@api_view(['GET',"POST"])
# 就诊详情
def orderInfo(request):
  # 获取参数
  id = request.POST.get('id')
  # 查询
  checkOrder = order.objects.filter(id=id).first()
  print('checkOrder:', checkOrder)
  temp = {}
  temp['id'] = checkOrder.id
  temp['patient_id'] = checkOrder.patient_id
  temp['patient_name'] = user_patient.objects.filter(id=checkOrder.patient_id).first().name 
  temp['department_id'] = checkOrder.department_id
  temp['department_name'] = department.objects.filter(id=checkOrder.department_id).first().name
  temp['readme'] = checkOrder.readme
  temp['registration_fee'] = checkOrder.registration_fee
  temp['doctor_id'] = checkOrder.doctor_id
  temp['order_advice'] = checkOrder.order_advice
  temp['total_cost'] = checkOrder.total_cost
  temp['status'] = checkOrder.status
  temp['time'] = checkOrder.time
  return Action.success(temp)

@api_view(['GET',"POST"])
# 完成就诊
def orderFinish(request):
  # 获取参数
  id = request.POST.get('id')
  order_advice = request.POST.get('order_advice')
  medicine_list = request.POST.get('medicine_list')
  doctor_id = request.POST.get('doctor_id')
  medicine_list_arr = medicine_list.split(',')
  # 查询
  checkOrder = order.objects.filter(id=id).first()
  if checkOrder.status != 1:
    return Action.fail("该病人已处理")
  cost_sum = int(checkOrder.registration_fee)
  for de in medicine_list_arr:
    cost_sum = cost_sum + int(medicine.objects.filter(id=de).first().price)
  checkOrder.doctor_id = doctor_id
  checkOrder.order_advice = order_advice
  checkOrder.medicine_list = medicine_list
  checkOrder.status = 2
  checkOrder.total_cost = cost_sum
  checkOrder.save()
  return Action.success()
# 添加科室
def departmentAdd(request):
    # 获取参数
    name = request.POST.get('name')
    registration_fee = request.POST.get('registration_fee')
    doctor_num = request.POST.get('doctor_num')
    # 查询
    sameIdCardUserList = department.objects.filter(name=name)
    if sameIdCardUserList.exists() == True:
        # 如果已经被注册,则直接返回错误消息
        return Action.fail("已存在")

    # 若没注册,添加入数据库
    new_department = department(
        name=name, registration_fee=registration_fee, doctor_num=doctor_num)
    new_department.save()
    # 添加成功
    return Action.success()


@api_view(['GET', "POST"])
# 删除科室
def departmentDelete(request):
    # 获取参数
    id = request.POST.get('id')
    # 查询
    sameIdCardUserList = department.objects.filter(id=int(id))
    if not sameIdCardUserList:
        return Action.fail("没有此药品")

    new_department = department(id=id)
    new_department.delete()
    # 删除成功
    return Action.success()
# 医生列表
def doctorList(request):
  list = user_doctor.objects.all()
  arr = []
  for item in list:
    temp = {}
    temp['id'] = item.id
    temp['name'] = item.name
    temp['id_card'] = item.id_card
    temp['department_id'] = item.department_id
    temp['department_name'] = department.objects.filter(id=item.department_id).first().name
    arr.append(temp)
  # 登陆成功
  return Action.success(arr)

@api_view(['GET',"POST"])
# 添加医生
def doctorAdd(request):
  # 获取参数
  name = request.POST.get('name')
  id_card = request.POST.get('id_card')
  department_id = request.POST.get('department_id')
  password = request.POST.get('password')
  # 查询身份证号是否已被注册
  sameIdCardUserList = user_doctor.objects.filter(id_card=id_card)
  if sameIdCardUserList.exists() == True :
    # 如果已经被注册,则直接返回错误消息
    return Action.fail("身份重复")
  # 若没注册,添加入数据库
  doctor = user_doctor(name=name, id_card=id_card, department_id=department_id, password=password)
  doctor.save()
  # 添加成功
  return Action.success()

@api_view(['GET',"POST"])
#修改密码
def setdpassword(request):
  # 获取参数
  id=request.POST.get('id')
  oldpassword=request.POST.get('password')
  newpassword = request.POST.get('newpassword')
  repassword = request.POST.get('apassword')
  result = user_doctor.objects.filter(id=int(id)).first()
  password = result.password
  if password == oldpassword and newpassword == repassword and newpassword and repassword:
    user_doctor.objects.filter(id=int(id)).update(password = newpassword)
    password=newpassword
  else:
    return Action.fail("新密码与确认新密码不一致!")
  return Action.success()

@api_view(['GET', "POST"])
# 删除医生
def doctorDelete(request):

    # 获取参数
    id = request.POST.get('id')
    sameIdCardUserList = user_doctor.objects.filter(id=int(id))
    if not sameIdCardUserList:
        return Action.fail("没有此医生")

    doctor = user_doctor(id=id)
    doctor.delete()

    # 删除成功
    return Action.success()

五、论文参考

在这里插入图片描述

六、系统视频

基于Python的医院信息管理系统

结语

大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

  • 9
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于Python的医疗知识图谱问答系统 pythondjango;mysql; 系统模块总体设计 在医疗知识图谱问答系统中,主要涉及的模块包括:数据抓取模块、数据存储模块、数据处理模块、问答模块、可视化模块。其中,数据抓取模块负责从网络上抓取相关的医疗知识,将数据存储到数据库中。数据存储模块负责将从网络上抓取到的数据存储到数据库中。数据处理模块负责对存储在数据库中的数据进行预处理,以提高问答模块的查询效率。问答模块是整个系统的核心,它负责对用户提出的问题进行处理,根据问题找到相应的答案并将答案返回给用户。可视化模块负责将问答模块返回的答案进行可视化展示,使用户更加直观地了解查询结果。 系统结构设计 主要包括以下几个方面,如图: (1)数据采集和预处理:系统采用爬虫技术实现对医疗知识数据的采集,采集下来的数据通过数据预处理模块进行处理,包括数据清洗、数据去重、数据分类等。 (2)知识存储和管理:系统采用图数据库Neo4j进行知识图谱的存储和管理,通过使用Neo4j的图形化管理工具,管理员可以方便地对图谱数据进行管理和维护。 (3)问答模块:问答模块是整个系统的核心,它负责对用户提出的问题进行处理,根据问题找到相应的答案并将答案返回给用户。问答模块采用自然语言处理技术,对用户输入的自然语言进行处理,将其转化为计算机可以理解的形式,然后通过图谱查询技术实现查询匹配,找到相应的答案。 (4)可视化展示:通过可视化模块将问答模块返回的答案进行可视化展示,包括文本和图形展示两种方式,提供更加直观和友好的用户体验。
门诊信息管理系统是一个用来管理医院门诊信息的系统,使用Python语言可以开发这样的系统。你可以使用Python的各种库和框架来处理系统的各个方面,如用户界面、数据库连接、数据处理等。 以下是一个简单的Python代码示例,用于演示门诊信息管理系统的基本功能: ```python import sqlite3 # 连接到数据库 conn = sqlite3.connect('clinic.db') cursor = conn.cursor() # 创建患者表 cursor.execute(''' CREATE TABLE IF NOT EXISTS patients ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER, gender TEXT, address TEXT, phone TEXT ) ''') conn.commit() # 添加患者信息 def add_patient(name, age, gender, address, phone): cursor.execute(''' INSERT INTO patients (name, age, gender, address, phone) VALUES (?, ?, ?, ?, ?) ''', (name, age, gender, address, phone)) conn.commit() print("患者信息添加成功!") # 查询患者信息 def search_patient(name): cursor.execute(''' SELECT * FROM patients WHERE name=? ''', (name,)) patient = cursor.fetchone() if patient: print("姓名:", patient[1]) print("年龄:", patient[2]) print("性别:", patient[3]) print("地址:", patient[4]) print("电话:", patient[5]) else: print("未找到患者信息!") # 更新患者信息 def update_patient(name, age, gender, address, phone): cursor.execute(''' UPDATE patients SET age=?, gender=?, address=?, phone=? WHERE name=? ''', (age, gender, address, phone, name)) conn.commit() print("患者信息更新成功!") # 删除患者信息 def delete_patient(name): cursor.execute(''' DELETE FROM patients WHERE name=? ''', (name,)) conn.commit() print("患者信息删除成功!") # 关闭数据库连接 def close_connection(): cursor.close() conn.close() # 使用示例 add_patient("张三", 30, "男", "北京市", "1234567890") search_patient("张三") update_patient("张三", 35, "男", "上海市", "0987654321") search_patient("张三") delete_patient("张三") search_patient("张三") close_connection() ``` 以上示例代码演示了如何使用Python和SQLite数据库创建、添加、查询、更新和删除患者信息。你可以根据自己的需求进一步扩展和优化代码,实现更全面的门诊信息管理系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT研究室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值