1、信息查询信息统计数据打印系统维护信息复制病人信息录入病人信息查询病人总费用统计病人信息打印批量复制病人治疗费用录入病人费用查询大类科编码维护病人药品费用录入专科编码维护病区编码维护治疗项目维护药品编码维护医生编码维护用户编码维护 表 学生成绩管理功能菜单二、数据库设计设计系统的数据库结构、数据表结构包含序号、数据项名、含义、数据项类型、长度、非空、索引、主键、外键、引用字段、数据来源等。1.大类科编码表Category表1 大类科编码表tblCategory序号字段名含义类型宽度小数主/外键1Cate_Id 大类科编码Varchar10PK2Cate_Name大类科名称203Cate_Dean
2、大类科主任2.专科编码表Spec表2 专科编码表tblSpec 主/外键关联表/字段Spec_Id专科编码Spec_Name专科名称30Spec_Cate所属大类科编码FKtblCategory / Cate_ID3.病区编码表Ward表3 病区编码表tblWardWard_Id病区编码Ward _Name病区名称Ward_Pos病区位置4Ward_Beds总床位数Int5Ward_Used已用床位数6Ward_Rest剩余床位数flaot7Ward_Head病区主任8Ward_Spec所属专科编码Varchar tblSpec / Spec_ID4.病人信息表Patient表4 病人信息表t
3、blPatientPat_Id住院号Pat_Bed 床位号50Pat_BedFee床位费moneyPat_Name病人姓名Pat_Sex性别编码tblSex / Sex_IDPat_Birth出生日期DatetimePat_Nation民族tblNation / Nation_IDPat_NtvPlc籍贯tblNtvPlc / NtvPlc_ID9Pat_Sympton病症Pat_Work工作单位11Pat_CharId身份证号4012Pat_WardtblWard / Ward_ID13Pat_ZipCode住宅邮编14Pat_Phone住宅电话15Pat_Addr户口地址16Pat_Adm
4、it入院日期17Pat_Leave出院日期18Pat_PayAd预交费19Pat_PaySum费用总额Pat_PayRest费用结余21Pat_Image病人照片Image5.性别编码表Sex表5 性别编码表tblSexSex_IdSex_Name性别6.民族编码表Nation表6 民族编码表tblNation主外键Nation_Id民族编码Nation_Name民族名称7.籍贯编码表NtvPlc表7 籍贯编码表tblNtvPlcNtvPlc_Id籍贯编码NtvPlc_Name籍贯名称8.治疗项目编码表Item表8 治疗项目编码表tblItemItem_Id项目编码Item_Name项目名称I
5、tem_Type项目类别Item_Wbm五笔码Item_Pym拼音码Item_PerPrice项目单价floatItem_Mark备注9.病人治疗项目费用表MedItem表9 病人治疗项目费用表tblMedItemMi_PatIdtblPatient / Pat_IdMi_ItemIdtblItem / Item_IDMi_Quantity数量Mi_Amount金额intMi_Date使用日期Mi_Time使用时间Mi_DocId医生编码tblDoctor / Doct_IdMi_Advice医嘱号10.药品编码表Medicine表10 药品编码表tblMedicineMed_Id药品编码Me
6、d_Wbm五笔编码Med_Pym拼音编码Med_Name药品名称Med_Spec药品规格Med_Unit计量单位Med_PerPrice药品单价Med_Expirydate药品有效期11.病人药品费用表MedFee表11 病人药品费用表tblMedFeeMf_PatIdMf_ItemIdtblMedicine / Med_IdMf_Unit药品单位Mf_ QuantityMf_AmountMf_DateMf_TimeMf_DocIdMf_Advice12.医生编码表Doctor主键表12 医生编码表tblDoctorDoct_IDDoct_Name医生名称Doct_SpectblSpec /
7、Spec_IdDoct_Ward所属病区编码tblWard / Ward_Id13.用户表User表13 用户表tblUserUser_ID用户名User_Psw用户密码User_Flag用户权限标志三、程序设计1.系统登录(主)图1 用户登录界面在登录界面的设计中,我采用的是有连接访问数据库,这样数据并发性问题更容易控制,数据也是当前的和及时更新的;此外还设有用户权限,权限不同登录成功后呈现出的主界面也不同;并且使用DataReader组件来以只读和仅转发的方式从数据源检索数据;核心代码如下:/有连接访问static string str = Data Source=ASUS-PCSQLEX
8、PRESS;Initial Catalog=Hospital;User Id=sa;Password=sa; SqlConnection con = new SqlConnection(str);private void btn_Login_Click(object sender, EventArgs e)string cmdStr = Select * From tblLogin Where User_Name=a and User_Pwd=b SqlCommand cmd = new SqlCommand(cmdStr, con); SqlParameter s1, s2; s1 = cm
9、d.Parameters.Add(a, SqlDbType.VarChar, 20); s2 = cmd.Parameters.Add(b s1.Value = txt_UserName.Text; s2.Value = txt_UserPwd.Text;/打开连接 con.Open();/定义SqlDataReader对象 SqlDataReader dr = cmd.ExecuteReader(); /只读的方式从数据源检索数据 if (dr.Read() /用户权限登录 Common.User_Flag = drUser_Flag.ToString(); /显示主窗体 Form_Main
10、 frm = new Form_Main(); frm.Show(); else MessageBox.Show(用户名或密码错误!);/关闭连接 con.Close();2.主界面(主)图2 医院住院信息管理系统在主界面设计,为了将所有界面以整体的方式全部实现出来,即执行一次就能看到全部效果,我在主界面添加了MenuStrip控件并且在MenuStrip控件上添加了MeauItem控件,双击MeauItem控件添加代码实现主/子窗体连接;而且把界面设计的漂亮、规范,我把Form窗体的IsMdiContainer属性设置为True,BackgroundImage属性导入一张图片,加入一个tim
11、er控件在statusStrip显示时间;此外涉及到用户权限问题,我在Form_Load事件中添加代码,用户权限不同登录后访问的主界面也不同。/单击主界面上住院病人药品费用录入时,将显示出住院病人药品费用录入的Form子窗体private void tsmiMfInput_Click(object sender, EventArgs e) Form_MedFee frm = new Form_MedFee(); frm.MdiParent = this; slbl_window.Text = 当前窗体: + frm.Text;/用户权限设置private void Form_Main_Load
12、(object sender, EventArgs e) /调用Common类的静态变量User_Flag,当用户权限为0时,系统维护界面失效,但可见 if (Common.User_Flag = 0) /系统维护界面失效 MenuMaintain.Enabled = false;/timer控件显示时间private void timer1_Tick(object sender, EventArgs e) slbl_time.Text = 日期:时间: + Convert.ToString(DateTime.Now); /单击主界面上住院病人总费用录入时,将显示出住院病人总费用录入的Form
13、子窗体private void 住院病人总费用统计ToolStripMenuItem_Click(object sender, EventArgs e) Form_FeeStat frm = new Form_FeeStat();/单击主界面上批量复制时,将显示出批量复制的Form子窗体private void toolStripButton1_Click(object sender, EventArgs e) Form_Copy frm = new Form_Copy(); /单击主界面上住院病人信息打印时,将显示出住院病人信息打印的Form子窗体private void tsmiPatPi
14、nt_Click(object sender, EventArgs e) Form_PatBb frm = new Form_PatBb();3.病人信息录入(次)图3 病人信息录入 病人信息用于对病人信息的录入、查询和显示等操作,并且可以插入病人照片。主要代码如下:while (myReader.Read() file = new FileStream(savedImageName, FileMode.OpenOrCreate, FileAccess.Write); bw = new BinaryWriter(file); startIndex = 0;/读取的起点位置 retval = m
15、yReader.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 住院病人信息查询从数据库中将病人信息和费用显示到前台,让病人
16、及时了解自己的个人信息。代码:private void cbo_Cate_SelectedIndexChanged(object sender, EventArgs e) /无连接访问实现专科表和大类科表的绑定 string cmdStr = Select * From tblSpec where Spec_Cate=a SqlParameter s1;, SqlDbType.VarChar, 2); s1.Value = cbo_Cate.SelectedValue.ToString(); SqlDataAdapter dp = new SqlDataAdapter(); dp.SelectCommand = cmd; DataSet ds = new DataSet(); dp.Fill(ds, Spec cbo_Spec.DataSource = ds.Tables; if (ds.Tables.Rows.Count = 0) cbo_Spec.DisplayMember = cbo_Spec.ValueMember = Spec_NameSpec_Id 5.住院病人总费用统计(次)图5 住院病人总费用统计 住院病人总费用统计时用于统计病人住院治疗等项目的总费
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2