許繼明 ,趙 赫 ,王衛東 ,張中賢 ,李曉風 ,周 桐 ,丁增輝
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