范詩帆,程文志
(湖南科技學院信息工程學院,湖南 永州 425199)
隨著健康中國建設全面推進,健康中國行動穩步實施。據不完全統計,一直到2021年年末,全國醫療衛生機構總數達104.4萬個[1-2]。在傳統醫院食堂訂餐模式下,一方面,由于醫生工作職業的特殊性,經常不能及時去醫院食堂訂餐和取餐,錯過訂餐的事件時有發生;另一方面,有些患者受到自身行動不便影響,也會對訂餐造成影響。現在外賣行業的發展,在一定程度上確實能夠緩解醫院訂餐和就餐壓力,但是很多疾病對部分飲食有禁忌,患者盲目訂外賣反而會影響健康。同時,由于食堂財務在核算的時候涉及多個類別,所以在有規模的食堂里財務的工作量一直都是只增不減,不僅造成數據準確性有偏差、數據留存性低的問題,也造成工作量大的問題[3-4]。另外,食品安全絕對是食堂重中之重的問題,怎樣有效地對食品安全進行全方位的管控,如何幫助醫院食堂進行改善將是醫院需要重視的一個問題。
為了滿足消費者多元化就餐需求,國內外很多企業都推出了網上訂餐軟件。美團外賣于2013年正式上線,業務囊括餐飲外賣、到店、生鮮團購等;“餓了么”為餐廳提供線上與線下運營一體化解決方案。網上訂餐在國外同樣流行,在英國有Uber Eats和Just Eat;美國比較流行的外賣平臺有Seamless和Postmates。
綜上所述,雖然不同的企業針對具體的應用場景開發出了適配度更高的訂餐軟件,但是目前國內外的訂餐軟件沒有專門針對醫院病人的訂餐系統。本文設計了基于Web的醫院食堂訂餐系統,采用醫院食堂網上訂餐,針對醫生或病人提供訂單服務,不僅可以方便醫生隨時隨地用餐,也能方便為病人定制餐飲和規避禁忌食物,醫院食堂所面臨的問題就能得到很好地解決。患者和醫護人員能更加方便訂餐和就餐,食堂可以精確進行備餐,從而減少食物浪費,還能方便食堂進行財務統計、進銷存統計,減少了工作量。在疫情防控期間,避免了人流聚集,減少感染風險,在各大醫院具有一定的推廣意義和使用價值。
本系統的架構設計擬定采用MVC模式,它具備高內聚、低耦合的特性。MVC可以進行應用程序分層開發。它通過分離業務邏輯、數據與界面來編寫代碼,將大量業務邏輯收集到單個組件中,在改進界面及用戶交互的同時,不必重寫業務邏輯,從而減少了開發者編碼的時間,提高了工作效率,團隊分工更明確,提升了開發代碼復用性和可維護性[5-7]。
如圖1所示,在MVC設計中,模型是對數據和數據操作進行封裝,并且實現數據邏輯處理。視圖用于可視化模型數據并與用戶交互,同時向控制器發送用戶輸入數據。控制器首先接收前臺用戶請求,再確定適當的模型處理請求,最后決定調用相應視圖對返回的數據進行顯示,它使視圖與模型分離。

圖1 MVC架構
醫院食堂訂餐系統是B/S為(瀏覽器/服務器)結構作為開發模式,如圖2所示。在B/S結構中只需要安裝一個服務器,客戶端只需要選擇瀏覽器進入訂餐系統,用戶端可以進行訂餐、修改個人信息、訂單管理等操作,管理員可以進行菜單管理、訂單管理等操作。Web服務器可以處理用戶請求,并與數據庫進行交互。其維護方便,只需要更改網頁、就可以實現全部用戶的同步更新。分布性強,無需進行客戶端的維護,只需要網絡、瀏覽器,用戶就能隨時訂餐。

圖2 B/S開發模式結構
系統進行需求分析。如圖3所示,醫院食堂訂餐系統主要劃分為前臺用戶子系統和后臺管理員子系統,并劃分了相應的功能模塊。

圖3 系統功能結構
2.1.1 用戶訂餐
如圖4所示,用戶通過手機或電腦的瀏覽器,進入訂餐系統,用戶可以先瀏覽菜品,查看菜品詳情。當用戶預訂時,系統會判斷是否登錄。如果沒有登錄,則會提示并引導用戶進行登錄或注冊。選擇完菜品后,填寫訂單詳情,結算訂單,最后提交訂單。

圖4 用戶訂餐流程
2.1.2 訂單管理
在用戶登錄成功后,進入訂單管理模塊,用戶可查看個人已配送和未配送訂單。系統獲取用戶名保持在session,通過模型層在MySQL數據庫中,查詢訂單數據,然后返回給控制器,控制器選擇合適的視圖顯示用戶訂單。
2.1.3 意見反饋
無論是游客還是已注冊用戶,均可查看精選留言和發布意見。系統首先從MySQL數據庫中查詢留言,保存在session隊列中,然后在相應界面顯示精選留言。當用戶輸入留言后,點擊提交,控制器會把數據傳遞到模型層,最終存儲到數據庫中。
2.2.1 菜單管理
系統在數據庫查詢所有菜品信息,并顯示名稱、價格等信息,管理員可對菜單進行刪除或修改。菜品添加采用的是FCKeditor進行菜品詳情編輯,點擊提交后,可在后臺對應的Java action中content參數獲得管理員輸入的菜品內容,并保存到數據庫中。
2.2.2 營業信息查詢
管理員分別可以通過選擇日期、輸入訂單號或選擇者日期區間,查詢訂單并可查看總計營業額。管理員在前端界面輸入數據,通過模型層在MySQL數據庫中進行查詢,發送給控制器,最后控制器選擇視圖顯示訂單號,下單時間等信息并統計總營業額。
2.2.3 用戶訂單管理
管理員可查看用戶未配送訂單和已經配送訂單,點擊配送按鈕后,控制器傳送指令給模型層,模型層執行修改數據庫命令,數據庫進行修改并保存,然后再把修改后的狀態返回到視圖進行顯示。
2.2.4 留言管理
為了方便食堂更好地了解用戶需求,管理員可以查看用戶意見,并可回復留言。模型層查詢到用戶留言記錄后,把相應數據保存在session中,控制器獲取數據,并選擇對應視圖顯示用戶留言記錄。管理員對于惡意留言,可以進行刪除操作,模型層會對數據庫進行更新,同時控制器會對視圖進行更新。當管理員點擊用戶昵稱時,控制器獲取用戶ID,調用相應的方法和視圖,管理員在文本框填寫好內容后,控制器把數據傳到模型層,然后保存到數據庫中。
本系統主要以醫院食堂為背景所設計與開發。針對系統所應用的場景,針對系統開發中所用技術,分析目前市場上相關的訂餐軟件優點與不足,同時對本系統的需求進行了深入調查,然后根據需求分析,把系統劃分成了前臺用戶系統和后臺管理系統,并合理劃分了功能模塊。
本系統很好地解決了醫護人員與患者就餐不便,以及食堂管理的問題。食堂提供菜品禁忌介紹,患者能更好選擇適合自己的菜肴,特色養生專題為病人科普養生常識,并且患者還能對食堂進行監督留言。醫院食堂訂餐系統劃分為前臺用戶訂餐系統和后臺管理系統。在技術上主要采用了MVC架構,后臺數據庫主要采用MySQL數據庫存儲數據。為了保證用戶數據與系統安全,采用了HTTPS協議進行數據的傳輸,從而避免了數據在傳輸過程中被不法分子獲取。此外為了防止用戶數據泄露,在用戶注冊時,采用MD5加密數據再存入數據庫。本系統在將來可以加上推薦算法,為不同用戶推薦合適的菜品。在管理員模塊,數據分析不夠全面,未來可利用大數據和數據分析等技術,對后臺信息進行更加全面和徹底地統計與分析,方便食堂管理。