崔銘珊,黃寧,李忠毅
(中山大學新華學院信息科學學院,東莞 523133)
由于現代人長期不健康的飲食習慣加之對口腔護理的漠視,導致口腔問題高發[1]。為解決這一問題,我們小組設計了一套系統,系統采用B∕S 架構,應用了面向接口編程的思想,將服務器端與客戶端解耦。在口腔狀況尚良好時,應用將提供正確的口腔護理信息。在口腔出現問題時,應用提供依托服務器端提供自診服務,以便引起用戶重視及時就醫。

圖1

圖2

圖3

圖4

圖5
JDK1.8、Tomcat、SpringBoot、MyBatis、Netty。
Android Studio3.5、Postman、IDEA 2020.1。
服務器端采用的是SpringBoot+MyBatis 的技術棧。主體采用了面向接口的編程思想,為App 調用提供數據接口。在部分的功能實現上也采用了Netty 框架,使用websocket 保持和App 的持續通訊。
客戶端即App,通過后臺線程定時訪問服務器端接口獲取數據,并將數據通過handler 更新至UI 線程。

圖6 客戶端獲取數據
(1)消息助手
消息助手統合預約通知、定時刷牙、健康知識推送等功能,使得用戶能夠方便地對各類消息進行查看。
消息助手主要是借助當前頁面主線程內的handler對通知列表進行更新以達到顯示通知的目的。

(2)口腔百科
口腔百科旨在讓用戶能直觀地了解到口腔疾病的危害,提高使用者對口腔健康的重視。
此功能由于內容相對固定,無經常變化的可能,具體內容直接寫死在頁面代碼內。我們為每種疾病制作了單獨的頁面。用戶通過點擊即可進行跳轉。
(3)癥狀自診
當用戶出現輕微口腔問題時,通過癥狀自診功能能夠便捷地確定口腔疾病的種類。對于口腔潰瘍這類輕微癥狀可以引導用戶通過改善作息、調整飲食習慣等方式使之自愈;對于嚴重問題能告知危害,及時引導用戶前去就醫[2]。

圖7 消息助手

圖8 牙髓病百科
此功能依賴服務器端提供的API 接口,服務器端與客戶端通過JSON 傳遞信息。
服務器端代碼:

圖9 病癥自診序列圖

圖10 自診頁面

圖11 自診結果
(4)個人中心
個人信息頁面記錄有用戶的口腔信息及歷史治療情況,便于用戶前去就診時與醫生的溝通。
個人信息通過SharedPreferences 類儲存在本地,當頁面加載時,應用將自動的從文件中讀取個人信息并加載至頁面
SharedPreferences 類是Android 平臺提供給我們的一個輕量級的存儲類,可以避免使用SQLite。使用SharedPreferences 保存數據,其底層是采用XML 文件存放數據的,XML 文件位于∕data∕data∕<package name>∕shared_prefs 目錄。
讀取個人信息示例如下:


圖12 個人中心頁面
系統各功能實現后,需要對各個功能測試。不僅是為了保障各功能能夠正常實現,同樣要保證系統符合預先設計需求。

表1 服務器端測試環境搭建

表2 手機端測試環境搭建
在表1-表2 的環境下,進行如下測試,得到表3。

表3 系統功能測試
該系統實現了滿足了市場的需求。App 能喚起用戶對口腔健康的關注,減少牙病帶來的痛苦。系統主推“個人中心”、“口腔百科”和“癥狀自診”三大功能。“個人中心”可細分為正確刷牙演示和存儲個人檔案等功能,可以通過數據分析改善用戶刷牙的習慣和提高刷牙的質量。“口腔百科”可以展示不同的年齡段牙齒的情況,為全家的口腔健康提供保護。“癥狀自診”則能讓用戶對細微的口腔問題產生重視。系統基本實現了“喚起用戶對口腔健康的重視”這一設計目標。