设计:
产品化医疗服务类app
需求描述:
“久氨”App致力于为用户提供蛋白尿检测相关一体化服务,具有检测结果分析,长期数据记录,线上医疗问诊,健康生活规划,产品线上商城,用户线上交流等六大功能。
- 检测结果分析功能。此款app辅助本公司蛋白尿检测盒使用,提供了详细的使用指导说明,仅需用户拍照上传检测后试剂盒,通过智能扫描,即可精确快速得出用户蛋白尿疾病相关结果,便于用户精确了解检测结果和自身蛋白尿状况,有效避免肉眼识别造成的测试偏误。
- 长期数据记录功能。对于长期使用本产品的患者,此款app可智能记录每次监测信息,并进行长期蛋白尿的时间线数据分析,得出用户蛋白尿长期发展态势,并给予健康评分,科学预测用户未来发展状况,便于用户记录查看长期状况,结合自身情况调整治疗方案。
- 线上医疗问诊功能。此款app可科学分析用户具体身体情况,给用户提供科学的用药建议。通过线上医疗问诊,用户可即时获取医师建议。便于用户在非必要线下门诊时,节省前往医院的时间,足不出户即可得到科学的医学建议。还可以与医生语音交流,提高问诊效率。
- 健康生活规划功能。用户可结合自身情况和app建议,设置检测智能定期提醒。此app还可通过用户自身状况,提供科学的饮食起居等生活建议,为用户构建科学合理的健康生活规划。还有健康科普知识供用户查阅。便于用户定期检测,健康生活,早日康复。
- 产品线上商城功能。开拓网上购买本公司相关产品专属通道,便于用户即时在网上挑选相关产品。为用户提供一站式服务,不必线下购买试剂盒,极大提升用户使用体验。
- 用户线上交流功能。用户可通过软件渠道与使用本产品的其他用户进行线上交流,分享个人经验,互相交流心得,助力用户恢复健康。
需求分析:
(0)群聊
(1)购物
(2)数据记录与显示
(3)检测结果“智能”识别+健康规划“智能”提供
架构:
MVVM:
- 前后端交互频繁、更新数据和界面频繁
- 数据和组件分隔。VM更进一步,将数据和组件分隔的更彻底,不同数据组合间互不影响
- 数据仓库中数据既可以从SQLite数据库获取,还可以从Web等服务端获取
特点:加入了“分离关注点”的概念,使数据与组件的生命周期无关:
当 Android 系统销毁应用以释放资源时,用户的数据不会丢失。如 Activity 或 Fragment 被销毁后,下一个 Activity 或 Fragment 实例仍能使用 ViewModel 中的数据。当网络连接不稳定或不可用时,应用仍可继续工作。
MVVMHabit:
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合Okhttp+RxJava+Retrofit+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发一个高质量、易维护的Android应用。
实现:
数据库:
greenDAO+SQLite:
(0)greenDAO通过ORM解决方案快速将 Java 对象映射到 SQLite 数据库的表单中
(1)SQLite是嵌入式关系型数据库,实现自包容、零配置、支持事务的 SQL 数据库引擎。特点是高度便携、使用方便、结构紧凑、高效、可靠。与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保 SQLite 的二进制文件存在即可开始创建、连接和使用数据库。
网络:(聊天、购物等):
OkHttp:
(0)get,post请求
(1)文件的上传下载
(2)加载图片(内部会图片大小自动压缩)
(3)支持请求回调,直接返回对象、对象集合
(4)支持session的保持
Imui:
是极光在GitHub上开源的一个即时通讯库,方便开发者快速使用,完成即时通讯类的对话展示。目前支持Android、iOS、React Native三大平台。
图表:
MPAndroidChart:
一款强大的 Android 图表库, 支持各种各样图表显示, 能想到的图表样式几乎都有, 图表还支持选择, 拖放和缩放动画效果
图像识别:
OpenCV+JNI
调用openCV中的C++库函数识别出具体颜色,然后和标准比色卡对比,得出健康评估。
技术可行:
地图寻找最近线下医生:
高德地图API
位置定位+路线规划+导航
生活规划:
应用AI推荐系统
可拓展的硬件设备和心率实时检测功能:
硬件层的具体实现不是很清楚,只需要明白接口
数据流: 设备->网络->app
涉及到json心电格式数据解析和心率、呼吸数据解析
Canvas+MPAndroidChart画图实现
模块及App测试:
开发初期测试方向:
- 前后端能否实时刷新
- 数据能否持续化存储SQLite
- 硬件数据是否可以正确读取
- 网络是否正常
- AI识别和推荐是否正常
界面设计:
选用导航、RecyclerView(购物车)、ScrollView(表单等)、MessageList
及ChatInputView(聊天)、等组件。
后期是否可用更漂亮的UI框架?
由于项目还在设计中,现仅提供预期界面。(注,git中的代码仅仅粗略绘制图片,没有用到设计的组件)