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

今天将为大家分析一个医院管理系统(信息化管理是医院提高服务质量、效率,降低运营成本的重要手段。HIS是实现医院信息化管理的途径之一,许多商业项目纷纷致力于HIS研究。然而,由于技术力量、项目多力量分散、经费、管理方式差异等原因造成HIS软件水平较低,难以通用化,全国没有一个较高水平、可广泛推广的医院管理软件包。鉴于此,本文采用J2EE技术规范,研究基于C/S模式的医院管理系统,主要工作及成果有: 1.在充分调研医院业务基础上,先对系统需求进行规格说明。然后,对系统功能进行规格说明,核心功能包括基本设置、导医服务、医师服务、药房服务、门诊统计、病房管理、住院统计、财务管理等。在功能规格基础上,规划系统详细设计方案,包括界面原型设计、系统功能设计、数据库设计等。 2.使用J2EE构建Web应用,内容包括:客户/服务器通信、客户响应处理、应用服务器构建和企业集成,系统结构采用MVC模式。使用Struts架构转发请求,对请求进行处理;以JSP/Servlet作为前台开发环境,并应用Taglib扩展JSP标记;以Javabean封装业务逻辑;),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。医院管理系统为一个 后台项目。
为了完成该系统,我们首先需要对该系统进行需求分析。一个医院管理系统应包含用户角色有管理员、医生、病人。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。
在系统的功能中,病历是一个重要的表。这个表使得病人关联了起来。在病历表中病历的病人与病人的mingzi字段对应、病历的病人id与病人的id字段对应
,他们拥有关联关系。

总结得出该系统所有数据为:管理员(admin)、医生(yisheng)、病人(bingren)、病历(bingli)、药方(yaofang)

管理员表

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

医生表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 医生id
mingzi | VARCHAR(255) | | 名字
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码
keshi | VARCHAR(255) | | 科室
jieshao | VARCHAR(255) | | 介绍

病人表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 病人id
mingzi | VARCHAR(255) | | 名字
username | VARCHAR(255) | | 账号
password | VARCHAR(255) | | 密码
xingbie | VARCHAR(255) | | 性别
nianling | VARCHAR(255) | | 年龄

病历表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 病历id
bingren | VARCHAR(255) | | 病人
bingrenid | VARCHAR(255) | | 病人id
shijian | VARCHAR(255) | | 时间
bingqing | VARCHAR(255) | | 病情

药方表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 药方id
bingren | VARCHAR(255) | | 病人
bingrenid | VARCHAR(255) | | 病人id
neirong | VARCHAR(255) | | 内容
jiage | VARCHAR(255) | | 价格
shijian | VARCHAR(255) | | 时间
SET FOREIGN_KEY_CHECKS=0;

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

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

-- Table structure for ggyiyuanguanli

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

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_yisheng`;

CREATE TABLE `t_yisheng` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '医生id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`keshi` VARCHAR(255) DEFAULT NULL COMMENT '科室',`jieshao` VARCHAR(5000) DEFAULT NULL COMMENT '介绍',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='医生';

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

DROP TABLE IF EXISTS `t_bingren`;

CREATE TABLE `t_bingren` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '病人id',`mingzi` VARCHAR(255) DEFAULT NULL COMMENT '名字',`username` VARCHAR(255) DEFAULT NULL COMMENT '账号',`password` VARCHAR(255) DEFAULT NULL COMMENT '密码',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT '性别',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='病人';

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

DROP TABLE IF EXISTS `t_bingli`;

CREATE TABLE `t_bingli` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '病历id',`bingren` VARCHAR(255) DEFAULT NULL COMMENT '病人',`bingrenid` INT(11) DEFAULT NULL COMMENT '病人id',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',`bingqing` VARCHAR(5000) DEFAULT NULL COMMENT '病情',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='病历';

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

DROP TABLE IF EXISTS `t_yaofang`;

CREATE TABLE `t_yaofang` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '药方id',`bingren` VARCHAR(255) DEFAULT NULL COMMENT '病人',`bingrenid` INT(11) DEFAULT NULL COMMENT '病人id',`neirong` VARCHAR(5000) DEFAULT NULL COMMENT '内容',`jiage` VARCHAR(255) DEFAULT NULL COMMENT '价格',`shijian` VARCHAR(255) DEFAULT NULL COMMENT '时间',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='药方';

添加药方模块:

系统中存在添加药方功能,通过点击添加药方可以跳转到该功能模块,在该功能模块中,填写对应的药方信息。药方包含信息病人,病人id,内容,价格,时间,填写完所有信息后,通过post方法将数据提交到tianjiayaofang.action中,该地址将在服务器中yaofangController类中的tianjiayaofangact方法中进行响应。响应结果为,获取所有的药方信息,封装一个yaofang类,使用yaofangController类中定义的yaofangdao的insert方法,将药方数据插入到数据库的yaofang表中。并给出用户提示信息,添加药方成功,将该信息保存到request的message中,该信息将在页面中进行展示。该部分核心代码如下:

通过yaofangdao的insert方法将页面传输的药方添加到数据库中 yaofangdao.insert(yaofang);

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

返回药方管理界面

return "forward:/tianjiayaofang.action";

查询药方模块:

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

生成药方样例类,通过example定义查询条件 YaofangExample example = new YaofangExample();

通过yaofangdao的selectByExample方法查询出所有的药方信息 List yaofangall = yaofangdao.selectByExample(example);

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

返回药方管理界面

return "forward:/yaofangguanli.action";

修改药方模块:

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

通过yaofangdao的修改方法根据id修改对应的药方 yaofangdao.updateByPrimaryKeySelective(yaofang);

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

返回药方管理界面

return "forward:/yaofangguanli.action";

删除药方模块:

删除药方功能的实现方式为,通过点击删除药方按钮,向服务器发起get请求。请求中包含药方的id信息,在yaofangController中使用int接受该id,并将该id传入yaofangdao的deleteByPrimaryKey方法中。该方法的作用为根据id删除对应药方。最后将删除药方成功的信息返回页面,该部分核心代码如下:

通过yaofangdao的删除方法根据id删除对应的药方 yaofangdao.deleteByPrimaryKey(id);

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

返回药方管理界面

return "forward:/yaofangguanli.action";

01-23 21:42