医院门诊管理系统说明书.docx

上传人:b****8 文档编号:10584261 上传时间:2023-02-21 格式:DOCX 页数:25 大小:277.81KB
下载 相关 举报
医院门诊管理系统说明书.docx_第1页
第1页 / 共25页
医院门诊管理系统说明书.docx_第2页
第2页 / 共25页
医院门诊管理系统说明书.docx_第3页
第3页 / 共25页
医院门诊管理系统说明书.docx_第4页
第4页 / 共25页
医院门诊管理系统说明书.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

医院门诊管理系统说明书.docx

《医院门诊管理系统说明书.docx》由会员分享,可在线阅读,更多相关《医院门诊管理系统说明书.docx(25页珍藏版)》请在冰豆网上搜索。

医院门诊管理系统说明书.docx

医院门诊管理系统说明书

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2013年春季学期

 

数据库课程设计

 

题目:

医院门诊管理系统

专业班级:

计算机

(1)班

姓名:

赵王正

学号:

10240136

指导教师:

王旭阳

成绩:

目录

摘要2

前言3

正文4

1.需求分析4

2.概念结构设计4

3.逻辑结构设计6

4.系统实现8

5.系统测试8

5.1登录模块8

5.2用户表选择界面9

5.4病房选择界面10

5.5科室选择界面11

5.6医生选择界面11

5.7数据库功能测试12

6.软件使用说明书13

总结14

参考文献15

致谢16

附录17

摘要

医院管理数据库系统,以利用计算机完成病人入院后,对其基本信息、主治医师以及入住病房等信息进行数据库管理,有利于提高入院手续的办理速度以及对医院资源管理的效率。

同时可以落实责任,方便信息的集中化管理及应用。

本数据库系统是一个小型数据库管理系统,施以款专门用于医院管理系统的软件,具有良好的用户界面,风格独特的设计。

基于B/S的门诊药房管理系统能在线管理门诊药房的药品器材,实现药品器材的入库,药品的划价结帐,对销售额的报表统计。

门诊药房管理系统的设计本着以病人为中心,提高药房内部管理水平。

关键词:

门诊药房管理;B/S;数据库

 

前言

医院管理的门面大,信息流量大,手续较繁琐,在手工方式下,医护人员要做大量不必要的重复工作、效率低、准确性差、不方便管理,影响工作效率,造成了很多就诊病人得不到合理有效的快捷就诊服务,甚至影响医疗质量。

为此,越来越多的医院加快了信息化建设的步伐。

医院管理系统能有效地优化服务和工作环境、使病人和医生情绪得以放松,提高了服务效率和质量、树立了医院的良好形象,使医院工作可以高效有序的运转,提高了医院的经济效益,促进了医院的发展。

 

正文

1.需求分析

通过对医院门诊日常工作的可行性分析和初步调查,确定建立一个医院门诊管理子系统。

本系统的最终目的是为了储存医院门诊每个流程的信息,方便调用、查看。

通过对数据的收集、分析,明确了本系统的主要功能是:

对每个前来就医的病人信息的登记,安排好病人对应的科室医生的时间表,每种药品的信息和经办人的信息。

而且每个病人需要被长期保存,以便今后方便查询。

首先要明确一个系统做出来的目的是什么,区分业务流程图和系统流程图的区别,避免把两者弄混。

 

2.概念结构设计

为了便于实现和理解,下面是比较简单的系统E-R图,每个实体及属性如下:

处方:

处方编号、病人姓名、医生姓名、药品信息;

病人:

流水号、病人姓名、性别、年龄、病症;

科室:

科室编号、名称、类别;

医生:

医生编号、姓名、职务、科室类别;

收费票据:

流水号、日期、病人姓名、挂号员编号、接诊医生、收款金额、收费员;

 

图1

 

图2

 

图3

 

图4

 

图5

 

图6

3.逻辑结构设计

对上面所画的E-R图,有6个实体4个关系,每个实体可以用一张表表示,而且多对对2个多对多)的联系又可以转换为一张表,则此系统表有8个表。

病人表,处方表,医生表,科室表,就诊表,药品表,收费票据表;

病人表:

列名

数据类型

长度

说明

流水号

nchar

12

主键

姓名

nchar

8

病人姓名

性别

Char

2

病人性别

年龄

smallint

病人年龄check约束

病症

varchar

50

病人病况

处方表:

列名

数据类型

长度

说明

处方编号

nchar

10

主键

流水号

Nchar

12

外键

病人姓名

nchar

8

医生姓名

nchar

8

药品信息

varchar

50

医生开出的药品

医生表:

列名

数据类型

长度

说明

医生编号

nchar

12

主键

姓名

nchar

8

医生的姓名

职务

nchar

20

医生的职位

科室编号

nchar

12

医生属于的科室

科室表:

列名

数据类型

长度

说明

科室编号

nchar

12

主键

科室名称

nchar

10

科室名称

科室类别

nchar

20

科室类别

就诊表:

列名

数据类型

长度

说明

流水号

nchar

12

主键

医生编号

nchar

12

外键

姓名

Varchar

8

病症

Varchar

50

病人的病症

处方编号

nchar

12

触发器

日期

datetime

YYYY/MM/DDdefaut约束

药品表

列名

数据类型

长度

说明

名称

varchar

6

主键

单价

float

药品的单价

数量

smallint

药品数量

取药表

列名

数据类型

长度

说明

处方编号

nchar

10

主键

药品名称

Varchar

6

收费票据表:

列名

数据类型

长度

说明

流水号

nchar

12

主键

日期

datetime

YYYY/MM/DD;default约束

病人姓名

nchar

8

病人的姓名

经办人编号

nchar

8

开挂号单的人编号

医生编号

nchar

8

给病人看病的医生编号

收费金额

float

需要付的金额;check约束

收费员

nchar

8

收款人员姓名

4.系统实现

数据库完整性设计

1、主键及唯一性索引

在病人表中,挂号单的流水号是唯一能表明病人的属性,所以将流水号设为主键并建立唯一性索引。

同理,医生表、科室表、收费发票、处方表对应的主键是医生编号、科室编号、流水号、处方编号,并一次在上述属性建立唯一性索引。

2、参照完整性设计

在上面的就诊表,主键均是流水号,而他的外键是医生编号。

这个属性又分别是医生表、的主键。

所以看病表与医生表,医生表里面的主键是医生编号,外键是科室编号,科室编号又是科室表的主键。

所以就诊表与医生表,医生表与科室表之间存在着参照与被参照的关系。

3、check约束

病人表中,病人的年龄要是正数,因此约束它的值只能是大于等于零,又因为人的寿命的长度,限制它的最大值为120。

而性别只有男女之分,也要建立check约束。

对于收费票据表中的收费金额设置check约束,收费金额不能为负的,所以check约束它的值大于零。

4、default约束

就诊表里的看病日期和收费发票表的开出发票的日期,都应该设置default约束,设置的默认值是当天的日期。

5触发器设计

在就诊表和处方表中,分别对流水号、处方编号建立触发器,当产生这些编号时,则触发提醒病人应该到收费处交钱。

5.系统测试

5.1登录模块

用户只要输入用户名、密码,选择登陆角色就可以了。

若用户输入的以上三项与数据库中保存的相符,则表明用户登录成功;如果不符,系统会提示错误。

首页界面即登录界面,通过下列代码验证考生身份的合法性:

 

登录界面:

 

5.2用户表选择界面

 

 

5.3病人信息界面

本界面附带添加,删除,修改,清空等功能。

5.4病房选择界面

5.5科室选择界面

5.6医生选择界面

5.7数据库功能测试

医生表

病人表

 

科室表

病房表

6.软件使用说明书

数据库存储过程设计

方便各个角色的用户进行查询,将不同的表存放在不同的地方,各个表之间可以进行连接。

数据库存储过程设计主要就是为了不同的角色查询的方便。

如可以将病人表、收费票据表通过流水号连接起来,可以让病人便于查看自己的病症和所花费的钱。

权限设计

对于本系统的大致权限分配如下,医生能查看自己的信息,能查看自己检查的病人的基本信息和病例。

病人能查看自己的病例,能查看自己的处方,收费票据。

收费人员能查看所有挂号人的信息,处方,收取的费用。

 

总结

这次数据库课程设计给我的最大的印象是:

流程是一切的根本;架构是重要的,比想象的还要重要;实践比一切空谈和理论更能学到东西。

从做这个数据库开始无论遇到什么困难,我都没有一丝的放弃的念头。

在设计过程中一定要慎重,仔细。

来不得半点马虎。

需求分析是整个课程设计的中心,考虑要全面,分析彻底。

才会为后来的设计打下良好的基础。

否则,前功尽弃,甚至不能完成任务。

做实例过程中要注意与说明书中数据项数据类型,数据长度等的一致,命令中心输入任何命令都要谨记一条原则,那就是严格按照格式来,不能像平时在纸上作业。

经过两个星期的努力我的医院门诊管理系统数据库课程设计终于完成了,在这个过程中,我逐个击破,从分析到设计,从表到数据,从基本操作到高级查询,我一一研究,仔细实验,理解了很多。

从这个过程我懂得,更多的实践是帮助你更好的理解理论的办法,而课程设计的完成也是对一个工程和项目的责任心的完整,也使我们懂了更多的方法以及对项目的设计经验,虽然简单,但是也是一种很好的锻炼。

 

参考文献

1.李明等.数据库原理及应用[M].西南交大出版社,2007.7

2.袁方(译).现代数据库管理(第7版)[M].电子工业出版社,2006.1

3.张瑜等(译).数据库系统设计实现与管理(第6版)[M].清华大学出版社,2005.9

4.郑阿奇.SQLServer实用教程(第2版)[M].电子工业出版社,2007.11

5.熊拥军,刘卫国.数据库技术与应用实践教程—SQLServer2005[M].清华大学出版社,2010,4

6.周涛,吕伟臣,夏永和.SQLServer2005数据库基础应用[M].清华大学出版社,2007,12

7.陈磊等.PowerBuilder9数据库项目案例导航[M].清华大学出版社,2005,1

8.杨柠.进销存管理软件参考流程的研究与分析[J].黑龙江科技信息,2010,5

9.赵晓霞.进销存管理系统的设计与实现[J].煤炭技术,2010,1

 

致谢

在这次课程设计的撰写过程中,我得到了很多人的帮助。

首先,我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次课设的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。

在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。

其次,我要感谢帮过我的同学,他们也为我解决了不少我不太明白的问题。

同时也感谢学院为我提供良好的做课程设计的坏境。

最后,再一次的感谢所有在设计中帮助过我的良师益友和同学。

 

附录

(部分源代码)

publicclassdialogextendsJDialog{

privatestaticfinallongserialVersionUID=1L;

privateJPaneljContentPane=null;

privateJPaneljPanel=null;

privateJLabeljLabel=null;

privateJLabeljLabel1=null;

privateJLabeljLabel2=null;

privateJTextFieldjuserName=null;

privateJPasswordFieldjPassword=null;

privateJButtonjOK=null;

privateJButtonjUndo=null;

privateJButtonjExit=null;

privatestaticStringuserName="";

privateStringuserPassword="";

/**

*@paramowner

*/

publicdialog(Frameowner){

super(owner);

initialize();

}

/**

*Thismethodinitializesthis

*

*@returnvoid

*/

privatevoidinitialize(){

this.setSize(441,316);

this.setModal(true);

this.setTitle("员工登录");

this.setResizable(false);

this.setContentPane(getJContentPane());

}

/**

*ThismethodinitializesjContentPane

*

*@returnjavax.swing.JPanel

*/

privateJPanelgetJContentPane(){

if(jContentPane==null){

GridLayoutgridLayout=newGridLayout();

gridLayout.setRows

(1);

jContentPane=newJPanel();

jContentPane.setLayout(gridLayout);

jContentPane.add(getJPanel(),null);

}

returnjContentPane;

}

/**

*ThismethodinitializesjPanel

*

*@returnjavax.swing.JPanel

*/

privateJPanelgetJPanel(){

if(jPanel==null){

jLabel2=newJLabel();

jLabel2.setBounds(newRectangle(61,151,43,24));

jLabel2.setText("密码:

");

jLabel1=newJLabel();

jLabel1.setBounds(newRectangle(52,110,53,24));

jLabel1.setText("用户名:

");

jLabel=newJLabel();

jLabel.setText("欢迎员工登录祝您工作愉快");

jLabel.setFont(newFont("Dialog",Font.BOLD|Font.ITALIC,26));

jLabel.setForeground(newColor(252,5,5));

jLabel.setBounds(newRectangle(33,22,372,38));

jPanel=newJPanel();

jPanel.setLayout(null);

jPanel.add(jLabel,null);

jPanel.add(jLabel1,null);

jPanel.add(jLabel2,null);

jPanel.add(getJuserName(),null);

jPanel.add(getJPassword(),null);

jPanel.add(getJOK(),null);

jPanel.add(getJUndo(),null);

jPanel.add(getJExit(),null);

}

returnjPanel;

}

/**

*ThismethodinitializesjuserName

*

*@returnjavax.swing.JTextField

*/

privateJTextFieldgetJuserName(){

if(juserName==null){

juserName=newJTextField();

juserName.setBounds(newRectangle(105,110,193,22));

}

returnjuserName;

}

/**

*ThismethodinitializesjPassword

*

*@returnjavax.swing.JPasswordField

*/

privateJPasswordFieldgetJPassword(){

if(jPassword==null){

jPassword=newJPasswordField();

jPassword.setBounds(newRectangle(104,152,195,22));

}

returnjPassword;

}

/**

*ThismethodinitializesjOK

*

*@returnjavax.swing.JButton

*/

privateJButtongetJOK(){

if(jOK==null){

jOK=newJButton();

jOK.setBounds(newRectangle(62,200,71,26));

jOK.setText("登录");

jOK.addActionListener(newjava.awt.event.ActionListener(){

publicvoidactionPerformed(java.awt.event.ActionEvente){

//员工登陆

intindex=0;//标记登陆数据位置,获取相应用户名和密码

if(main_Frame.getUserType().equals("挂号处")){

index=0;

}

elseif(main_Frame.getUserType().equals("科")){

index=1;

}

elseif(main_Frame.getUserType().equals("收费处")){

index=2;

}

elseif(main_Frame.getUserType().equals("取药处")){

index=3;

}

System.out.println(main_Frame.getdataName(index));

//获取登陆数据库的用户名和密码

StringDBuser=main_Frame.getdataName(index);

StringDBpassword=main_Frame.getdataPassword(index);

//获取登陆用户的用户名和密码

userName=juserName.getText();

userPassword=jPassword.getText();

System.out.println("caidaozhe");

Stringsql="select*from医务人员表where工作号='"+userName+"'and密码='"+userPassword

+"'and科室like'%"+main_Frame.getUserType()+"'";

linkDataBaselink=newlinkDataBase(DBuser,DBpassword);//,userName,userPassword);

try{

ResultSetrs=link.getResultSet(sql);

if(!

rs.next()){

JOptionPane.showMessageDialog(null,"你输入用户名和密码不正确,请重新输入用户名和密码!

","提示",JOptionPane.WARNING_MESSAGE);

jPassword.setText("");

System.out.println("你的用户名和密码不正确,请重新输入用户名和密码");

}elseif(main_Frame.getUserType().equals("科")){//医生登陆

System.out.println("医生登陆成功!

");

dispose();

jiuzhen_WindowJ_Window=newjiuzhen_Window();

J_Window.setLocationRelativeTo(null);

J_Window.setVisible(true);

}elseif(main_Frame.getUserType().equals("挂号处")){//挂号员登陆

if(main_Frame.getg_Statue()){

main_Frame.setg_Statue(false);

dispose();

System.out.println("登陆成功!

");

guahaog_Window=newguahao();

g_Window.setLocationRelativeTo(null);

g_Window.setVisible(true);

}else{

JOptionPane.showMessageDialog(null,"已经有挂号员登陆!

","警告!

",JOptionPane.WARNING_MESSAGE);

dispose();

}

}elseif(main_Frame.getUserType().equals("收费处")){//收费员登陆

if(main_Frame.gets_Statue()){

System.out.println("收费员登陆");

main_Frame.sets_Statue(false);

dispose();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1