基于MYSQL的医院综合信息管理系统设计报告.docx
《基于MYSQL的医院综合信息管理系统设计报告.docx》由会员分享,可在线阅读,更多相关《基于MYSQL的医院综合信息管理系统设计报告.docx(83页珍藏版)》请在冰豆网上搜索。
![基于MYSQL的医院综合信息管理系统设计报告.docx](https://file1.bdocx.com/fileroot1/2022-10/8/3884a3a1-f33d-4b18-9cd6-f628f0eeb68c/3884a3a1-f33d-4b18-9cd6-f628f0eeb68c1.gif)
基于MYSQL的医院综合信息管理系统设计报告
数据库实验报告
医院综合信息管理系统
专业
班级
组长
组员
指导教师
容提要:
本系统是一个基于MYSQL而建立的医院综合信息管理系统。
用MicrosoftVisualStudio2010结合MYSQL开发了3个模块。
包括有人员信息管理,门诊信息管理,收费信息管理。
其中人员信息管理其中有医生信息管理,病人信息管理和药品信息管理。
门诊信息管理其中则含有就诊信息管理,病人处方管理。
这3模块基本实现了医院综合信息管理系统的需求。
【关键词】:
MicrosoftVisualStudio2010,MYSQL,人员信息管理,门诊信息管理,收费信息管理
一、需求分析:
整个医院综合信息管理系统可分为三个子系统:
人员信息管理系统,门诊信息管理系统,收费信息管理系统。
1.1人员信息管理系统
人员信息管理即对于人和物品的管理,人则包含医生及医护人员,就诊病人,还有药品等。
我们需要对他们的基本信息进行记录,并且还要具有增加,删除,修改,查询等基本功能,所以我建立了一个基本信息管理模块来专门处理。
我也在数据库中对应了三表:
doctor,patient,durg以便对人员信息管理信息进行存储。
1.2门诊信息管理系统
对于就诊信息的管理,病人看病后会产生新的数据,例如医生对病人的诊断信息,以及药品处方信息。
而与其对应的则是我做的门诊信息管理,其中我做了两个窗口,一个是诊断信息窗口,主要实现对诊断信息的储存;另一个是处方信息窗口,有增加、删除、修改药品等功能。
然后我另做了一个查询的窗口,以便病人查询自己的处方记录。
对应数据库,我做了两表:
diagnosis,prescription。
1.3收费信息管理系统
对于收费信息管理,病人拿到处方后,就会取药,付款。
则我需要对其总价进行计算,再者就是对于药品库存进行修改。
于是对应要求我做了一个收费前台。
虽然在数据库中没有对应相应的表。
可是它的操作主要是对prescription的读取,以及对durg库存的修改。
二、系统分析:
整个医院综合信息管理系统可分为三个子系统:
人员信息管理系统,门诊信息管理系统,收费信息管理系统。
2.1系统功能介绍
2.1.1人员信息管理系统的功能
对医生、病人、药品的基本信息进行增加,删除,修改,查询等的基本功能
2.1.2门诊信息管理系统的功能
对就诊信息的存储功能和对处方信息进行增加、删除、修改药品等的基本功能
3.2.3收费信息管理系统
对医疗费用进行总和计算的功能和对药品库存进行修改的功能
2.2功能模块
系统主要功能模块图如下:
医院综合信息管理系统
人员信息管理系统
门诊信息管理系统
收费信息管理系统
医生信息管理
病人信息管理
药品信息管理
就诊信息管理
病人处方管理
收费信息管理
药品库存管理
三、数据库设计:
3.1E-R图:
3.1.1医生信息doctorE-R图
3.1.2病人信息patientE-R图
name
sex
age
patientno
no
phone
patient
3.1.3药品信息drugE-R图
drug
drugno
no
name
no
price
no
inventory
no
3.1.4诊断信息diagnosisE-R图
3.1.5处方信息prescriptionE-R图
3.1.6实体间主要关系E-R图
Doctor
Paitient
Durg
Diagnosis
Prescription
N
1
1
1
1
1
1
1
3.2数据字典:
表1:
doctor:
表2:
patient
表3:
durg
表4:
diagnosis
表5:
prescription
四、前台设计:
4.1.医生信息管理:
4.2.病人信息管理:
4.3.药品信息管理:
4.4.诊断界面:
4.5.处方界面:
4.6.病人处方查询:
4.7.收费信息管理:
五、程序调试结果:
1.主界面:
2.添加功能:
实现代码:
voidCEmployeeDlg:
:
OnBnClickedOk()
{
//TODO:
在此添加控件通知处理程序代码
//CDialogEx:
:
OnOK();
UpdateData(true);
if(m_number.IsEmpty())
{
MessageBox(CString("编号不能为空”));
return;
}
if(m_name.IsEmpty())
{
MessageBox(CString("名称不能为空!
"));
return;
}
if(m_idcard.IsEmpty())
{
MessageBox(CString("省份证不能为空!
"));
return;
}
CADOConnm_AdoConn;
m_AdoConn.OnInitADOConn();
_bstr_tsql;
sql="select*fromdoctor";
_RecordsetPtrm_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(sql);
try
{
m_pRecordset->AddNew();//添加新行
m_pRecordset->PutCollect("employeeno",(_bstr_t)m_number);
m_pRecordset->PutCollect("name",(_bstr_t)m_name);
m_pRecordset->PutCollect("sex",(_bstr_t)m_sex);
m_pRecordset->PutCollect("age",(_bstr_t)m_age);
m_pRecordset->PutCollect("native",(_bstr_t)m_native);
m_pRecordset->PutCollect("nation",(_bstr_t)m_nation);
m_pRecordset->PutCollect("office",(_bstr_t)m_office);
m_pRecordset->PutCollect("position",(_bstr_t)m_position);
m_pRecordset->PutCollect("idcard",(_bstr_t)m_idcard);
m_pRecordset->PutCollect("phone",(_bstr_t)m_phone);
m_pRecordset->Update();//更新数据库
m_AdoConn.ExitConnect();//断开数据库连接
}
catch(...)
{
MessageBox(CString("操作失败"));
return;
}
MessageBox(CString("保存成功"));
m_grid.DeleteAllItems();//删¦除grid中原来的数据
CStringstr;
str="select*fromdoctor";
AddToGrid(str);//重新遍历
}
2.修改功能:
实现代码:
voidCEmployeeDlg:
:
OnBnClickedChange()
{
//TODO:
在此添加控件通知处理程序代码
UpdateData(true);
CADOConnm_AdoConn;
m_AdoConn.OnInitADOConn();
CStringtempSql;
tempSql.Format(CString("UPDATE`mydb`.`doctor`SET`name`='%s',`sex`='%s',`age`='%s',`native`='%s',`nation`='%s',`office`='%s',`position`='%s',`idcard`='%s',`phone`='%s'WHERE`employeeno`='%s'"),m_name,m_sex,m_age,m_native,m_nation,m_office,m_position,m_idcard,m_phone,m_number);
m_AdoConn.ExecuteSQL((_bstr_t)tempSql);
m_AdoConn.ExitConnect();
MessageBox(CString("修改成功."));
m_grid.DeleteAllItems();//删除grid中原来的数据
CStringstr;
str="select*fromdoctor";
AddToGrid(str);//重新遍历
}
3.删除功能:
代码实现:
voidCEmployeeDlg:
:
OnBnClickedDelete()
{
//TODO:
在此添加控件通知处理程序代码
UpdateData(true);
CADOConnm_AdoConn;
m_AdoConn.OnInitADOConn();
CStringtempSql;
tempSql.Format(CString("deletefromdoctorwhereemployeeno='%s'"),m_number);
CStringtenpstr;
tenpstr.Format(CString("是否要删除%s的记录"),m_name);
if(MessageBox(tenpstr,CString("提示"),MB_OKCANCEL)==IDOK)
{
m_AdoConn.ExecuteSQL((_bstr_t)tempSql);
m_AdoConn.ExitConnect();
MessageBox(CString("删除成功."));
m_grid.DeleteAllItems();//删除grid中原来的数据
CStringstr;
str="select*fromdoctor";
AddToGrid(str);//重新遍历
}
}
4.查询功能:
实现代码:
voidCEmployeeDlg:
:
OnBnClickedSelect()
{
//TODO:
在此添加控件通知处理程序代码
m_grid.DeleteAllItems();
UpdateData(true);
CStringstr1,str2;
intnum1,num2;
num1=m_combo.GetCurSel();
if(0==num1)
{
GetDlgItem(IDC_EDIT_CONTENT)->GetWindowText(str1);
str2=CString("select*fromdoctorwhereemployeenolike")+CString("'")+str1+CString("'");
AddToGrid(str2);//遍历功能信息记录
}
if(1==num1)
{
GetDlgItem