基于Web的医院食堂订餐系统设计与实现
2023-10-25范诗帆程文志
范诗帆,程文志
(湖南科技学院信息工程学院,湖南 永州 425199)
0 引言
随着健康中国建设全面推进,健康中国行动稳步实施。据不完全统计,一直到2021年年末,全国医疗卫生机构总数达104.4万个[1-2]。在传统医院食堂订餐模式下,一方面,由于医生工作职业的特殊性,经常不能及时去医院食堂订餐和取餐,错过订餐的事件时有发生;另一方面,有些患者受到自身行动不便影响,也会对订餐造成影响。现在外卖行业的发展,在一定程度上确实能够缓解医院订餐和就餐压力,但是很多疾病对部分饮食有禁忌,患者盲目订外卖反而会影响健康。同时,由于食堂财务在核算的时候涉及多个类别,所以在有规模的食堂里财务的工作量一直都是只增不减,不仅造成数据准确性有偏差、数据留存性低的问题,也造成工作量大的问题[3-4]。另外,食品安全绝对是食堂重中之重的问题,怎样有效地对食品安全进行全方位的管控,如何帮助医院食堂进行改善将是医院需要重视的一个问题。
为了满足消费者多元化就餐需求,国内外很多企业都推出了网上订餐软件。美团外卖于2013年正式上线,业务囊括餐饮外卖、到店、生鲜团购等;“饿了么”为餐厅提供线上与线下运营一体化解决方案。网上订餐在国外同样流行,在英国有Uber Eats和Just Eat;美国比较流行的外卖平台有Seamless和Postmates。
综上所述,虽然不同的企业针对具体的应用场景开发出了适配度更高的订餐软件,但是目前国内外的订餐软件没有专门针对医院病人的订餐系统。本文设计了基于Web的医院食堂订餐系统,采用医院食堂网上订餐,针对医生或病人提供订单服务,不仅可以方便医生随时随地用餐,也能方便为病人定制餐饮和规避禁忌食物,医院食堂所面临的问题就能得到很好地解决。患者和医护人员能更加方便订餐和就餐,食堂可以精确进行备餐,从而减少食物浪费,还能方便食堂进行财务统计、进销存统计,减少了工作量。在疫情防控期间,避免了人流聚集,减少感染风险,在各大医院具有一定的推广意义和使用价值。
1 系统设计
1.1 系统架构设计
本系统的架构设计拟定采用MVC模式,它具备高内聚、低耦合的特性。MVC可以进行应用程序分层开发。它通过分离业务逻辑、数据与界面来编写代码,将大量业务逻辑收集到单个组件中,在改进界面及用户交互的同时,不必重写业务逻辑,从而减少了开发者编码的时间,提高了工作效率,团队分工更明确,提升了开发代码复用性和可维护性[5-7]。
如图1所示,在MVC设计中,模型是对数据和数据操作进行封装,并且实现数据逻辑处理。视图用于可视化模型数据并与用户交互,同时向控制器发送用户输入数据。控制器首先接收前台用户请求,再确定适当的模型处理请求,最后决定调用相应视图对返回的数据进行显示,它使视图与模型分离。
图1 MVC架构
1.2 B/S开发模式
医院食堂订餐系统是B/S为(浏览器/服务器)结构作为开发模式,如图2所示。在B/S结构中只需要安装一个服务器,客户端只需要选择浏览器进入订餐系统,用户端可以进行订餐、修改个人信息、订单管理等操作,管理员可以进行菜单管理、订单管理等操作。Web服务器可以处理用户请求,并与数据库进行交互。其维护方便,只需要更改网页、就可以实现全部用户的同步更新。分布性强,无需进行客户端的维护,只需要网络、浏览器,用户就能随时订餐。
图2 B/S开发模式结构
1.3 系统功能结构设计
系统进行需求分析。如图3所示,医院食堂订餐系统主要划分为前台用户子系统和后台管理员子系统,并划分了相应的功能模块。
图3 系统功能结构
2 系统功能实现
2.1 用户功能模块的实现
2.1.1 用户订餐
如图4所示,用户通过手机或电脑的浏览器,进入订餐系统,用户可以先浏览菜品,查看菜品详情。当用户预订时,系统会判断是否登录。如果没有登录,则会提示并引导用户进行登录或注册。选择完菜品后,填写订单详情,结算订单,最后提交订单。
图4 用户订餐流程
2.1.2 订单管理
在用户登录成功后,进入订单管理模块,用户可查看个人已配送和未配送订单。系统获取用户名保持在session,通过模型层在MySQL数据库中,查询订单数据,然后返回给控制器,控制器选择合适的视图显示用户订单。
2.1.3 意见反馈
无论是游客还是已注册用户,均可查看精选留言和发布意见。系统首先从MySQL数据库中查询留言,保存在session队列中,然后在相应界面显示精选留言。当用户输入留言后,点击提交,控制器会把数据传递到模型层,最终存储到数据库中。
2.2 管理员功能模块实现
2.2.1 菜单管理
系统在数据库查询所有菜品信息,并显示名称、价格等信息,管理员可对菜单进行删除或修改。菜品添加采用的是FCKeditor进行菜品详情编辑,点击提交后,可在后台对应的Java action中content参数获得管理员输入的菜品内容,并保存到数据库中。
2.2.2 营业信息查询
管理员分别可以通过选择日期、输入订单号或选择者日期区间,查询订单并可查看总计营业额。管理员在前端界面输入数据,通过模型层在MySQL数据库中进行查询,发送给控制器,最后控制器选择视图显示订单号,下单时间等信息并统计总营业额。
2.2.3 用户订单管理
管理员可查看用户未配送订单和已经配送订单,点击配送按钮后,控制器传送指令给模型层,模型层执行修改数据库命令,数据库进行修改并保存,然后再把修改后的状态返回到视图进行显示。
2.2.4 留言管理
为了方便食堂更好地了解用户需求,管理员可以查看用户意见,并可回复留言。模型层查询到用户留言记录后,把相应数据保存在session中,控制器获取数据,并选择对应视图显示用户留言记录。管理员对于恶意留言,可以进行删除操作,模型层会对数据库进行更新,同时控制器会对视图进行更新。当管理员点击用户昵称时,控制器获取用户ID,调用相应的方法和视图,管理员在文本框填写好内容后,控制器把数据传到模型层,然后保存到数据库中。
3 结语
本系统主要以医院食堂为背景所设计与开发。针对系统所应用的场景,针对系统开发中所用技术,分析目前市场上相关的订餐软件优点与不足,同时对本系统的需求进行了深入调查,然后根据需求分析,把系统划分成了前台用户系统和后台管理系统,并合理划分了功能模块。
本系统很好地解决了医护人员与患者就餐不便,以及食堂管理的问题。食堂提供菜品禁忌介绍,患者能更好选择适合自己的菜肴,特色养生专题为病人科普养生常识,并且患者还能对食堂进行监督留言。医院食堂订餐系统划分为前台用户订餐系统和后台管理系统。在技术上主要采用了MVC架构,后台数据库主要采用MySQL数据库存储数据。为了保证用户数据与系统安全,采用了HTTPS协议进行数据的传输,从而避免了数据在传输过程中被不法分子获取。此外为了防止用户数据泄露,在用户注册时,采用MD5加密数据再存入数据库。本系统在将来可以加上推荐算法,为不同用户推荐合适的菜品。在管理员模块,数据分析不够全面,未来可利用大数据和数据分析等技术,对后台信息进行更加全面和彻底地统计与分析,方便食堂管理。