每天记录学习,每天会有好心情。*^_^*

今日思考,完成一个医院血库管理系统项目,需要实现哪些功能?
此类项目常见描述如下:
目前,大多数医院血库仍然重复着从取血-配血-发血的简单过程,部分县及市级二级甲等医院甚至还没有真正意义上的血库.有文献报道,应用计算机对血库进行分类管理但不够全面系统[1,2].随着医疗纠纷举证制度的逐步实施,建立一套切实可行的血库全面管理系统已迫在眉睫,不但对防范上述诸多问题的发生、发展具有一道良好的屏障作用,而且对于提高临床输血的安全性、降低输血差错率、提升医院的整体医疗质量均大有裨益.
SSM(MYECLIPSE)框架及其适合本类项目,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对医院血库管理系统系统的仔细分析,可以得出医院血库管理系统系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员。
进销量的存在是为了能更好的结合系统的功能。血库表的联系在这张表中得以体现,其关联关系为进销量的血库与血库的xuexing字段对应

总结得出该系统所有数据为:管理员(admin)、血库(xueku)、进销量(jinxiaoliang)

管理员表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 管理员id
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码

血库表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 血库id
xuexing | VARCHAR(255) | | 血型
kucun | VARCHAR(255) | | 库存
shijian | VARCHAR(255) | | 时间

进销量表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 进销量id
xueku | VARCHAR(255) | | 血库
leixing | VARCHAR(255) | | 类型
xueliang | VARCHAR(255) | | 血量
shijian | VARCHAR(255) | | 时间
shuoming | VARCHAR(255) | | 说明
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggxuekuguanli

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '管理员id',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='管理员';

-- ----------------------------

DROP TABLE IF EXISTS `t_xueku`;

CREATE TABLE `t_xueku` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '血库id',`xuexing` VARCHAR(255) DEFAULT NULL COMMENT '血型',`kucun` VARCHAR(255) DEFAULT NULL COMMENT '库存',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='血库';

-- ----------------------------

DROP TABLE IF EXISTS `t_jinxiaoliang`;

CREATE TABLE `t_jinxiaoliang` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '进销量id',`xueku` VARCHAR(255) DEFAULT NULL COMMENT '血库',`leixing` VARCHAR(255) DEFAULT NULL COMMENT '类型',`xueliang` VARCHAR(255) DEFAULT NULL COMMENT '血量',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`shuoming` VARCHAR(255) DEFAULT NULL COMMENT '说明',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='进销量';

添加血库模块:

通过添加血库模块,可以完成血库的添加操作。在页面中跳转到添加血库页面,输入血库的所有信息,点击添加操作,可以将血库数据以post提交到xuekuController中。血库所包含的字段信息包括血型,库存,时间。在xuekuController中通过定义xueku接受所有的血库参数。使用xuekudao的insert方法将xueku实体插入到数据库中。完成数据的添加操作,在xuekuMapper中匹配对应的xuekuxml完成插入sql语句的执行操作。该部分核心代码如下:

通过xuekudao的insert方法将页面传输的血库添加到数据库中 xuekudao.insert(xueku);

将添加血库成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加血库成功");

返回血库管理界面

return "forward:/tianjiaxueku.action";

查询血库模块:

血库的查询模块实现方式为,在页面中发起xuekuguanli.action请求。通过该请求,响应服务器xuekuController类中的xuekuguanli,在该方法中通过selectByexample进行数据的查询操作。将所有的血库信息查询后,保存到request中的xuekuall中,在页面中进行展示,返回xuekuguanli.jsp,该部分核心代码如下所示:

生成血库样例类,通过example定义查询条件 XuekuExample example = new XuekuExample();

通过xuekudao的selectByExample方法查询出所有的血库信息 List xuekuall = xuekudao.selectByExample(example);

将血库信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("xuekuall", xuekuall);

返回血库管理界面

return "forward:/xuekuguanli.action";

修改血库模块:

在页面完成血库的修改信息填写后,将该部分数据传入xiugaixueku.action地址,并通过post进行提交。提交后在xuekuController中通过xiugaixueku进行接收,将所有字段封装为一个血库实体。并将该实体传入xuekudao中的updateByPrimaryKeySelective方法中,在该方法中定义了通过血库id更新其余血库的字段,该部分字段包括血型,库存,时间,该部分核心代码如下所示:

通过xuekudao的修改方法根据id修改对应的血库 xuekudao.updateByPrimaryKeySelective(xueku);

将修改血库成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改血库信息成功");

返回血库管理界面

return "forward:/xuekuguanli.action";

删除血库模块:

删除血库功能实现在xuekuController中,实现方法为shanchuxueku。在页面中通过get方法shanchuxueku.action?Id的形式将需要删除的血库id上传到服务器中,响应对应的方法,调用xuekudao中的deleteByPrimaryKey方法,完成删除操作。将删除成功的提示信息返回到页面中,完成删除数据的操作。该部分核心代码:

通过xuekudao的删除方法根据id删除对应的血库 xuekudao.deleteByPrimaryKey(id);

将删除血库成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除血库成功");

返回血库管理界面

return "forward:/xuekuguanli.action";

02-14 03:28