医院管理系统课程设计方案Word文档下载推荐.docx
《医院管理系统课程设计方案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《医院管理系统课程设计方案Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
信息查询
信息统计
数据打印
系统维护
信息复制
病人信息录入
病人信息查询
病人总费用统计
病人信息打印
批量复制
病人治疗费用录入
病人费用查询
大类科编码维护
病人药品费用录入
专科编码维护
病区编码维护
治疗项目维护
药品编码维护
医生编码维护
用户编码维护
表学生成绩管理功能菜单
二、数据库设计
设计系统的数据库结构、数据表结构包含序号、数据项名、含义、数据项类型、长度、非空、索引、主键、外键、引用字段、数据来源等。
1.大类科编码表Category
表1大类科编码表tblCategory
序号
字段名
含义
类型
宽度
小数
主/外键
1
Cate_Id
大类科编码
Varchar
10
PK
2
Cate_Name
大类科名称
20
3
Cate_Dean
大类科主任
2.专科编码表Spec
表2专科编码表tblSpec
主/外键
关联表/字段
Spec_Id
专科编码
Spec_Name
专科名称
30
Spec_Cate
所属大类科编码
FK
tblCategory/Cate_ID
3.病区编码表Ward
表3病区编码表tblWard
Ward_Id
病区编码
Ward_Name
病区名称
Ward_Pos
病区位置
4
Ward_Beds
总床位数
Int
5
Ward_Used
已用床位数
6
Ward_Rest
剩余床位数
flaot
7
Ward_Head
病区主任
8
Ward_Spec
所属专科编码
Varchar
tblSpec/Spec_ID
4.病人信息表Patient
表4病人信息表tblPatient
Pat_Id
住院号
Pat_Bed
床位号
50
Pat_BedFee
床位费
money
Pat_Name
病人姓名
Pat_Sex
性别编码
tblSex/Sex_ID
Pat_Birth
出生日期
Datetime
Pat_Nation
民族
tblNation/Nation_ID
Pat_NtvPlc
籍贯
tblNtvPlc/NtvPlc_ID
9
Pat_Sympton
病症
Pat_Work
工作单位
11
Pat_CharId
身份证号
40
12
Pat_Ward
tblWard/Ward_ID
13
Pat_ZipCode
住宅邮编
14
Pat_Phone
住宅电话
15
Pat_Addr
户口地址
16
Pat_Admit
入院日期
17
Pat_Leave
出院日期
18
Pat_PayAd
预交费
19
Pat_PaySum
费用总额
Pat_PayRest
费用结余
21
Pat_Image
病人照片
Image
5.性别编码表Sex
表5性别编码表tblSex
Sex_Id
Sex_Name
性别
6.民族编码表Nation
表6民族编码表tblNation
主外键
Nation_Id
民族编码
Nation_Name
民族名称
7.籍贯编码表NtvPlc
表7籍贯编码表tblNtvPlc
NtvPlc_Id
籍贯编码
NtvPlc_Name
籍贯名称
8.治疗项目编码表Item
表8治疗项目编码表tblItem
Item_Id
项目编码
Item_Name
项目名称
Item_Type
项目类别
Item_Wbm
五笔码
Item_Pym
拼音码
Item_PerPrice
项目单价
float
Item_Mark
备注
9.病人治疗项目费用表MedItem
表9病人治疗项目费用表tblMedItem
Mi_PatId
tblPatient/Pat_Id
Mi_ItemId
tblItem/Item_ID
Mi_Quantity
数量
Mi_Amount
金额
int
Mi_Date
使用日期
Mi_Time
使用时间
Mi_DocId
医生编码
tblDoctor/Doct_Id
Mi_Advice
医嘱号
10.药品编码表Medicine
表10药品编码表tblMedicine
Med_Id
药品编码
Med_Wbm
五笔编码
Med_Pym
拼音编码
Med_Name
药品名称
Med_Spec
药品规格
Med_Unit
计量单位
Med_PerPrice
药品单价
Med_Expirydate
药品有效期
11.病人药品费用表MedFee
表11病人药品费用表tblMedFee
Mf_PatId
Mf_ItemId
tblMedicine/Med_Id
Mf_Unit
药品单位
Mf_Quantity
Mf_Amount
Mf_Date
Mf_Time
Mf_DocId
Mf_Advice
12.医生编码表Doctor
主键
表12医生编码表tblDoctor
Doct_ID
Doct_Name
医生名称
Doct_Spec
tblSpec/Spec_Id
Doct_Ward
所属病区编码
tblWard/Ward_Id
13.用户表User
表13用户表tblUser
User_ID
用户名
User_Psw
用户密码
User_Flag
用户权限标志
三、程序设计
1.系统登录(主)
图1用户登录界面
在登录界面的设计中,我采用的是有连接访问数据库,这样数据并发性问题更容易控制,数据也是当前的和及时更新的;
此外还设有用户权限,权限不同登录成功后呈现出的主界面也不同;
并且使用DataReader组件来以只读和仅转发的方式从数据源检索数据;
核心代码如下:
//有连接访问
staticstringstr="
DataSource=ASUS-PC\\SQLEXPRESS;
InitialCatalog=Hospital;
UserId=sa;
Password=sa"
;
SqlConnectioncon=newSqlConnection(str);
privatevoidbtn_Login_Click(objectsender,EventArgse)
{
stringcmdStr="
Select*FromtblLoginWhereUser_Name=@aandUser_Pwd=@b"
SqlCommandcmd=newSqlCommand(cmdStr,con);
SqlParameters1,s2;
s1=cmd.Parameters.Add("
@a"
SqlDbType.VarChar,20);
s2=cmd.Parameters.Add("
@b"
s1.Value=txt_UserName.Text;
s2.Value=txt_UserPwd.Text;
//打开连接
con.Open();
//定义SqlDataReader对象
SqlDataReaderdr=cmd.ExecuteReader();
//只读的方式从数据源检索数据
if(dr.Read())
{
//用户权限登录
Common.User_Flag=dr["
User_Flag"
].ToString();
//显示主窗体
Form_Mainfrm=newForm_Main();
frm.Show();
}
else
MessageBox.Show("
用户名或密码错误!
"
);
//关闭连接
con.Close();
}
2.主界面(主)
图2医院住院信息管理系统
在主界面设计,为了将所有界面以整体的方式全部实现出来,即执行一次就能看到全部效果,我在主界面添加了MenuStrip控件并且在MenuStrip控件上添加了MeauItem控件,双击MeauItem控件添加代码实现主/子窗体连接;
而且把界面设计的漂亮、规范,我把Form窗体的IsMdiContainer属性设置为True,BackgroundImage属性导入一张图片,加入一个timer控件在statusStrip显示时间;
此外涉及到用户权限问题,我在Form_Load事件中添加代码,用户权限不同登录后访问的主界面也不同。
//单击主界面上住院病人药品费用录入时,将显示出住院病人药品费用录入的Form子窗体
privatevoidtsmiMfInput_Click(objectsender,EventArgse)
Form_MedFeefrm=newForm_MedFee();
frm.MdiParent=this;
slbl_window.Text="
当前窗体:
+frm.Text;
}
//用户权限设置
privatevoidForm_Main_Load(objectsender,EventArgse)
//调用Common类的静态变量User_Flag,当用户权限为0时,系统维护界面失效,但可见
if(Common.User_Flag=="
0"
)
//系统维护界面失效
MenuMaintain.Enabled=false;
//timer控件显示时间
privatevoidtimer1_Tick(objectsender,EventArgse)
slbl_time.Text="
日期:
时间:
+Convert.ToString(DateTime.Now);
//单击主界面上住院病人总费用录入时,将显示出住院病人总费用录入的Form子窗体
privatevoid住院病人总费用统计ToolStripMenuItem_Click(objectsender,EventArgse)
Form_FeeStatfrm=newForm_FeeStat();
//单击主界面上批量复制时,将显示出批量复制的Form子窗体
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
Form_Copyfrm=newForm_Copy();
}
//单击主界面上住院病人信息打印时,将显示出住院病人信息打印的Form子窗体
privatevoidtsmiPatPint_Click(objectsender,EventArgse)
Form_PatBbfrm=newForm_PatBb();
3.病人信息录入(次)
图3病人信息录入
病人信息用于对病人信息的录入、查询和显示等操作,并且可以插入病人照片。
主要代码如下:
while(myReader.Read())
file=newFileStream(savedImageName,FileMode.OpenOrCreate,FileAccess.Write);
bw=newBinaryWriter(file);
startIndex=0;
//读取的起点位置
retval=myReader.GetBytes(0,startIndex,outbyte,0,bufferSize);
//返回实际读取的字节数
//当图片大小大于或等于数组大小时,需分块写入到文件中
while(retval==bufferSize)
bw.Write(outbyte);
bw.Flush();
startIndex+=bufferSize;
//重置读取的起点位置
}
bw.Write(outbyte,0,(int)retval-1);
bw.Close();
file.Close();
4.住院病人信息查询(次)
图4住院病人信息查询
从数据库中将病人信息和费用显示到前台,让病人及时了解自己的个人信息。
代码:
privatevoidcbo_Cate_SelectedIndexChanged(objectsender,EventArgse)
{//无连接访问实现专科表和大类科表的绑定
stringcmdStr="
Select*FromtblSpecwhereSpec_Cate=@a"
SqlParameters1;
SqlDbType.VarChar,2);
s1.Value=cbo_Cate.SelectedValue.ToString();
SqlDataAdapterdp=newSqlDataAdapter();
dp.SelectCommand=cmd;
DataSetds=newDataSet();
dp.Fill(ds,"
Spec"
cbo_Spec.DataSource=ds.Tables["
];
if(ds.Tables["
].Rows.Count==0)
cbo_Spec.DisplayMember="
cbo_Spec.ValueMember="
Spec_Name"
Spec_Id"
}
5.住院病人总费用统计(次)
图5住院病人总费用统计
住院病人总费用统计时用于统计病人住院治疗等项目的总费