1.技术路线:
(1)开发环境:
视图层用来渲染页面结构,逻辑层用来逻辑处理、数据请求、接口调用,整个小程序只有一个,并且整个生命周期常驻内存。视图层和逻辑层分离,分别运行在不同的线程中,如下(图3)小程序架构图解。两者通过系统层的JSBridage进行通信,通过两边提供的evaluateJavascript实现数据传输。
(图3)小程序架构图解
(2)运行环境:
该小程序视图层的界面使用WebView 进行渲染;逻辑层采用JsCore线程运行JS脚本。小程序的通信模型如(图4)所示。iOS/iPadOS 微信客户端、Android 微信客户端、Windows PC 微信客户端、Mac 微信客户端、小程序硬件框架和用于调试的微信开发者工具等不同的运行环境,脚本执行环境以及渲染的环境是不同的,并且性能表现上也存在差异:在 iOS、iPadOS 和 Mac OS 上,逻辑层的 JavaScript 代码运行在 JavaScriptCore 中,视图层由 WKWebView 来渲染的;在 Android 上,小程序逻辑层的 JavaScript 代码运行在V8中,视图层由基于 微信自研的XWeb 引擎来渲染的;在 Windows 上,逻辑层 JavaScript 和视图层都采用 Chromium 内核。针对用户不同途径的打开方式,小程序中需要做不同的业务处理,该小程序的打开方式带给onLaunch和onShow的调用参数Options。
App({
onLaunch: function(options) { console.log(options) },
onShow: function(options) { console.log(options) }
})
(图4)小程序通信模型
(3)代码组成:
该健康管理小程序的代码由配置文件JSON、模板文件 WXML 、样式文件 WXSS以及逻辑文件JavaScript组成。其中,WXML 模板和 WXSS 样式工作在视图层,JavaScript工作在逻辑层。使用JSON技术,在小程序运行之前决定小程序一些表现。使用 WXML 语言提供的数据绑定功能,完成界面的实时更新,从而达到同步追踪、分析和存储女性用户健康数据。WXSS(WeiXin Style Sheets)是小程序的样式语言,用于描述WXML的组件样式,来呈现视觉上的效果。使用JavaScript语言来开发业务逻辑以及调用小程序的 API 来完成业务需求。小程序的基础库也是由JavaScript编写,直接注入到渲染层和逻辑层运行。

(图五) 小程序的全局内容配置
(4)小程序页面:
小程序的界面由WXML文件和WXSS文件来负责描述,配置由JSON文件进行描述,页面逻辑由JS脚本文件负责。小程序的程序通过wx.navigateTo保留当前页面,然后跳转到新的页面。该健康管理小程序的每个页面都有明确的重点,可确保用户每进入一个新页面都能快速理解页面内容。如根据女性用户需求设计相应的功能模块,以便女性更好地应对更年期。分析、系统数据调用和存储有关的的数据库设计主要设计了用户基本信息表、健康信息表等,在分析的过程中采用了JAVA、C#等语言进行混编。
(5)底层框架:
该小程序使用类似于微信 JSSDK 这样的 Hybrid 技术,主要由 Web 技术渲染界面,配之大量的接口提供出丰富的客户端原生能力(网络 API、媒 体 API、数据存储 API、位置 API、设备信息 API、界面 API及开放API)。
每个小程序页面用不同的WebView去渲染,可以提供更好的交互体验,更贴近原生体验,避免单个WebView的任务因过于繁重而界面无反应的现象。
(6)EPQ量表分析:
利用EPQ量表分析用户心理方面外-内倾、神经质和精神质三个维度。从E、N、P、L四级量表分析,人格特质与女性更年期症状的关系密切,E量表(外内向)与KI(Kupermann)评分显著负相关,N量表(情绪性或神经质)量表与KI评分呈正相关。通过专业量表,系统对用户身心及绝经时段多方面数据进行全方位分析,结果更加准确可信。

(图七)
(7)数据解析模块设计与实现:
所获取到的健康数据记录文件发送到实时监测系统,实时监测系统将记录文件进行解析,并将解析后的记录数据存入数据库。数据解析模块的主要功能包括健康记录文件解析入库与健康记录数据获取展示功能。(如图八所示)






(图八)数据解析类图
HealthEntity 类:为用户的健康数据记录实体类,类中成员包括用户
ID,记录所属用户,用户经期状况及身心状况等数据。
HealthMapper 接口:数据访问层接口,操作数据库中用户记录数据表的
相关数据。
Util 类:数据解析工具类,类中 parseFile 方法将用户客户端上传来的记录文件解析成健康数据记录实体类的list,并将解析结果返回。
ServiceImpl 类:是具体实现与健康数据记录相关的业务逻辑的服务类,封装了健康记录文件数据解析入库,查找用户健康记录数据等业务逻辑。
Service 接口:定义健康数据记录相关服务的接口。
Controller 类:健康记录控制器类,用户层所有关于健康记录的请求都将
调用此类来完成。
(8)数据可视化:
使用H5的websocket构建客户端和服务端的TCP连接,从而实现实时数据传输的目的。数据连接层面,可以使用node.js的http://socket.io库实现。展现层面选择小众的js库,如cubism.js。
(9)日历图表:
引入Echarts开源库进行可视化图表并渲染数据。使用Echarts新增的日历坐标系进行在日历上绘制图表,再配上API如chart.convertToPixel 接口,在日历坐标系绘制饼图如图九所示。

(图久)在日历坐标系上绘制饼图
(10)数据统计与处理:
借助第三方数据统计工具微信平台发布的官方小程序“小程序数据助手”
ai诊断分析:
结合医疗大数据知识图谱构建出来的一个智能识别模型。
它通过自然语言处理(NLP)、卷积神经网络影像识别(CNN)等深度学习算法,自动解析女性用户的体表健康信息、生理经期信息、体检检查结果、放射性影像报告,提炼女性健康状况,在此基础上通过Kupermann评分量表与EPQ量表,判断该女性用户处于的阶段以及身心健康情况,并提供依据和合理解释。
(11)隐私安全加密:
进入小程序首先需要用户授权登陆并获取用户的数据,来对接用户系统。即获取授权收集openid,调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key)等。unionId等敏感数据则被加密在encryptedData。通过HTTPS安全链接,保护用户隐私防止窃取。用户可对自己的敏感信息进行加密,如通过设置密码、回答问题解锁、面部识别解锁等方式。在密码输入时,采用自定义开发的手机键盘,以确保用户每次输入的字符是随机无规则的。当用户在调起多窗口时,进行模糊屏幕里的内容。
2.拟解决的问题:
(1)基于Web 技术来渲染小程序会存在一些不可控因素和安全风险。Web技术非常灵活开放,可以利用JavaScript 脚本随意地跳转网页或者改变界面上的任意内容。
采用启用另一线程的办法来执行 JavaScript。借助一个不含有任何浏览器相关接口的沙箱环境来运行开发时的JavaScript 代码。沙箱环境只提供纯JavaScript 的解释执行环境。客户端系统的JavaScript 的解释引擎(在iOS下是用内置的 JavaScriptCore框架,在安卓则是用腾讯x5内核提供的JsCore环境)便可充当这一沙箱环境,创建一个单独的线程去执行 JavaScript。
(2)页面过长时间的等待容易引起用户的不良情绪,小程序项目提供的技术虽很大程度缩短等待时间,但不可避免的会出现加载和等待的时候。
在页面加载时使用进度条显示载入的进度,借助带有动画效果的加载更能提高用户的体验感。若出现卡死现象,给出及时的反馈来舒缓用户等待的不良情绪。
3.预期成果:
(1)完成数据精准实时的存储和分析,使得更年期女性对自己的身心健康问题精确实时了解,早发现问题、早预防、早治疗。
(2)依据课题研究成果,申请发明专利1项,登记软件著作权1项;
(3)将课题研究成果撰写成论文,发表高水平论文1篇;
(4)参加创新类比赛,取得省级名次;
(5)撰写工作报告、技术报告1份。