当前位置:文档之家› 数据库课程设计报告医院病房管理系统设计

数据库课程设计报告医院病房管理系统设计

计算机科学与技术学院2010—2011 学年第1学期《数据库原理(山)》课程设计题目医院病房管理系统班级:080341C 班学号:080341314李晗姓名:教师:曹卫东成绩:、需求分析近年来,随着我国人民生活水平的迅速提高,科学技术的进一步发展,人们对将电子计算机应用于医学领域的需求就越来越迫切,一套好的医院病房管理系统在全面提高医院的整体工作效率、为病人提供方便快捷的服务等方面都能发挥出重要作用。

根据调查,在西方发达国家,几乎绝大部分的医院都已经采用了医院病房管理系统,然而在国内的使用尚不普及,许多小型医院还是完全依靠手工操作在管理病人和医院员工的一切信息,这不仅劳动强度大且工作效率低,医师护士和管理人员的大量时间都消耗在事务性工作上,对其所掌握的信息也无法很好地统计应用起来,这样既无法提高医院自身的医疗水平,同时又无法很好地为病人服务。

信息时代已经来临,将计算机应用于医院的日常管理为医院的现代化带来了从未有过的动力和机遇,为医疗卫生领域的发展提供了无限的潜力。

对于一个医院来说,病房管理是一个必备的环节,病房的入住、费用统计等都包含着复杂的信息,这就需要应用计算机软件来对各项工作进行管理以发挥最大的功效。

采用计算机管理信息系统已成为医院管理科学化和现代化的标志,给医院带来了明显的经济效益和社会效益,它极大的提高了医务人员的工作效率,有效地解决了信息的管理问题。

这次设计的目的就是为医院创建一个方便、实用、快捷的管理系统,具备数据库维护功能,能根据用户需求进行数据的查询、添加、删除、修改,减轻医院工作人员的负担,同时这也是现代化管理的必然要求。

系统功能模块图:登录界面管理主页各模块所能实现的功能:登录界面:医生只有输入正确的工作证号和密码才能登录系统,如果还没有注册,可先输入相关信息进行注册。

管理主页:列出了该系统所能实现的功能,包括病人住院登记、出院结算、病人信息管理、医院内部信息管理、系统安全密码设置,医生根据需要选择对应的项目。

住院登记:登记病人基本信息,包括病历号、姓名、性别、诊断、病房号、床位号、电话号码、主治医生、住院日期,将其提交给系统。

出院结算:根据病人的入院日期、出院日期、和所住病房的收费标准,便可计算出病人所需支付的费用。

病人信息管理:可以查看全部病人信息,而且能选择科室进行分科室查看病人信息, 可以通过输入病人病历号、选择想要修改的项目来修改病人信息。

医院内部信息管理:包括科室信息管理、医生信息管理、病房信息管理、床位信息管理。

其中科室信息管理实现添加科室、删除科室、更新科室、查看全部科室、查看科室医生;医生信息管理用来添加医生、删除医生、更新医生、查看所有医生、查看医生主管病人;病房信息管理实现添加病房、删除病房、更新病房以及查看全部病房;床位信息管理用来添加床位、删除床位、还可以查询床位的使用情况以便合理地为病人分配床位。

系统安全密码设置:为了保证系统的安全性,系统通过对工作证号和旧密码的验证,来修改登录密码。

病房管理系统数据流图:数据字典:(1) 数据结构:病人含义说明:定义了一个病人的信息结构组成:病历号、姓名、性别、诊断、病房号、床位号、电话号码、主治医生、住院日期(2) 数据结构:医生含义说明:定义了一个医生的信息结构组成:工作证号,姓名,年龄,职称,部门,电话号码,密码(3) 数据项:病历号含义说明:唯一标识一个病人类型:字符型长度:4取值范围0000~9999(4) 数据项:工作证号含义说明:唯一标识一个医生类型:字符型长度:3 取值范围000~999(5) 数据项:密码含义说明:登陆本病房管理系统时所需的密码类型:可变字符型长度:15(6) 数据流:病房和床位信息说明:表示病房内每一床位的使用状态数据来源:病房表和床位表组成:所属科室,病房号,床位号,目前状态,收费标准(7) 数据流:医生主管病人信息说明:表示每一医生主治的病人信息数据来源:病人表和医生表组成:病历号,姓名,性别,病房号,床位号,电话号码,医生工作证号,医生姓名(8) 数据流:科室医生信息说明:表示每一科室包含的医生信息数据来源:科室表和医生表组成:工作证号, 姓名, 职称, 年龄, 电话号码, 科名, 科地址, 科电话(9) 处理过程: 登记病人信息说明:向系统录入病人信息输入:病历号、姓名、性别、诊断、病房号、床位号、电话号码、主治医生、住院日期处理:首先根据病人诊断的结果,从病房和床位信息中选择一个空的床位,然后将病人相关信息输入系统。

(10) 处理过程: 出院结算说明:结算病人住院期间所需费用输入:病历号、出院日期输出:姓名、病房号、收费标准、住院日期、应付金额处理:根据病人的病历号,从数据库中得到相应的住院信息,由出院日期和收费标准系统可返回应支付的费用。

二、结构设计1 .概念结构设计全局E-R 图:2•逻辑结构设计将E-R 图转换为关系模式为:病人(病历号,姓名,性别,诊断,病房号,床位号,电话号码,主治医生,住院日期) 医生(工作证号,姓名,年龄,职称,部门,电话号码,密码) 科室(科名,科电话,科地址) 病房(病房号,所属科室,收费标准) 病床(病房号,病床号,目前状态) 治疗(病历号,工作证号) 属于(工作证号,科名) 包含(科名,病房号) 入住(病历号,病房号) 拥有(病房号,病床号)H 作证号年龄部门 电话号密码病历号性院日期性别X 诊断病房号病床号)<■电话号巧產語医生 *~O/ k柞号病人病房病床科室FKJSAJr^3•物理结构设计 1) 对于医生表:系统涉及了对工作证号、姓名、职称、部门的查询,因此为其各建立一个升序的索引。

2) 对于病人表:系统涉及了对病历号、诊断、病房号、主治医生工作号的查询,因此为其各建立一个升序 的索引。

3) 对于病房表:系统涉及到了对病房号、所属科室的查询,因此为其各建立一个升序的索引。

4) 对于病床表:系统涉及到了对病房号、床位号的查询,因此为其各建立一个升序的索引。

三、主要编码及描述:1•数据库服务器端 1) 视图一:CREATE VIEW 医生视图 ASSELECT 工作证号,姓名,职称,年龄,电话号码,部门 FROM 医生作用:医生表中有一列属性是密码,当查询医生信息时,不应显示出来,所以查询时可 以直接查询该视图,输出除密码以外的信息。

视图关系图如下所示:i ・ SOL Server Enterprise Iimsecr - [9^关枣 H ' 插居首理玉 it 关:玉斟".位玉呈》摘屏露理玉ST 机 "(Igcal)*上】JI □ 昱I圮j 文件力 eo (TJ 帮助(X)Q 目白% 7冃$砒西病馬卫I 顾号 二■師虑科富 一收躍标准病床V __D ;」fi 展」4軍曙室□««址 二1羿电恬主空工侶虽号 A航鈕倒的fl丹個生一科0CREATE VIEW 医生主管病人视图ASSELECT 病人.病历号,病人.姓名AS 病人姓名,病人.性别, 病人.病房号, 病人.病床号,病人.电话号码,医生.姓名AS 医生姓名, 医生.工作证号FROM 病人,医生WHERE 病人.主治医生工作号=医生.工作证号ORDER BY 医生.工作证号,病人.病历号作用:该视图将医生表和病人表联系起来,当输入医生的工作证号后,可直接调用该视图,将相关的医生信息和病人信息以医生工作证号为第一顺序、病人病历号为第二顺序输出。

视图三:CREATE VIEW 科室医生信息情况ASSELECT 医生.工作证号,医生.姓名, 医生.职称, 医生.年龄, 医生.电话号码, 科室.科名, 科室.科地址,科室.科电话FROM 医生,科室WHERE 医生.部门= 科室.科名ORDER BY 医生.工作证号作用:该视图将科室表和医生表联系起来,当选择科室名称后,可直接调用该视图,将相关的科室信息和医生信息按医生工作证号的顺序输出。

视图四:CREATE VIEW 出院结算视图ASSELECT 病人.病历号, 病人.姓名, 病人.性别, 病人.诊断, 病人.住院日期, 病人.病房号, 病房.收费标准FROM 病人,病房WHERE 病人.病房号= 病房.病房号ORDER BY 病人.病历号作用:当病人出院时结算费用,需要知道住院日期、病房号及收费标准以便进一步的计算。

该视图将病人表和病房表联系起来,输入病人病历号后,即可显示出住院日期、收费标准等相关信息。

2) 存储过程:CREATE PROCEDURE chuyuan(@id char(20),@tm datetime,@pp int output) AS declare @a int declare @b int declare @c datetimeselect @a=病房号from 病人where病历号=@idselect @b=收费标准from病房where病房号=@aselect @c=住院日期from 病人where病历号=@idselect @a=datediff(day,@c,@tm)set @pp=@a*@bGO作用:该存储过程将病人病历号和出院日期作为输入,分别赋值给变量id、tm,经select 语句得到收费标准赋给变量b、和住院日期赋给变量c,用函数datediff(day,@c,@tm)计算出住院天数,住院天数和收费标准的乘积即为结算费用,将它赋给变量pp 并作为输出返回。

3) 触发器一:create TRIGGER up ON 病人FOR INSERTASBeginDeclare @NR varchar(50), @NB varchar(50)Select @NR= 病房号,@NB= 病床号from insertedUpdate 病床Set 目前状态=" 有人"Where病房号=@NR and 床位号=@NBEnd作用:当有新病人登记入住时触发事件, 设置病人所在床位的目前状态为“有人” ,以免再有病人入住此床位时发生冲突。

触发器二:create TRIGGER de ON 病人FOR deleteASBeginDeclare @NR varchar(50), @NB varchar(50)Select @NR= 病房号,@NB= 病床号from deletedUpdate 病床Set 目前状态=" 无人"Where 病房号=@NR and 床位号=@NBEnd作用:当有病人出院时将其信息删除, 触发该事件, 设置病人之前床位的目前状态为“无人”,以便以后其他病人可以使用此床位。

2.应用服务器端1) 数据录入功能:通过“住院登记”界面,将录入的病人相关信息存储到数据库病人表中;protected void Button1_Click(object sender, EventArgs e){SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog= 病房管理系统;Integrated Security=True");SunCon.Open(); // 打开SunCon 对象所连接的数据库string StuSQL; //用来存放SQL 命令的字符串StuSQL = "INSERT INTO 病人(病历号,姓名,性别,诊断,病房号,电话号码,主治医生工作号,住院日期,病床号) VALUES('";StuSQL = StuSQL + TextBox1.Text + "','" + TextBox2.Text + "','" +TextBox10 .Text +Ill IN.J JStuSQL = StuSQL + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox7.Text + "','" + TextBox8.Text + "','" + TextBox9.Text + "')";SqlCommand StuIns = new SqlCommand(StuSQL, SunCon);StuIns.ExecuteNonQuery(); // 针对SunCon 所连接的数据库,执行StuIns 对象SunCon.Close(); //关闭SunCon 对象所连接的数据库Response.Write("<script laguage=javacript>alert(' 已登记')</script>");}2) 数据删除功能:通过“删除医生信息”界面,实现将数据库中医生表中的相应医生信息进行删除;protected void Button1_Click(object sender, EventArgs e){SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog= 病房管理系统;Integrated Security=True");SunCon.Open();string StuSQL;StuSQL = "delete from 医生where 工作证号="+TextBox1.Text .Trim (); SqlCommand cmd = new SqlCommand(StuSQL, SunCon);cmd.ExecuteNonQuery();Response.Write("<script laguage=javacript>alert(' 成功删除')</script>"); }3) 数据检索功能:通过“查看科室病人信息”界面,实现根据DropDownList 中选择的科室名称对数据库中的病人表进行查询,并将查询结果显示给用户。

相关主题