基于MVC框架下的SSM医院预约挂号系统

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

今日思考,完成一个医院预约挂号系统项目,需要实现哪些功能?
此类项目常见描述如下:
目的大型综合医院门诊预约就诊自助流程的优化及功能设计。方法通过基于全流程构架的预约系统,利用统一预约挂号资源池和集中式数据封装及调用机制等关键技术来实现门诊自助预约流程的优化。结果在现有业务基础上,增加了患者的预约就诊途径,规范预约数据资源平台,降低数据接口成本,有效的提升了医院信息化水平和效率。结论全流程的统一构架预约平台在门诊信息化上的应用,更加有效的实现了各预约平台间的数据及消息松耦合,为患者提供了更高效、优质的服务,同时规范了各大数据平台间的数据接口和流程。
SSM(MYECLIPSE)框架及其适合本类项目,使用MVC的思想可以极大程度减少重复工作量。和SSM(MYECLIPSE)框架最配的开发工具是MYECLIPSE。MYECLIPSE集成了大量插件,可以更好的使用SSM(MYECLIPSE)进行项目的开发,使得项目开发时事半功倍。
通过对医院预约挂号系统系统的仔细分析,可以得出医院预约挂号系统系统是一个 后台项目。
在这样一个项目中,系统的登录角色是必不可少的,对每个登录角色设置账号、密码。以确保系统可以正常登录使用。SSM(MYECLIPSE)项目中包含的登录角色有管理员、医生、病人。
医生的存在是为了能更好的结合系统的功能。科室表的联系在这张表中得以体现,其关联关系为医生的科室与科室的mingcheng字段对应、医生的科室id与科室的id字段对应
。在系统的功能中,预约是一个重要的表。这个表使得病人、医生关联了起来。在预约表中预约的病人与病人的mingzi字段对应、预约的病人id与病人的id字段对应、预约的医生与医生的mingzi字段对应、预约的医生id与医生的id字段对应
,他们拥有关联关系。

总结得出该系统所有数据为:管理员(admin)、医生(yisheng)、病人(bingren)、预约(yuyue)、科室(keshi)

管理员表

字段名 | 类型 | 属性 | 描述
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) | | 密码
xingbie | VARCHAR(255) | | 性别
nianling | VARCHAR(255) | | 年龄
jieshao | VARCHAR(255) | | 介绍
keshi | VARCHAR(255) | | 科室
keshiid | VARCHAR(255) | | 科室id

病人表

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

预约表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 预约id
bingren | VARCHAR(255) | | 病人
bingrenid | VARCHAR(255) | | 病人id
yishneg | VARCHAR(255) | | 医生
yishengid | VARCHAR(255) | | 医生id
yuyueshijian | VARCHAR(255) | | 预约时间
zhuangtai | VARCHAR(255) | | 状态

科室表

字段名 | 类型 | 属性 | 描述
id | INT(11) | PRIMARY KEY | 科室id
mingcheng | VARCHAR(255) | | 名称
SET FOREIGN_KEY_CHECKS=0;

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

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

-- Table structure for ggyiyuaanyuyue

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

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 '密码',`xingbie` VARCHAR(255) DEFAULT NULL COMMENT '性别',`nianling` VARCHAR(255) DEFAULT NULL COMMENT '年龄',`jieshao` VARCHAR(5000) DEFAULT NULL COMMENT '介绍',`keshi` VARCHAR(255) DEFAULT NULL COMMENT '科室',`keshiid` INT(11) DEFAULT NULL COMMENT '科室id',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 '密码',`jieshao` VARCHAR(5000) 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_yuyue`;

CREATE TABLE `t_yuyue` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '预约id',`bingren` VARCHAR(255) DEFAULT NULL COMMENT '病人',`bingrenid` INT(11) DEFAULT NULL COMMENT '病人id',`yishneg` VARCHAR(255) DEFAULT NULL COMMENT '医生',`yishengid` INT(11) DEFAULT NULL COMMENT '医生id',`yuyueshijian` VARCHAR(255) DEFAULT NULL COMMENT '预约时间',`zhuangtai` VARCHAR(255) DEFAULT NULL COMMENT '状态',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='预约';

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

DROP TABLE IF EXISTS `t_keshi`;

CREATE TABLE `t_keshi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '科室id',`mingcheng` VARCHAR(255) DEFAULT NULL COMMENT '名称',PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='科室';

添加病人模块:

从页面中通过post方法,将病人信息传入到后台服务器中,在tianjiabingrenact

中接收,字段包括名字,账号,密码,介绍,性别,年龄使用insert方法添加数据,将数据同步到

数据库中,完成添加操作。定义添加成功提示信息,添加病人成功,并保存到request中具体代码如下:

通过bingrendao的insert方法将页面传输的病人添加到数据库中 bingrendao.insert(bingren);

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

返回病人管理界面

return "forward:/tianjiabingren.action";

查询病人模块:

在浏览器中进入病人查询页面时,此时浏览器的地址栏为bingrenguanli.action,该地址将响应bingrenController类中的bingrenguanli,在该方法中,通过selectByexample方法获取所有的病人信息,并将该信息保存到request中,在页面进行循环展示。该部分核心代码如下:

生成病人样例类,通过example定义查询条件 BingrenExample example = new BingrenExample();

通过bingrendao的selectByExample方法查询出所有的病人信息 List bingrenall = bingrendao.selectByExample(example);

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

返回病人管理界面

return "forward:/bingrenguanli.action";

修改病人模块:

对已经上传的病人信息可以进行修改操作,该部分操作在病人管理界面中点击修改按钮可以跳转到病人修改页面。在修改页面中,将初始化所有的病人字段信息,字段信息包括名字,账号,密码,介绍,性别,年龄。字段信息内容通过病人id获取。修改后的信息传入到bingrenController中接收为bingren。在bingrenController中包含有提前定义好的bingrendao,该参数为bingrenMapper是实现。bingrenMapper中定义了修改方法,此处使用修改方法为updateByPrimaryKeySelective,该方法可以将修改后信息同步到数据库中,最终将修改成功信息返回页面中。该部分代码如下:

通过bingrendao的修改方法根据id修改对应的病人 bingrendao.updateByPrimaryKeySelective(bingren);

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

返回病人管理界面

return "forward:/bingrenguanli.action";

删除病人模块:

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

通过bingrendao的删除方法根据id删除对应的病人 bingrendao.deleteByPrimaryKey(id);

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

返回病人管理界面

return "forward:/bingrenguanli.action";

猜你喜欢

转载自www.cnblogs.com/bzls/p/11599264.html