医院管理系统设计说明书.docx

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

医院管理系统设计说明书.docx

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

医院管理系统设计说明书.docx

医院管理系统设计说明书

医院管理系统设计说明书

1.1.     系统设计

1.1系统目标设计

通过一个医院管理系统,使医院的管理工作系统化、规范化、自动化,从而达到提高医院管理效率的目的。

1.2开发设计思想

本系统开发设计思想:

✧✧      尽量采用公司现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用公司现有资源,提高系统开发水平和应用效果的目的;

✧✧      系统应符合医院员工管理的规定,满足医院日常管理的需要,并达到操作过程中的直观、方便、实用、安全等要求;

✧✧      系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充、维护。

✧✧      系统应具备数据维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。

1.3开发和运行环境选择

开发工具:

MicrosoftVisualStudio2008;

运行环境:

WindowXP或Windows2000

1.4系统功能分析

系统功能分析事在系统开发的总体任务的基础上完成的。

本例子中的医院管理系统需要完成功能主要有:

✧✧      员工各种信息的输入,包括员工基本细细、职称、岗位。

✧✧      员工各种的查询、修改,包括员工基本信息、职称、岗位、工资等。

✧✧      员工的人事调动管理。

✧✧      病人信息的管理。

✧✧      病院病床的管理。

✧✧      药剂资源管理。

✧✧      仪器资源管理。

✧✧      系统用户管理、权限管理。

1.5系统功能模块设计

在系统功能分析的基础上,考虑MicrosoftVisualStudio2008程序编制的特点,得到如图1所示的系统功能模块图。

 

 

 

 

 

 

 

 

 

图1系统功能模块图

 

 

 

2.2.     数据库设计

在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。

数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构会减小数据库的存储量,数据的完整性和一致性比较高,系统具有较快的相应速度,简化基于此数据库的应用程序的实现等。

在数据库系统开始设计的时候应该尽量考虑全面,尤其应该仔细考虑用户的各种需求,避免浪费不要的人力和物力。

2.1数据库需求分析

数据库需求分析是数据结构设计的第一阶段,是非常重要的一个阶段。

在这个阶段主要是收集基本数据、数据结构以及确定数据处理的流程,组成一份详尽的数据字典,为以后进一步设计打下基础。

在仔细调查医院管理过程的基础上,我们得到本系统所处理的数据关系如图2所示。

 

 

 

图2数据关系图

针对本实例,通过对医院管理的内容和数据关系分析,我们设计的数据项和数据结构如下:

✧✧      员工基本状况包括的数据项有员工号、员工姓名、性别、所在部门、身份证号、生日、籍贯、国籍、民族、婚姻状况、健康状况、参加工作时间、员工状态、家庭住址、联系电话等。

✧✧      员工工资状况包括的数据项有员工号、工资项别、工资金额等。

✧✧      医院工作岗位信息包括的数据项有工作岗位代号、工作岗位名称等。

✧✧      医院部门信息包括的数据项有部门代号、部门名称、部门负责人等。

✧✧      病人信息包括的数据项有病人姓名、病人性别、入院时间、病人所属科室、病人状况、病人主治医生、房间号、病床号等。

✧✧      药剂资源管理信息包括的数据项有药剂代号、药剂名称、药剂价格、药剂库存数量、备注等。

✧✧      医疗仪器管理包括的数据项有仪器代号、仪器名称、仪器价格、仪器数量、备注等。

有了上面的数据结构、数据项和数据关系,我们就进行下面的数据库设计。

2.2数据库概念结构设计

这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及确定他们之间的关系,为后面的逻辑结构设计打下基础。

本实例根据上面的设计规划出的实体有员工实体、部门实体、岗位实体、病人实体、药剂实体、仪器实体。

实体和实体之间的关系E-R图如图3所示。

2.3数据库逻辑结构设计

我们需要将上面的数据库概念结构转化为MicrosoftVisualStudio2008数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

在上面的实体以及实体之间关系的基础上,我们就可以形成数据库中的表格以及各个表格之间的关系。

医院管理系统数据库中各个表格的设计结果如表。

每个表格对应在数据库中的一个表。

 

 

 

 

 

 

 

 

1

 

 

 

1

1n

 

 

11

 

1

 

 

1

 

1n

 

 

 

图3实体之间关系E-R图

表1PERSONNEL员工基本状况表

列名

数据类型

可否为空

说明

EMP_NO

NUMBERIC(6)

NOTNULL

员工号(主键)

EMP_NAME

CHARACTER(10)

NULL

员工姓名

EMP_DEPT_ID

NUMBERIC(3)

NULL

所在部门号

EMP_DUTY

CHARACTER(10)

NULL

职务

EMP_XL

CHARACTER(10)

NULL

学历

EMP_GENDER

CHARACTER

(2)

NULL

性别

EMP_BIRTHDAY

DATE

NULL

生日

EMP_HOMETOWN

CHARACTER(8)

NULL

籍贯

EMP_COUNTRY

CHARACTER(10)

NULL

国籍

EMP_NATION

CHARACTER(10)

NULL

民族

EMP_ID

NUMBERIC(6)

NULL

身份证号

EMP_MARRIAGE

CHARACTER

(2)

NULL

婚姻状况

EMP_HEALTH

CHARACTER(10)

NULL

健康状况

EMP_STARTWORK

DATE

NULL

参加工作时间

EMP_STATE

CHARACTER(10)

NULL

员工状态

EMP_HOMEADDRESS

CHARACTER(10)

NULL

家庭住址

EMP_TELENO

NUMBERIC(10)

NULL

联系电话

EMP_EMAIL

CHARACTER(20)

NULL

联系E-mail地址

EMP_JOB_ID

NUMBERIC(3)

NULL

工作岗位代号

表2为工作岗位情况表。

表2JOB工作岗位情况表

列名

数据类型

可否为空

说明

JOB_ID

NUMBERIC(3)

NTONULL

工作岗位代号(主键)

JOB_NAME

CHARACTER(10)

NULL

工作岗位名称

表3为部门信息表

表3DEPT部门信息表

列名

数据类型

可否为空

说明

DEPT_ID

NUMBERIC(3)

NOTNULL

部门代号(主键)

DEPT_NAME

CHARACTER(10)

NULL

部门名称

DEPT_MANAGER

NUMBERIC(6)

NULL

部门主任代号

DEPT_VICEMANAGE

NUMBERIC(6)

NULL

部门副主任代号

表4为病人信息表。

表4病人信息表PATIENT

列名

数据类型

可否为空

说明

PATIENT_NAME

CHARACTER(10)

NULL

病人姓名(主键)

PATIENT_GENDER

CHARACTER

(2)

NOTNULL

病人性别

PATIENT_DATE_START

CHARACTER(10)

NULL

入院时间

PATIENT_DEPT

CHARACTER(10)

NOTNULL

病人所属科室

PATIENT_STATE

CHARACTER(10)

NULL

病人状况

PATIENT_DOC

CHARACTER(10)

NOTNULL

病人主治医生

PATIENT_ROOM

CHARACTER(3)

NOTNULL

病人房间号

PATIENT_BED

CHARACTER

(2)

NOTNULL

病人病床号

表5为药剂信息表。

表5药剂信息表POTION

列名

数据类型

可否为空

说明

POTION_ID

NUMBERIC(3)

NOTNULL

药剂代号(主键)

POTION_NAME

CHARACTER(10)

NULL

药剂名称

POTION_PRICE

NUMBERIC(5,2)

NULL

药剂价格

POTION_QUANTITY

NUMBERIC(3)

NULL

药剂库存数量

POTION_REM

CHARACTER(40)

NULL

备注

表6为医疗仪器信息表。

表6医疗仪器信息表APPARATUS

列名

数据类型

可否为空

说明

APPARATUS_ID

NUMBERIC(3)

NOTNULL

仪器代号(主键)

APPARATUS_NAME

CHARACTER(10)

NULL

仪器名称

APPARATUS_PRICE

NUMBERIC(5,2)

NULL

仪器价格

APPARATUS_QUANTITY

NUMBERIC(3)

NULL

仪器数量

APPARATUS_REM

CHARACTER(40)

NULL

备注

一个企业可以有多个用户管理该系统,因此就需要为不同的用户设置不同的口令。

表7为管理TMS系统的用户口令表。

表7管理TMS系统的用户口令表TMS

列名

数据类型

可否为空

说明

TMS_USER

CHARACTER(20)

NOTNULL

用户名(主键)

TMS_PSWD

CHARACTER(10)

NOTNULL

口令

 

各个功能模块的创建

登陆界面

登陆代码:

namespaceHospital_MIS

{

publicpartialclassFrm_login:

Form

{

databaseoperatemyoperate=newdatabaseoperate();

publicFrm_login()

{

InitializeComponent();

}

privatevoidbtn_exit_Click(objectsender,EventArgse)

{

Application.Exit();

}

privatevoidFrm_login_FormClosed(objectsender,FormClosedEventArgse)

{

Application.Exit();

}

privatevoidbtn_ok_Click(objectsender,EventArgse)

{//首先查询数据库,获取与指定用户名和密码匹配的信息

SqlDataReadersqlread=myoperate.getread

("selectname,password,disciplinefromemployee"+

"wherename='"+txt_name.Text.Trim()+

"'andpassword='"+txt_pwd.Text.Trim()+"'");

try

{

sqlread.Read();//读取SqlDataReader

if(sqlread.HasRows)//如果存在匹配行

{//在operateinfo中记录用户名信息

operateinfo.operatename=

txt_name.Text.Trim();

//显示主窗体

Frm_Mainnewfrm=newFrm_Main();

this.Hide();

newfrm.Show();

}

else

{//如果密码错误,则显示提示信息并要求用户重新输入

MessageBox.Show("用户名或密码错误!

","提示",

MessageBoxButtons.OK,

MessageBoxIcon.Information);

txt_name.Text="";

txt_pwd.Text="";

txt_name.Focus();

}

}

finally

{//如果己经实例化了SqlDataReader

if(sqlread!

=null)

{//关闭SqlDataReader

sqlread.Close();

}

}

}

}

 

2.     系统主界面设计

系统主界面

病人挂号界面

病人挂号代码:

namespaceHospital_MIS

{

publicpartialclassFrm_appointment:

Form

{

databaseoperatemyoperate=newdatabaseoperate();

publicFrm_appointment()

{

InitializeComponent();

}

privatevoidbutton3_Click(objectsender,EventArgse)

{

//获取病人的编号

operateinfo.patientno=txt_patientno.Text.Trim();

//实例化并显示打印预览窗口

Frm_printregfrm=newFrm_printreg();

frm.Show();

}

privatevoidFrm_appointment_Load(objectsender,EventArgse)

{

//进行病人名称的自动完成操作

this.cmb_name.AutoCompleteMode=AutoCompleteMode.SuggestAppend;

this.cmb_name.AutoCompleteSource=AutoCompleteSource.ListItems;

//添加要进行操作的类型

cmb_optype.Items.Add("预约");

cmb_optype.Items.Add("预约挂号");

cmb_optype.Items.Add("现场挂号");

cmb_optype.SelectedIndex=0;

//将病人信息的文本框控件设置为不可用

SetControlFalse();

//加载病人姓名

this.getname();

//添加医师名称以及预约科室

DataSetgetdocnameds=myoperate.getds

("selectID,name,disciplinefromemployee","employee");

for(inti=0;i

{//将预约科室添加到ComboBox控件中

this.cmb_docdiscipline.Items.Add(getdocnameds.Tables[0].Rows[i][2]);

}

//对医师信息进行数据绑定

cmb_docname.DataSource=getdocnameds.Tables[0];

cmb_docname.DisplayMember="name";

cmb_docname.ValueMember="ID";

//添加员工表中所有员工的信息,绑定到预约医生ComboBox控件中

DataSetgetappointdocds=myoperate.getds("selectID,namefromemployee","employee");

cmb_appointdoc.DataSource=getappointdocds.Tables[0];

cmb_appointdoc.DisplayMember="name";

cmb_appointdoc.ValueMember="ID";

//添加挂号名称到ComboBox控件中

DataSetgetregnameds=myoperate.getds("selectnamefromdict_reg","dict_reg");

for(inti=0;i

{

this.cmb_regname.Items.Add(getregnameds.Tables[0].Rows[i][0]);

}

cmb_regname.SelectedIndex=0;

}

privatevoidSetControlFalse()

{

txt_balance.Enabled=false;

txt_birthday.Enabled=false;

txt_cardname.Enabled=false;

txt_celladdress.Enabled=false;

txt_cellphone.Enabled=false;

txt_email.Enabled=false;

txt_patientno.Enabled=false;

txt_sex.Enabled=false;

txt_sidno.Enabled=false;

txt_sidtype.Enabled=false;

}

privatevoidcmb_optype_SelectedIndexChanged(objectsender,EventArgse)

{

this.getname();

if(cmb_optype.SelectedItem.ToString()=="预约")

{

cmb_regname.Enabled=false;

cmb_regfee.Enabled=false;

}

if(cmb_optype.SelectedItem.ToString()=="预约挂号")

{

cmb_regname.Enabled=true;

cmb_regfee.Enabled=true;

}

if(cmb_optype.SelectedItem.ToString()=="现场挂号")

{

cmb_regname.Enabled=true;

cmb_regfee.Enabled=true;

}

}

privatevoidgetname()

{

if(cmb_optype.SelectedItem.ToString()=="预约")

{

cmb_name.Items.Clear();

DataSetgetnameds=myoperate.getds("selectnamefrompatient","patient");

for(inti=0;i

{

this.cmb_name.Items.Add(getnameds.Tables[0].Rows[i][0]);

}

}

if(cmb_optype.SelectedItem.ToString()=="预约挂号")

{

cmb_name.Items.Clear();

DataSetgetnameds=myoperate.getds("selectpatientnamefromappointmentwhereappointment_done=1","appoint");

for(inti=0;i

{

this.cmb_name.Items.Add(getnameds.Tables[0].Rows[i][0]);

}

}

if(cmb_optype.SelectedItem.ToString()=="现场挂号")

{

cmb_name.Items.Clear();

DataSetgetnameds=myoperate.getds("selectnamefrompatient","patient");

for(inti=0;i

{

this.cmb_name.Items.Add(getnameds.Tables[0].Rows[i][0]);

}

}

}

privatevoidcmb_name_SelectedIndexChanged(objectsender,EventArgse)

{

if(cmb_optype.SelectedItem.ToString()=="挂号")

{

stringtempstr=cmb_name.Text;

DataSetchanagenameds=myoperate.getds("select*frompatientwherename='"+tempstr+"'","patient");

txt_sidtype.Text=chanagenameds.Tables[0].Rows[0]["sidtype"].ToString();

txt_sidno.Text=chanagenameds.Tables[0].Rows[0]["sidno"].ToString();

txt_sex.Text=chanagenameds.Tables[0].Rows[0]["sex"].ToString();

txt_patientno.Text=chanagenameds.Tables[0].Rows[0]["patientno"].ToString();

txt_email.Text=chanagenameds.Tables[0].Rows[0]["e_mail"].ToString();

txt_cellphone.Text=chanagenameds.Tables[0].Rows[0]["cellphone"].ToString();

txt_celladdress.Text=chanagenameds.Tables[0].Rows[0]["celladdres

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

当前位置:首页 > 考试认证 > 其它考试

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

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