实践目的
以实际项目为导向,由指导老师带领,综合运用已经掌握的专业知识,进一步熟悉ASP.NET系统开发,并逐步掌握企业级ASP.NET项目的开发方法,在此基础上,达到以下目标:
训练系统设计与开发的整体思想
提高编写程序、调试程序的能力
按规范形式编写技术文档
培养独立学习习惯
培养团队协作能力
实践内容
题目:基于ASP.NET 4.5的医院信息管理系统
主要内容:运用ASP.NET WEB应用开发技术,根据使用计算机进行医院信息化管理的需求,进行系统设计和开发,实现以下功能:
(1) 导医服务
(2) 医生服务
(3) 药房管理
(4) 门诊统计
(5) 系统设置
(6) 单据打印
学号
姓名
备注
分工情况
组长
参与整体设计,负责InterService层和WebUI层
组员
参与整体设计,负责AccessTask层和Entity类
组员
组员
组员
组员
实践记录
实践记录:第一周,8学时,厚德楼B608
1.XXX
本周,讨论选题,经过组内的多次交流,确定选题为医院信息管理系统。本人完成了数据库及数据表的设计,以及登录界面和母版页的设计及编写。
HospitalManage.mdf数据库存储了医护人员、病人、药品等信息。
(1)医护人员数据表HospitalDT及填充数据。

(2)病人数据表PatientDT及填充数据。

(3)药品数据表MedicineDT及填充数据。

登录界面从业务逻辑层获取登录的医护人员姓名,验证输入合法性后提示欢迎语。


母版页利用Bootstrap实现下拉菜单,留白部分使用ContentPlaceHolder控件。



2.XXX
本周,讨论选题,经过组内的多次交流,确定选题为医院信息管理系统。本人完成了六大模块具体功能的设计,以及Entity三个实体类User、Patient、Medicine的编写。
根据实际情况以及所学知识,确定本系统具备功能如下图所示:

Entity类参考三个数据表的字段,实现对应的属性及方法的获取及设置。
(1)医护人员类User.cs包括人员编号hosId、人员姓名hosName、人员科室hosRoom。

(2)病人类Patient.cs包括病人身份证号patId、病人姓名patName、病人年龄patAge、病人性别patSex、病人地址patPlace、待缴药费notPaid。

(3)药品类Medicine.cs包括药品编号medNum、药品名称medName、药品单价medPrice、药品数量medCount。

-----------------------------------------------------------------------
实践记录:第二周,8学时,厚德楼B608
1.XXX
本周,讨论逻辑,确定并实现各个模块功能。本人完成了WebUI各个界面的编写及调用后台InterService函数的代码编写。
病人信息:

病人预约:

病人缴费:

医令单:

药品资料:

退药入库:

药品开出:

修改颜色:

模拟打印:

业务逻辑层:

2.XXX
本周,讨论逻辑,确定并实现各个模块功能。本人完成了AccessTask层与数据库交互的DBTask类的编写。
(1)登录界面判断用户是否为医护人员。

(2)病人资料界面将病人信息添加到数据表PatientDT中,并返回数据集给前端。

(3)病人预约界面将选中的医师对应的编号添加到数据表PatientDT中。

(4)缴费管理界面中获取用户选择的药品对应的价格。

(5)药品开出及退药入库界面中计算最后的药品数量,修改数据库并返回数据集。

(6)科室人员界面中返回数据表HospitalDT所有数据的数据集。

-----------------------------------------------------------------------
实践记录:第三周,8学时,厚德楼B608
1.XXX
本周,按三层结构整合程序,整理课程设计说明书及实践报告。本人完成了增加WebUI层的用户控件以及两份文档的整理。
登录:
母版页:
病人信息:
病人预约:
缴费管理:
医令单:
药品开出/退药入库:
药品资料/科室人员:
修改颜色:
模拟打印:
2.XXX
本周,按三层结构整合程序,整理课程设计说明书及实践报告。本人完成了增加登录后根据用户名对应的身份赋予菜单的不同使用权限以及部分文档的整理。



实践总结
1. 实践过程遇到的问题和解决办法
XXX:
问题1:初期框架搭建为MVC,因为相关概念不够清晰,导致项目搭建不起来。
解决:转换思维,改为三层架构,一步一步照着例子来,最后理解透彻并搭建项目。
问题2:通过alert函数弹框时希望加入后台数据。
解决:将Write函数里的参数提取出来,字符串拼接后再加入。
问题3:三层架构模式下,页面不知道如何显示后台数据库的全部数据。
解决:使用ToList函数将后台数据表返回为一个数据集,前端进行DataSource绑定。
XXX:
问题1:修改数据库数据表属性后, LINQ to SQL类没有及时更新,导致编译错误。
解决:重新导入该类即可。
问题2:使用JavaScript无法获取HTML控件实现权限管理。
解决:利用数据访问层保留的用户信息实现权限管理。
2. 系统总结
XXX:
本次实践活动总体而言比较顺利,前期因为架构问题迟迟没有进展,后来小组两人互相交流,进一步加深了对三层架构的理解,从而迅速将项目搭建起来。
系统功能相对完善,使用了LINQ、Bootstrap和JQuery等技术,页面美观,但还有可以完善的地方,比如登录后进入系统主界面,按返回键还是可以回到登录界面,暂时没有很好的解决办法。
系统本身功能还可以扩充,例如增加退出系统功能、医护人员排班表功能及新增医护人员、新增药品等功能,接下来将继续完善该系统。
XXX:
项目采用传统的MVC架构进行搭建,思路清晰,编码简练,但系统由于小组整体业务能力不是很好,不能较好地分析及完成人员管理模块的设计而没有实现医院工作人员的管理功能。