许继明 ,赵 赫 ,王卫东 ,张中贤 ,李晓风 ,周 桐 ,丁增辉
1(中国科学院 合肥物质科学研究院,合肥 230031)2(中国科学技术大学,合肥 230026)
国民体质监测系统①
许继明1,2,赵 赫1,王卫东1,张中贤1,李晓风1,2,周 桐2,丁增辉1,2
1(中国科学院 合肥物质科学研究院,合肥 230031)2(中国科学技术大学,合肥 230026)
随着经济社会的发展,人们不仅追求更高的物质生活,也更加关注体质健康和监测自身体质信息.本文介绍了国民体质监测系统,用于集中监测用户个人信息、健康数据和基础运动数据,为健康管理和慢性病干预提供了完整的一站式服务解决方案.本系统包含基于.NET MVC的数据统计分析子系统、基于Windows服务的数据同步服务与汇总服务以及基于Zabbix的系统监控程序等功能模块,能同时提供Web和移动终端两种访问形式.其中数据统计分析子系统用于统计用户数据,并利用数据挖掘技术给出统计分析结果和科学健身指导方案.数据同步服务用于准备数据,保证系统的数据完整性和一致性.数据汇总服务把省数据中心的地面站数据库数据汇总到中心数据库,中心数据库与数据统计分析子系统进行数据交互.系统监控程序监控服务器联网情况、IIS状态、数据库状态以及系统运行过程中可能发生的错误,并通过短信或邮件给出告警信息.本文设计开发完成的国民体质监测系统,提供了高效的国民体质监测和科学健身指导方案,有利于用户改善自己的身体机能.
数据统计分析系统; .NET MVC; Zabbix; 数据同步; 数据汇总; Windows服务
随着经济的不断发展,人类的生活节奏也越来越快,较强的工作压力、营养过剩、缺乏体育运动、环境污染等各方面的不健康因素已经不断地威胁人类的体质健康.体质健康和科学健身越来越受到关注.2014年国务院院46号文《关于加快发展体育产业促进体育消费的若干意见》将全民健身提升为国家战略,明确要求发挥体育锻炼在疾病防治及健康促进等方面的积极作用[1].中共中央、国务院于2016年10月25日印发并实施《“健康中国2030”规划纲要》,旨在推进健康中国建设,提高人民健康水平[2].由此可见,实施全民健身计划是国家的重要发展战略.随着全民健身计划的推出,我们更要紧跟时代发展趋势,利用移动互联网、云计算、大数据等现代信息技术手段,建设全民健身管理资源库、服务资源库和公共服务信息平台,使全民健身服务更加便捷、高效、精准.
本文致力于建设具有统一的国民体质监测功能的平台,该平台提供的安徽省国民体质监测和科学健身指导数据中心将为安徽省的全民健身资源管理、全民健身服务供给、全民健身科学研究等提供信息化平台,对推动全省的全民健身活动科学、高效、精准开展具有重要意义.此外,我们将建设国民体质监测和科学健身指导客户端,利用移动互联网技术给用户提供实时的体质监测服务.
本文提出的国民体质监测系统提供了分布式的云服务平台,完成相应的应用软件和数据管理系统建设,实现国民体质和健身数据的交换、保存、更新、共享、备份、分发和存证等功能,并扩展容灾、备份、挖掘、分析等功能.云服务平台获取用户的个人信息、健康数据、和基础运动数据,建立数据共享和更新维护机制,实现省、市、区县多级管理平台之间的数据交换与共享,以及基础数据的标准化、一致化,保证相关数据的及时更新和安全管理,为体育、卫生等监管部门提供基础数据支持.
数据统计分析系统是一个基于Web的应用程序,基于 B/S(Browser/Server)架构,采用了.NET MVC 框架开发,.NET MVC 框架是微软的统一技术平台,开发人员用不同的语言开发的程序被编译成微软中间语言后可以在任何微软的平台上运行,提高了开发效率和代码的复用性.MVC是一种在图形化界面程序中很流行的架构设计模式,MVC是Model(模型)、View(视图)及 Controller(控制器)的缩写.使用.NET MVC 框架进行Web开发时能高效地实现前端展现和后台逻辑的解耦,使得前端开发和后台逻辑能很好地隔离,降低了程序开发和后期维护的成本[3,4].
数据统计分析系统的前端采用了备受欢迎的Bootstrap 框架.Bootstrap 基于 HTML、CSS、JAVASCRIPT实现,提供了标准的HTML和CSS规范,兼容大部分 jQuery 插件,使用方便.Bootstrap 包含了丰富的Web组件,可以快捷灵活地搭建美观、功能完备的网站,而且,Bootstrap 开源,开发者可以根据实际需要修改代码.鉴于此,分析系统采用了Bootstrap作为前端的基本框架[5].
本系统监控程序基于Zabbix实现.Zabbix是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,可以通过Web界面设置和查看监视结果.Zabbix可以监视各种网络参数,从而保证服务器系统的安全运行,并提供灵活的通知机制给系统管理人员,从而及时定位、解决出现的问题.Zabbix具有跨平台的客户端和服务器,支持主动式监控,可以解决没有公网IP的问题,同时具有分级报警机制,可自定义报警媒介.
本系统采用的是阿里云RDS数据库和ECS服务器.云数据库RDS是一种稳定可靠、可弹性伸缩的在线数据库服务,支持高性能存储,部署主备架构且提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案; 云服务器ECS是一种简单高效、处理能力可弹性伸缩的计算服务,可以快速构建稳定、安全的应用.本系统采用RDS和ECS,并使用了负载均衡策略,用较低的成本获得了高效稳定的服务.
本系统由数据统计分析系统、数据同步与汇总服务、系统监控服务以及数据中心(省数据中心和地面站数据库)构成.系统架构图如图1.
图1 系统架构图
地面站数据中心包含采集用户信息的体检设备、运动设备以及健康监测设备,采集注册用户的基础数据并进行集中管理,作为整个系统基础数据源,为体育、卫生等监管部门提供数据支持.
数据同步服务通过互联网连接省数据中心和地面站数据库,可以定时地监测两边的数据变化,并把变化了的数据实时地同步到对方的数据库,从而保证整个系统数据的完整性和一致性[6].
数据统计分析系统基于.NET MVC实现,旨在实现安徽省范围内国民体质监测数据的收集、存储、统计分析、查询等功能,直接与省数据中心进行数据交互.省数据中心和地面站数据库采用MySQL数据库存储用户的个人基本信息和国民体质11项数据,以及用户的基础运动数据,存储的数据为数据统计分析系统提供原始数据.在各个地面站采集到的数据通过局域网存储到该地面站数据库,存在公网时,同步服务将新存储的数据同步到省数据中心,同时,汇总服务会定时汇总省数据中心的数据.数据统计分析系统对汇总后的数据进行集中管理,显示和统计用户的体检信息和运动能力测试信息,并且录入非检测指标数据,以及膳食数据,最终给出用户体质监测结果和科学健身指导方案[7].
数据统计分析系统设有4个角色:管理员、省级管理平台、市级管理平台、区县监测中心.管理员角色用于机构管理和用户管理.机构管理用于添加一个省级监测机构和多个市县(区)级监测站点; 用户管理用于添加和查询该系统的用户信息,每增加一个监测站点就需要添加该站点的用户信息,以便对该站点的数据进行监测.省、市、区县管理平台属于监测用户,用于管理本站点的用户数据,登录后可查看首页、机构信息、居民信息、统计分析、科学健身、数据上报等模块信息.
(1)数据统计分析系统首页信息总揽
用户登录成功进入首页界面,首页统计了用于显示该用户包含的站点个数、注册的总用户数、本年度注册的用户数、本年度上传的用户数,以及该用户的上传记录.首页通过SVGDeveloper工具绘制了安徽省的地图,并在页面嵌入了svg标签,展示了安徽省每个市统计到的站点数和检测人数.数据统计分析系统首页如图2所示.
图2 数据统计分析系统首页
(2)数据管理
数据管理模块提供了接收数据、数据导入、数据删除和数据查询的功能.系统在没有用户干预的情况下,按照约定的协议,接收远程国民体质监测中心传来的数据,并将数据写入服务器中.对于无法与省级平台直连的国民体质监测中心,系统提供公开的数据格式,用于导入数据; 导入时进行智能识别,拒绝明显错误的数据入库,在导入之前,需要添加相应的机构和用户.同时,可以根据需要,在指定时间内,将某一国民体质监测中心的数据删除.导入数据完成之后,通过查询条件查询所属区域的整体用户信息,以及个人的详细信息和健康数据.
(3)统计分析
统计分析模块用于统计国民体质监测数据、健康体征监测数据,以及国民体质监测工作统计排序.其中,国民体质监测包含国民体质指标分析、国民体质人群统计、国民体质历年人群统计和国民体质历年趋势分析,健康体征监测包含健康体征指标分析、健康体征人群统计、健康体征历年人群统计和健康体征历年趋势分析.统计分析是从总量分析、趋势分析和分类统计三个维度进行分析,统计分析显示结果可以按照省、市、中心汇总,同时支持导出分析 Excel数据.其中,总量人数统计用于分析指定时间段上报的样本数量,系统提供以下查询条件:市、区县、站点、年龄组、性别、工作单位、测试项目、测试时间,用户点击查询按钮即可展示数据统计分析结果,结果包含使用Highcharts展示的柱状图,以及可供下载的表格.此外,趋势分析分析过去5年内,上传数据量变化的趋势,作为工作考核的依据,系统提供以下查询条件:省、市、区县、站点、综合等级、年龄组、测试项目、测试指标,用户点击查询按钮即可展示数据统计分析结果,结果包含Highcharts展示的折线图,以及可供下载的表格.分类人数统计对指定时间段内上报的样本,按照测试项目、性别、年龄段、城乡等类别给出分项报告.
(4)科学健身
科学健身模块用于显示用户的体质检测结果和运动健康信息,并据此给出该用户的健身促进指南,健身促进指南通过给出科学的健身指导方案促使用户改善自身身体机能.当注册用户通过终端上传了自己的运动数据之后,数据同步和汇总服务会把心率数据汇总到省数据中心,各级管理平台用户可以通过科学健身模块获取注册用户的心率统计结果.同时,可以查询注册用户的管理目标和该管理目标所承担的运动风险.如果查询结果存在一定的运动风险,系统可以对此开具对应的处方,科学健身模块记录下该处方的执行情况和执行时间[8].
(5)系统监控
系统监控服务为本系统提供了辅助监控功能.由于系统运行过程中可能存在的安全隐患,本系统提供了基于Zabbix的监控服务.本系统部署在阿里云,采用了阿里云ECS服务器和ECS服务器上运行的IIS服务,以及RDS数据库,虽然阿里云服务器自身可提供一定的监视功能,但本系统提供的监控服务可以让管理人员能更好的管理服务器运行状况.系统监控服务可以监控省中心服务器的联网状况、IIS的基本状态、省中心的数据库状态、各监测站点的联网情况,以及系统运行过程中发生的错误,并及时通过短信和邮件发出告警信息.
本系统对国民体质和健康体征的指标分析、人群统计和趋势分析都做了统计分析,国民体质数据包含身高标准体重、肺活量、台阶指数、握力等; 健康体征数据包含身体成分测试数据、心血管功能测试数据、超声骨密度测试数据、运动功能测试数据等.对于以上大量测试数据,管理用户并不愿意看到这些数据的简单罗列,而是能通过图表的方式直观的反映数据的对比、所占比重,以及变化趋势.因此,本系统引入了Highcharts图表库.Highcharts是一款开源的JavaScript编写的图表库,能够很简单便捷的在Web网站或Web应用中添加交互性的图表[9].使用Highcharts,首先下载Highcharts插件,然后把下载的highcharts.js文件添加到我们的网站,最后通过配置参数确认图表类型并设置属性.
本系统通过柱状图表示国民体质指标分析和人数统计情况,国民体质指标分析结果如图3所示,可以直观地看到国民体质11项的测试项目、得分及人数占比.通过饼图表示健康体征指标分析的每一项结果所占比重,图4反映了健康体征指标分析中身体成分测试的结果占比情况.折线图可以清楚地看到历年统计人数的变化情况,以及每一项测试结果的变化趋势.
图3 国民体质指标分析
图4 健康体征统计图
数据同步服务以系统服务的形式运行在地面站系统,用于同步各地面站数据库数据和省数据中心的数据,我们建立了各地面站本地数据库以支持地面站本地服务系统,再建立与各地面站数据库一一对应的省中心数据库以支持省级服务系统,从而达到各数据库间高度的格式一致和数据一致.数据同步服务基于Web实现,并通过Windows服务定时执行任务.系统在需要同步的表中加入修改时间、同步时间、数据来源三个字段标示该数据是否同步完成,并在整个系统内(省中心数据库和各地面站数据库)每张表的每条记录设置唯一ID,以保障数据同步正常进行.同步服务启动后,首先检查网络状况,网络通畅时,查找地面站数据库修改时间大于同步时间的数据,并将用户数据、体检数据、处方数据依次同步至省数据中心,同步成功后,修改同步时间为当前时间.然后,查找省数据中心修改时间大于同步时间的数据,一旦发现,将这些数据同步至地面站数据库,同步成功后,修改同步时间为当前时间.当网络不通畅或同步失败的情况下,间隔两分钟后,继续检查网络状况并执行同步过程.同步程序流程图如图5所示.
图5 数据同步流程图
各个地面站数据库的数据同步到省数据中心之后,再对其中的部分数据进行汇总.数据统计分析系统对汇总后的用户数据进行统计分析并展示给用户.数据汇总是基于Windows服务实现的.我们先建立从省数据中心的各个地面站分库到中心数据库的连接,然后分别从分库中获取用户基本信息数据和用户体质监测的原始数据,分别导入中心数据库.数据汇总服务能够定时执行,保证数据统计分析系统能够及时获取新的数据.
数据汇总程序的数据库连接是可配置的,当增加源数据库的时候,只要在App.config配置文件中增加新的数据库信息即可,提高了可扩展性.
此外,为了防止数据汇总服务停止执行,系统还提供了汇总监控服务实时地监测.汇总监控程序同样基于Windows服务,一旦发现汇总服务停止,监控服务就会启动数据汇总服务.
检测服务状态的代码:
//获取所有服务
ServiceController[] services = ServiceController.GetServices();
//判断服务状态
service.Status==ServiceControllerStatus.Stopped||ser vice.Status==ServiceControllerStatus.StopPending
启动停止的服务代码:
//获取所有服务
ServiceController[] services = ServiceController.GetServices();
//启动服务
service.Start();
//直到服务启动
service.WaitForStatus(ServiceControllerStatus.Runn ing
我们在省中心和各地面站点服务器安装Zabbix客户端,用于检测所有客户端的联网情况,以及IIS服务器的运行情况,RDS服务器通过IP:Port的方式进行监测.为了保证 Zabbix 的正常运行,首先,在省中心和各站点服务器上定时执行服务,检查Zabbix客服端是否已启动,若没有,则启动; 检查 Zabbix 服务器地址是否修改,如果修改则修改客户端配置文件,并重新启动客户端; 然后,在 Zabbix 服务器上定时执行脚本,检查Zabbix服务是否已启动,不可用时启动Zabbix服务;省中心服务器(ECS)定时执行服务,监测Zabbix服务器是否正常运行,运行异常时,通过短信或邮件发出告警信息.
本文设计的国民体质监测系统,基于分布式的架构设计,提供了灵活开放的数据上报管道,便于全省范围的数据上报汇总,而且,本系统强化了上报统计功能,便于评估各市、中心的工作成效.此外,多样化的国民体质数据分析有利于评估国民体质数据的现状及发展趋势,系统将统计结果以图表的方式生动、清楚、形象地展示给用户.
下阶段的工作我们将更多地扩展系统功能.数据统计分析系统需要增加阶段性统计报告,以便管理用户可以通过本系统得到阶段性的用户监测报告.同时,系统将引入更多的体检设备、运动设备以及健康监测设备,比如,我们将引入智能跑步机、血压监测仪以及可穿戴设备等,并进行二次开发,通过传感器采集用户的运动数据,将采集的数据直接上传到监测中心数据库,进一步提高监测效率[10].本系统采集并存储了大量的数据信息,接下来,我们将通过先进的人工智能、数据挖掘等技术有效地分析数据并提供更科学的处方.
1国务院.国务院关于加快发展体育产业促进体育消费的若干意见.http://www.gov.cn/zhengce/content/2014-10/20/content_9152.htm.[2014-10-20].
2中共中央国务院印发《“健康中国2030”规划纲要》.中华人民共和国国务院公报,2016,32:5–20.
3林乐逸.基于ASP.NET MVC和实体框架的软件项目管理平台[硕士学位论文].上海:上海交通大学,2012.
4李园,陈世平.MVC设计模式在ASP.NET平台中的应用.计算机工程与设计,2009,30(13):3180–3184.[doi:10.16208/j.issn1000-7024.2009.13.035]
5陈卫丹,李晓风,赵赫,等.基于 ASP.NET 的学生健康管理系统的设计.计算机技术与发展,2016,26(11):125–129.
6徐澄宇.基于网络数据同步机制的分布内容管理系统设计与实现[硕士学位论文].长春:吉林大学,2015.
7尚岑,王东雨,宇文姝丽.数据挖掘技术在健康数据分析中的应用.医学信息学杂志,2016,37(5):54–58.
8周桐,元沐南,赵赫,等.基于 iOS 的慢性病跟踪客户端.计算机系统应用,2016,25(9):73–78.[doi:10.15888/j.cnki.csa.005319]
9张建军,刘虎,倪芳英.基于 SSH 与 Highcharts 整合架构的 Web 应用研究.计算机技术与发展,2013,23(9):245–247,251.
10Hugon P.Phya pa Chos kyi seng ge on Argumentation by Consequence (thal’gyur)—the nature,function,and form of consequence statements.Journal of Indian Philosophy,2013,41(6):671–702.[doi:10.1007/s10781-013-9205-4]
National Physical Fitness Monitoring System
XU Ji-Ming1,2,ZHAO He1,WANG Wei-Dong1,ZHANG Zhong-Xian1,LI Xiao-Feng1,2,ZHOU Tong2,DING Zeng-Hui1,21(Hefei Institutes of Physical Sciences,Chinese Academy of Sciences,Hefei 230031,China)2(University of Science and Technology of China,Hefei 230026,China)
With the economic development in society,people do not only pursue higher material life,but they also pay more attention to their physical health and monitor their own health information.This paper introduces the National Physical Fitness Monitoring System,which is used to monitor the users’ personal information,health data and basic motion data,and provide a complete one-stop service solution for health management and chronic disease intervention.The system consists of data statistics and analysis subsystem based on .NET MVC,data synchronization service and data aggregation service based on Windows service and system monitoring program based on Zabbix and so on,and the system can also provide access forms:the Web and the mobile terminal access.The data statistics and analysis subsystem is used to count the user data,and it uses the data mining technology to give the statistical analysis result and the scientific fitness guidance scheme.The data synchronization service is used to prepare data to ensure data integrity and consistency of the system.The data aggregation service aggregates data from the ground station database of provincial data center to the central database,and the data can be exchanged between the central database and the data statistics and analysis subsystem.The system monitoring program monitors the server networking,IIS state,the state of the database as well as the possible errors in the running process of the system,and gives the warning information by message or e-mail.The National Physical Fitness Monitoring System,we designed and developed,provides an effective national physical fitness monitoring and scientific fitness guidance scheme to help users improve their physical condition.
data statistics and analysis system; .NET MVC; Zabbix; data synchronization; data aggregation; Windows service
许继明,赵赫,王卫东,张中贤,李晓风,周桐,丁增辉.国民体质监测系统.计算机系统应用,2017,26(10):61–66.http://www.c-sa.org.cn/1003-3254/5980.html
中国科学院科技服务网络计划项目(KFJ-SW-STS-161); 安徽省科技重大专项(16030901057)
2017-01-09; 采用时间:2017-02-13