医院信息管理系统(Python与MySQL数据库的连接与相关增删改查操作)zjucxl

医院信息管理是一项琐碎、复杂而又十分细致的工作,这关系到医院体系能否运行起来这一关乎国民健康水平的重大问题。我们只有利用好了医院中每个医生、护士的各项资源,才能使得医院系统能够有序而条理的进行,更好的安排有限的医生和护士资源,安排患者就诊。同时,在设计医院信息管理系统的同时也兼顾了药品的管理,使得我们在安排各项工作的时候能够更加的清晰明了,其可以与药房管理系统和挂号管理系统相连接,更好的实现医院的管理功能

2.数据输入功能

2>医生实体。包括医生编号,医生姓名,职务,性别,年龄…

3>病房实体。包括房间号,房间地址…

4>患者实体,包括患者编号,患者名,性别,年龄…

5>护士实体。包括护士编号,护士姓名,性别,年龄…

6>药品实体。包括药品编号,药品名,供应商,库存,价格…

7>病房从属科室关系。

8>科室下属医生关系。

9>患者的主治医生关系。包括疾病…

12>患者使用药品关系。包括数量…

根据需求分析结构,构建E-R图,如图2-1所示。

3逻辑结构设计

1.医生(医生编号,姓名,性别,年龄,职务,科室编号)

3.病房(病房编号,病房地址,所属部门号)

5.护士(护士编号,姓名,性别,年龄)

6.药品(药品编号,药品名称,药品厂家,药品库存,药品售价)

8.用药记录表(患者编号,药品编号,用药数量)

1.医生表的创建:

createtabledoctor(dnochar(3)primarykey,dnamechar(20),dutychar(20),dsexbit(1),dageintcheck(page>=0andpage<=150),dpnochar(1),foreignkey(dpno)referencesdepartment(dpno));

插入数据:

insertintodoctorvalues("101","李小明","中级医师",1,18,"1");

2.部门表的创建:

createtabledepartment(dpnamechar(10)notnullunique,dpnochar(1)primarykey,dpadrchar(20),dptelchar(20));

insertintodepartmentvalues("内科","1","一号楼514","04512340987");

3.病房表的创建:

createtableroom(rnochar(10)primarykey,radrchar(20)unique,dpnochar(5),foreignkey(dpno)referencesdepartment(dpno));

insertintoroomvalues("1101","一号楼101","1"),;

4.患者表的创建:

createtablepatient(pnochar(20)primarykey,pnamechar(20)notnull,psexbit(1),pageintcheck(page>=0andpage<=150),dnochar(3),rnochar(10),illnesschar(20),startdatedate,predictenddatedate,foreignkey(dno)referencesdoctor(dno),foreignkey(rno)referencesroom(rno));

insertintopatientvalues

("0001","赵一",1,20,"101","1101","左脚踝粉碎性骨折","2018-12-20","2019-01-28");

5.护士表的创建:

createtablenurse(nnochar(2)primarykey,nnamechar(10)unique,nsexbit(1),nageint);

insertintonursevalues("01","黎晓蓓",0,21);

6.药品表的创建:

createtabledrug(dgnochar(4)primarykey,dgnamechar(20),dgprochar(20),dgnumintcheck(dgnum>=0),dgpriceintcheck(dgprice>=0));

insertintodrugvalues("0001","注射用苄星青霉素","哈尔滨制药厂",123,24);

7.护理记录表的创建:

createtablePN(pnochar(20),nnochar(2),contentchar(20),timedatetime,foreignkey(pno)referencespatient(pno),foreignkey(nno)referencesnurse(nno));

insertintoPNvalues("0001","01","康复治疗1","2018-12-2213:12:11");

8.用药记录表的创建:

createtablePD(dgnochar(4),pnochar(4),numintcheck(num>=0),foreignkey(dgno)referencesdrug(dgno),foreignkey(pno)referencespatient(pno),primarykey(dgno,pno));

insertintoPDvalues("0001","0001",1);

数据控制部分采用Python连接MySQL数据库来操纵数据,其主要步骤为:

1.增:

1>增加科室

sql="INSERTINTOdepartment(dpname,dpno,dpadr,dptel)VALUES('%s','%s','%s','%s')"

2>增加医生

sql="INSERTINTOdoctor(dno,dname,duty,dsex,dage,dpno)VALUES('%s','%s','%s',%d,%d,'%s')"

输入医生的编号,姓名,性别,职务,年龄和所属部门编号进行匹配SQL语句。

3>增加病房

sql="INSERTINTOroom(rno,radr,dpno)VALUES('%s','%s','%s')"

输入病房的编号,病房地址和所属部门编号进行匹配SQL语句。

4>增加患者

sql="INSERTINTOpatient(pno,pname,psex,page,dno,rno,illness,startdate,predictenddate)VALUES('%s','%s',%d,%d,'%s','%s','%s','%s','%s')"

5>增加护士

sql="INSERTINTOnurse(nno,nname,nsex,nage)VALUES('%s','%s',%d,%d)"

输入护士的编号,姓名,性别和年龄进行匹配SQL语句。

6>增加药品

sql="INSERTINTOdrug(dgno,dgname,dgpro,dgnum,dgprice)VALUES('%s','%s','%s',%d,%d)"

输入药品的编号,名称,产地,库存和价格进行匹配SQL语句。

7>增加用药记录

sql="INSERTINTOPD(dgno,pno,num)VALUES('%s','%s',%d)"

输入药品的编号,患者的编号和用药数目进行匹配SQL语句。

8>增加护理记录

sql="INSERTINTOPN(pno,nno,content,time)VALUES('%s','%s','%s','%s')"

2.删:因为部门,医生及病房的删除过程比较复杂,故不予考虑。

1>删除患者

输入患者编号,删除其护理记录,用药记录和患者记录。

sql="DELETEFROMPNWHEREpno='%s'"

删除护理记录

sql="DELETEFROMPDWHEREpno='%s'"

删除用药记录

sql="DELETEFROMpatientWHEREpno='%s'"

删除患者记录

2>删除护士

输入护士编号,删除其护理记录,和护士记录。

sql="DELETEFROMPNWHEREnno='%s'"

sql="DELETEFROMnurseWHEREnno='%s'"

删除护士记录

3>删除药品

输入药品编号,删除其用药记录和药品记录。

sql="DELETEFROMPDWHEREdgno='%s'"

sql="DELETEFROMdrugWHEREdgno='%s'"

删除药品记录

4>删除护理记录

输入护士编号和患者编号,删除护理记录。

sql="DELETEFROMPNWHEREpno='%s'andnno='%s'"

5>删除用药记录

输入药品编号和患者编号,删除用药记录。

sql="DELETEFROMPDWHEREpno='%s'anddgno='%s'"

3.改:

1>修改药品库存

输入药品编号来修改药品库存。

sql="UPDATEdrugSETdgnum=%dWHEREdgno='%s'"

输入药品编号来修改药品售价。

sql="UPDATEdrugSETdgprice=%dWHEREdgno='%s'"

输入药品编号和患者编号来修改患者使用药品数量。

sql="UPDATEPDSETnum=%dWHEREdgno='%s'andpno='%s'"

sql="UPDATEpatientSETpredictenddate='%s'WHEREpno='%s'"

输入患者编号来修改患者房间号码。

sql="UPDATEpatientSETrno='%s'WHEREpno='%s'"

4.查:这里的查询都是用的存储过程写的,故在这里直接写存储过程及在MySQL环境下的call调用过程。

1>查询医生姓名及部门createproceduresl_department(inddnochar(4))beginselectdname医生姓名,dpname科室名fromdepartment,doctorwheredepartment.dpno=doctor.dpnoanddoctor.dno=ddno;end;callsl_department("302");

2>查询科室的每个患者及其主治医师createproceduresl_department_patientname(inddpnochar(1))beginselectpname患者名,patient.pno患者编号,dname主治医师姓名,doctor.dno主治医师编号frompatient,doctor,departmentwherepatient.dno=doctor.dnoanddepartment.dpno=doctor.dpnoandddpno=department.dpno;end;callsl_department_patientname("1");

3>查询科室就诊人数createproceduresl_department_patientnum(inddpnochar(1))beginselectcount(*)科室患者数frompatient,doctor,departmentwherepatient.dno=doctor.dnoanddepartment.dpno=doctor.dpnoandddpno=department.dpno;end;callsl_department_patientnum("2");

4>查询患者的主治医生及其职务科室

createproceduresl_doctor(inppnochar(4))beginselectdoctor.dname医生姓名,doctor.duty职务,dpname科室名fromdoctor,departmentwheredepartment.dpno=doctor.dpnoanddnoin(selectdnofrompatientwhereppno=pno);end;callsl_doctor("0001");

5>查询医生主治的患者数量createproceduresl_doctor_patientnum(inddnochar(4))beginselectcount(*)医生主治的患者数量frompatientwherepatient.dno=ddno;end;callsl_doctor_patientnum("102");

6>查询患者用药情况createproceduresl_drug_patient(inppnochar(4))beginselectpname患者姓名,illness病症,dgname药物名,num数量frompatient,drug,PDwherepatient.pno=pd.pnoanddrug.dgno=pd.dgnoandpd.pno=ppno;end;callsl_drug_patient("0001");

7>查询患者应缴金额createproceduresl_money(inppnochar(4))beginselectsum(num*dgprice)应缴金额frompd,patient,drugwherepd.pno=patient.pnoanddrug.dgno=pd.dgnoandpatient.pno=ppno;end;callsl_money("0023");

8>查询科室的病房createproceduresl_room(inddpnochar(1))beginselectdpname科室名,rno病房编号,radr病房地址fromroom,departmentwhereddpno=room.dpnoandroom.dpno=department.dpno;end;callsl_room("1");

9>根据护士编号查询护士姓名createproceduresl_nurse(innnnochar(2))beginselectnno护士编号,nname护士姓名fromnursewherenno=nnno;end;callsl_nurse("05");

11>以患者编号查询室友createproceduresl_patient_one_room(inppnochar(4))beginselectA.pname,A.pnofrompatientAwherernoin(selectB.rnofrompatientBwhereB.pno=ppno);end;callsl_patient_one_room("0002");

12>查询同一病房的患者createproceduresl_room_patient(inrrnochar(4))beginselectpno,pnamefrompatientwhererno=rrno;end;callsl_room_patient("1407");

1.增

向医生表中加入一个工号为104,姓名为李来文的医生,再查询是否增加了该条记录。

图4.13:增加界面

2.改

先查询1号患者所要支付的钱,再将药品价格上调后,查询1号患者所需支付的钱,不同则为修改了。

图4.14:修改界面

如上图:修改前为1883,修改后为1889,说明数据发生了修改。

3.删

先查询8号护士是否存在,看到存在后将其删了,再次查询看8号护士是否存在。

THE END
1.PYTHON实现对OWRD题库处理mob6454cc6e6a40的技术博客在工作中,不管Web开发或者爬虫,数据分析等凡是与数据有接触的都离不开数据库。数据库又分为关系型数据库还是非关系型数据库,关系型数据库中最常用应该就是MySQL了。 在Python中可以通过PyMySQL库完成对其的操作。 安装PyMySQL pip3 install pymysql 1. https://blog.51cto.com/u_16099256/12856935
2.探索图书管理新境界:基于Python+MySQL的图书管理系统在数字化时代,图书管理系统的效率和便捷性显得尤为重要。本项目提供了一个入门级别的图书管理系统,采用Python语言编写,并结合MySQL数据库进行数据存储。系统不仅具备简单的图形用户界面(GUI),还能实现图书信息的增加、修改、删除和查看功能。无论是图书馆管理员还是个人用户,都能通过这个系统轻松管理图书信息。 https://blog.csdn.net/gitblog_09728/article/details/143009765
3.Python+MySQL图书管理系统超级简单简略版connection.commit()#提交事务,将之前执行的 SQL 操作(比如 UPDATE、DELETE、INSERT)的修改永久保存到数据库中。returnresultdefselect_book():cursor=connection.cursor()#定义 SQL 查询语句,从图书信息表表中选择所有数据sql='select * from books;'cursor.execute(sql)connection.commit()#对于查询操作来说这行https://www.jianshu.com/p/99018448c6b2
4.基于Python的图书馆管理系统设计与实现随着信息技术的不断发展,图书馆作为知识的海洋,其管理方式也需要与时俱进。传统的图书馆管理方式存在着效率低下、容易出错等问题,因此开发一个功能齐全、易于使用的图书馆管理系统成为了迫切的需求。二、系统设计 系统架构本系统采用B/S架构,以Python的Flask框架为基础,构建Web应用程序。数据库采用SQLite,易于部署和https://cloud.baidu.com/article/2788276
5.Python结合MySQL数据库编写简单信息管理系统完整实例最近Python课堂上布置了综合实训,实验目标是设计一个信息管理系统,下面这篇文章主要给大家介绍了关于Python结合MySQL数据库编写简单信息管理系统的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下+ 目录 1,项目整体逻辑及使用工具 1.1 项目整体逻辑 本项目主要是使用Python进行编写,利用Python中的pymysql库https://www.jb51.net/python/288053o58.htm
6.数据库课程设计:利用pythonMySQLpyqt5设计一个带UI界面的书店5.系统实现 5.1 系统实现环境和技术 6.UI 界面 7.GitHub地址 8. 更新 1.项目简述 1.1项目来源 基于MySQL+python+pyqt5设计和实现的书店管理系统 这个项目原本是这学期数据库课程设计,经过老师提醒准备在暑假时间进行完善和修改,待新学期申请一项软件著作权(这个很水的),也算是更进一步的磨练自己。暑期完成了以下https://www.360doc.cn/article/35329290_954136737.html
7.Python基于Django的学生成绩管理系统,可视化界面(附源码,教程所以本系统采用了MYSQL进行数据库的存储管理与维护。 表4-1:成绩信息 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP kechengmingcheng varchar 200 课程名称 xuehao varchar 200 学号 xueshengxingming varchar 200 学生姓名 chengji varchar 200 成绩 https://cloud.tencent.com/developer/article/2277802
8.Python编程基础数字图书馆灯塔11.3.5 MySQL 数据类型 11.3.6 创建表 11.3.7 编辑和查看表 11.3.8 删除表 11.3.9 插入数据 11.3.10 修改数据 11.3.11 删除数据 11.3.12 使用SELECT 语句查询数据 11.3.13 在Python 中访问MySQL数据库 本章练习 第12 章 Web 框架开发 12.1 Web 应用程序设计与开发概述 https://www.dtdjzx.gov.cn/szlib/jykj/2825229.jhtml
9.2022年招生专业介绍主要课程:金融基础、保险实务、证券投资原理、证券投资分析、Python程序设计基础、大数据分析与挖掘、数据库基础、金融科技概论、个人理财、国际金融、商业银行综合业务、金融指标与政策分析,区块链金融、创业金融,大数据金融、金融职业技能实训、EXCEL金融实训、金融营销与沟通等课程。 https://www.scpcfe.cn/info/1026/14626.htm
10.MySQLContact MySQL|Login|Register HeatWave Use automated and integrated generative AI and machine learning (ML) in one cloud service for transactions and lakehouse scale analytics. Get faster insights from all your data with unmatched performance and deploy apps in your choice of cloud providers. https://www.mysql.com/
11.计算机类电子信息类等书目名单数据库系统原理及MySQL应用教程 吴琛,熊燕,王小广主编 机械工业出版社 TP311/239 8 251 思科网络技术学院教程,CCNA网络安全运营 吕曙东,孙宏国主编 人民邮电出版社 TP393/2087 8 252 智能鼠原理与制作,高级篇 韩燕娜著 中国铁道出版社 TP242/90 8 253 Visual Basic程序设计实验指导 徐澜婷著 清华大学出版社 TPhttps://www.gzgs.edu.cn/tsg/info/1096/1955.htm
12.计算机网络技术(网络管理方向)专业(专科)人才培养实施方案统设必修课程:网络实用技术基础、MySQL数据库应用。 (2)专业核心课 该模块最低毕业学分为20学分,模块最低总部考试学分为20学分,模块最低设置学分为88学分。 统设必修课程:计算机组网技术、Windows网络操作系统管理、网络系统管理与维护、数据库运维、网络安全技术。 https://gcjsxy.scou.cn/info/1039/1877.htm