崔铭珊,黄宁,李忠毅
(中山大学新华学院信息科学学院,东莞 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 能唤起用户对口腔健康的关注,减少牙病带来的痛苦。系统主推“个人中心”、“口腔百科”和“症状自诊”三大功能。“个人中心”可细分为正确刷牙演示和存储个人档案等功能,可以通过数据分析改善用户刷牙的习惯和提高刷牙的质量。“口腔百科”可以展示不同的年龄段牙齿的情况,为全家的口腔健康提供保护。“症状自诊”则能让用户对细微的口腔问题产生重视。系统基本实现了“唤起用户对口腔健康的重视”这一设计目标。