范詩(shī)帆,程文志
(湖南科技學(xué)院信息工程學(xué)院,湖南 永州 425199)
隨著健康中國(guó)建設(shè)全面推進(jìn),健康中國(guó)行動(dòng)穩(wěn)步實(shí)施。據(jù)不完全統(tǒng)計(jì),一直到2021年年末,全國(guó)醫(yī)療衛(wèi)生機(jī)構(gòu)總數(shù)達(dá)104.4萬(wàn)個(gè)[1-2]。在傳統(tǒng)醫(yī)院食堂訂餐模式下,一方面,由于醫(yī)生工作職業(yè)的特殊性,經(jīng)常不能及時(shí)去醫(yī)院食堂訂餐和取餐,錯(cuò)過訂餐的事件時(shí)有發(fā)生;另一方面,有些患者受到自身行動(dòng)不便影響,也會(huì)對(duì)訂餐造成影響?,F(xiàn)在外賣行業(yè)的發(fā)展,在一定程度上確實(shí)能夠緩解醫(yī)院訂餐和就餐壓力,但是很多疾病對(duì)部分飲食有禁忌,患者盲目訂外賣反而會(huì)影響健康。同時(shí),由于食堂財(cái)務(wù)在核算的時(shí)候涉及多個(gè)類別,所以在有規(guī)模的食堂里財(cái)務(wù)的工作量一直都是只增不減,不僅造成數(shù)據(jù)準(zhǔn)確性有偏差、數(shù)據(jù)留存性低的問題,也造成工作量大的問題[3-4]。另外,食品安全絕對(duì)是食堂重中之重的問題,怎樣有效地對(duì)食品安全進(jìn)行全方位的管控,如何幫助醫(yī)院食堂進(jìn)行改善將是醫(yī)院需要重視的一個(gè)問題。
為了滿足消費(fèi)者多元化就餐需求,國(guó)內(nèi)外很多企業(yè)都推出了網(wǎng)上訂餐軟件。美團(tuán)外賣于2013年正式上線,業(yè)務(wù)囊括餐飲外賣、到店、生鮮團(tuán)購(gòu)等;“餓了么”為餐廳提供線上與線下運(yùn)營(yíng)一體化解決方案。網(wǎng)上訂餐在國(guó)外同樣流行,在英國(guó)有Uber Eats和Just Eat;美國(guó)比較流行的外賣平臺(tái)有Seamless和Postmates。
綜上所述,雖然不同的企業(yè)針對(duì)具體的應(yīng)用場(chǎng)景開發(fā)出了適配度更高的訂餐軟件,但是目前國(guó)內(nèi)外的訂餐軟件沒有專門針對(duì)醫(yī)院病人的訂餐系統(tǒng)。本文設(shè)計(jì)了基于Web的醫(yī)院食堂訂餐系統(tǒng),采用醫(yī)院食堂網(wǎng)上訂餐,針對(duì)醫(yī)生或病人提供訂單服務(wù),不僅可以方便醫(yī)生隨時(shí)隨地用餐,也能方便為病人定制餐飲和規(guī)避禁忌食物,醫(yī)院食堂所面臨的問題就能得到很好地解決。患者和醫(yī)護(hù)人員能更加方便訂餐和就餐,食堂可以精確進(jìn)行備餐,從而減少食物浪費(fèi),還能方便食堂進(jìn)行財(cái)務(wù)統(tǒng)計(jì)、進(jìn)銷存統(tǒng)計(jì),減少了工作量。在疫情防控期間,避免了人流聚集,減少感染風(fēng)險(xiǎn),在各大醫(yī)院具有一定的推廣意義和使用價(jià)值。
本系統(tǒng)的架構(gòu)設(shè)計(jì)擬定采用MVC模式,它具備高內(nèi)聚、低耦合的特性。MVC可以進(jìn)行應(yīng)用程序分層開發(fā)。它通過分離業(yè)務(wù)邏輯、數(shù)據(jù)與界面來編寫代碼,將大量業(yè)務(wù)邏輯收集到單個(gè)組件中,在改進(jìn)界面及用戶交互的同時(shí),不必重寫業(yè)務(wù)邏輯,從而減少了開發(fā)者編碼的時(shí)間,提高了工作效率,團(tuán)隊(duì)分工更明確,提升了開發(fā)代碼復(fù)用性和可維護(hù)性[5-7]。
如圖1所示,在MVC設(shè)計(jì)中,模型是對(duì)數(shù)據(jù)和數(shù)據(jù)操作進(jìn)行封裝,并且實(shí)現(xiàn)數(shù)據(jù)邏輯處理。視圖用于可視化模型數(shù)據(jù)并與用戶交互,同時(shí)向控制器發(fā)送用戶輸入數(shù)據(jù)??刂破魇紫冉邮涨芭_(tái)用戶請(qǐng)求,再確定適當(dāng)?shù)哪P吞幚碚?qǐng)求,最后決定調(diào)用相應(yīng)視圖對(duì)返回的數(shù)據(jù)進(jìn)行顯示,它使視圖與模型分離。
圖1 MVC架構(gòu)
醫(yī)院食堂訂餐系統(tǒng)是B/S為(瀏覽器/服務(wù)器)結(jié)構(gòu)作為開發(fā)模式,如圖2所示。在B/S結(jié)構(gòu)中只需要安裝一個(gè)服務(wù)器,客戶端只需要選擇瀏覽器進(jìn)入訂餐系統(tǒng),用戶端可以進(jìn)行訂餐、修改個(gè)人信息、訂單管理等操作,管理員可以進(jìn)行菜單管理、訂單管理等操作。Web服務(wù)器可以處理用戶請(qǐng)求,并與數(shù)據(jù)庫(kù)進(jìn)行交互。其維護(hù)方便,只需要更改網(wǎng)頁(yè)、就可以實(shí)現(xiàn)全部用戶的同步更新。分布性強(qiáng),無(wú)需進(jìn)行客戶端的維護(hù),只需要網(wǎng)絡(luò)、瀏覽器,用戶就能隨時(shí)訂餐。
圖2 B/S開發(fā)模式結(jié)構(gòu)
系統(tǒng)進(jìn)行需求分析。如圖3所示,醫(yī)院食堂訂餐系統(tǒng)主要?jiǎng)澐譃榍芭_(tái)用戶子系統(tǒng)和后臺(tái)管理員子系統(tǒng),并劃分了相應(yīng)的功能模塊。
圖3 系統(tǒng)功能結(jié)構(gòu)
2.1.1 用戶訂餐
如圖4所示,用戶通過手機(jī)或電腦的瀏覽器,進(jìn)入訂餐系統(tǒng),用戶可以先瀏覽菜品,查看菜品詳情。當(dāng)用戶預(yù)訂時(shí),系統(tǒng)會(huì)判斷是否登錄。如果沒有登錄,則會(huì)提示并引導(dǎo)用戶進(jìn)行登錄或注冊(cè)。選擇完菜品后,填寫訂單詳情,結(jié)算訂單,最后提交訂單。
圖4 用戶訂餐流程
2.1.2 訂單管理
在用戶登錄成功后,進(jìn)入訂單管理模塊,用戶可查看個(gè)人已配送和未配送訂單。系統(tǒng)獲取用戶名保持在session,通過模型層在MySQL數(shù)據(jù)庫(kù)中,查詢訂單數(shù)據(jù),然后返回給控制器,控制器選擇合適的視圖顯示用戶訂單。
2.1.3 意見反饋
無(wú)論是游客還是已注冊(cè)用戶,均可查看精選留言和發(fā)布意見。系統(tǒng)首先從MySQL數(shù)據(jù)庫(kù)中查詢留言,保存在session隊(duì)列中,然后在相應(yīng)界面顯示精選留言。當(dāng)用戶輸入留言后,點(diǎn)擊提交,控制器會(huì)把數(shù)據(jù)傳遞到模型層,最終存儲(chǔ)到數(shù)據(jù)庫(kù)中。
2.2.1 菜單管理
系統(tǒng)在數(shù)據(jù)庫(kù)查詢所有菜品信息,并顯示名稱、價(jià)格等信息,管理員可對(duì)菜單進(jìn)行刪除或修改。菜品添加采用的是FCKeditor進(jìn)行菜品詳情編輯,點(diǎn)擊提交后,可在后臺(tái)對(duì)應(yīng)的Java action中content參數(shù)獲得管理員輸入的菜品內(nèi)容,并保存到數(shù)據(jù)庫(kù)中。
2.2.2 營(yíng)業(yè)信息查詢
管理員分別可以通過選擇日期、輸入訂單號(hào)或選擇者日期區(qū)間,查詢訂單并可查看總計(jì)營(yíng)業(yè)額。管理員在前端界面輸入數(shù)據(jù),通過模型層在MySQL數(shù)據(jù)庫(kù)中進(jìn)行查詢,發(fā)送給控制器,最后控制器選擇視圖顯示訂單號(hào),下單時(shí)間等信息并統(tǒng)計(jì)總營(yíng)業(yè)額。
2.2.3 用戶訂單管理
管理員可查看用戶未配送訂單和已經(jīng)配送訂單,點(diǎn)擊配送按鈕后,控制器傳送指令給模型層,模型層執(zhí)行修改數(shù)據(jù)庫(kù)命令,數(shù)據(jù)庫(kù)進(jìn)行修改并保存,然后再把修改后的狀態(tài)返回到視圖進(jìn)行顯示。
2.2.4 留言管理
為了方便食堂更好地了解用戶需求,管理員可以查看用戶意見,并可回復(fù)留言。模型層查詢到用戶留言記錄后,把相應(yīng)數(shù)據(jù)保存在session中,控制器獲取數(shù)據(jù),并選擇對(duì)應(yīng)視圖顯示用戶留言記錄。管理員對(duì)于惡意留言,可以進(jìn)行刪除操作,模型層會(huì)對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新,同時(shí)控制器會(huì)對(duì)視圖進(jìn)行更新。當(dāng)管理員點(diǎn)擊用戶昵稱時(shí),控制器獲取用戶ID,調(diào)用相應(yīng)的方法和視圖,管理員在文本框填寫好內(nèi)容后,控制器把數(shù)據(jù)傳到模型層,然后保存到數(shù)據(jù)庫(kù)中。
本系統(tǒng)主要以醫(yī)院食堂為背景所設(shè)計(jì)與開發(fā)。針對(duì)系統(tǒng)所應(yīng)用的場(chǎng)景,針對(duì)系統(tǒng)開發(fā)中所用技術(shù),分析目前市場(chǎng)上相關(guān)的訂餐軟件優(yōu)點(diǎn)與不足,同時(shí)對(duì)本系統(tǒng)的需求進(jìn)行了深入調(diào)查,然后根據(jù)需求分析,把系統(tǒng)劃分成了前臺(tái)用戶系統(tǒng)和后臺(tái)管理系統(tǒng),并合理劃分了功能模塊。
本系統(tǒng)很好地解決了醫(yī)護(hù)人員與患者就餐不便,以及食堂管理的問題。食堂提供菜品禁忌介紹,患者能更好選擇適合自己的菜肴,特色養(yǎng)生專題為病人科普養(yǎng)生常識(shí),并且患者還能對(duì)食堂進(jìn)行監(jiān)督留言。醫(yī)院食堂訂餐系統(tǒng)劃分為前臺(tái)用戶訂餐系統(tǒng)和后臺(tái)管理系統(tǒng)。在技術(shù)上主要采用了MVC架構(gòu),后臺(tái)數(shù)據(jù)庫(kù)主要采用MySQL數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)。為了保證用戶數(shù)據(jù)與系統(tǒng)安全,采用了HTTPS協(xié)議進(jìn)行數(shù)據(jù)的傳輸,從而避免了數(shù)據(jù)在傳輸過程中被不法分子獲取。此外為了防止用戶數(shù)據(jù)泄露,在用戶注冊(cè)時(shí),采用MD5加密數(shù)據(jù)再存入數(shù)據(jù)庫(kù)。本系統(tǒng)在將來可以加上推薦算法,為不同用戶推薦合適的菜品。在管理員模塊,數(shù)據(jù)分析不夠全面,未來可利用大數(shù)據(jù)和數(shù)據(jù)分析等技術(shù),對(duì)后臺(tái)信息進(jìn)行更加全面和徹底地統(tǒng)計(jì)與分析,方便食堂管理。