1. 绪论
随着人口老龄化加剧及慢性病发病率攀升,糖尿病与高血压已成为全球公共卫生领域的重大挑战。据世界卫生组织统计,全球约4.22亿人患有糖尿病,高血压患者数量则超过13亿,且因疾病管理不当导致的并发症(如心脑血管疾病、肾衰竭等)显著增加了医疗负担。传统血糖、血压监测依赖专业医疗设备及频繁的线下检测,存在操作复杂、成本高、数据连续性差等问题,导致患者依从性低、健康管理效率不足。在此背景下,移动健康(mHealth)技术通过智能手机应用程序(APP)整合便携式传感器、人工智能(AI)与物联网技术,为慢性病管理提供了新的解决方案。
本研究旨在开发一款集成高精度测量技术与智能健康管理功能的血糖血压监测APP,通过创新算法优化数据采集准确性,结合个性化健康干预服务与隐私保护机制,解决现有APP在用户体验、数据可靠性和安全性方面的不足,助力用户实现疾病的早期预警、动态监测与科学管理。
2. 系统设计
2.1. 需求分析
本文根据市场调研,决定将从用户需求,功能需求以及非功能需求方面进行分析,进一步决定APP的设计。
1) 用户需求分析:本文从各个目标用户的需求方向进行分析。比如慢性病患者,中老年人群以及亚健康人群等。各个用户的需求大不相同,所以本文尽力确保每个用户都能解决其需求问题。
2) 功能需求分析:本文将从该款APP的功能需求方向进行设计。比如数据采集、数据存储、数据分析、数据可视化、用户管理等。
3) 非功能需求分析:针对用户个人使用需求方面进行分析。比如性能、安全、可靠性等[1]。
2.2. 系统架构设计
系统架构设计分为总体架构设计以及功能模块设计两个方面。其中主要包括服务器端、数据存储与检索模块、数据采集模块和数据分析模块等。
2.2.1. 总体架构设计
(一) 客户端
客户端是用户直接交互的界面,负责数据采集、展示以及与服务器端的通信,主要包括用户界面模块、数据处理与验证模块和通信模块。
用户界面模块中分成测量数据录入界面、健康数据展示界面以及设置与个人信息管理模块。测量数据录入界面是提供简洁直观的界面,方便用户手动输入血糖、血压测量值,或者与支持的蓝牙测量设备进行连接,自动获取测量数据[2]。健康数据展示界面以图表(如折线图、柱状图)和表格形式展示用户的血糖、血压历史数据,方便用户查看数据变化趋势。同时,提供关键指标的实时显示,如当前最新测量值、平均值、最高值和最低值等。在设置与个人信息管理界面中用户可以设置提醒功能,如测量时间提醒;管理个人信息,包括姓名、年龄、性别、身高、体重、病史等基本信息,这些信息将用于后续的数据分析和健康评估。
数据处理与验证模块分为数据个数验证以及初步数据分析两部分。在数据格式验证中,对用户输入或设备采集的数据进行格式检查,确保数据的合法性和完整性。例如,检查血糖值和血压值是否在合理范围内,防止无效数据进入系统。而在初步数据分析中,则是在本地对采集到的数据进行简单分析,如计算当天的平均值、波动范围等,为用户提供即时的健康反馈。
通信模块负责与服务器端进行数据交互。将本地采集的测量数据、用户设置信息等发送到服务器端,并从服务器端接收更新的健康建议、系统通知等信息。采用安全可靠的通信协议1,确保数据传输过程中的安全性。
(二) 服务器端
服务器端承担着业务逻辑处理、数据存储与管理以及与客户端和数据库端交互的重要任务,主要包含以下几个核心模块。
1) 用户管理模块
用户注册与登录:处理用户的注册请求,验证用户输入的信息(如用户名、密码、邮箱等)是否符合要求,并将用户信息存储到数据库中。在用户登录时,验证用户身份,生成并返回身份令牌(Token),用于后续的请求认证。
权限管理:根据用户角色(如普通用户、医生用户等)分配不同的系统权限,确保用户只能访问和操作其权限范围内的功能和数据。
2) 数据接收与处理模块
接收客户端数据:监听客户端的请求,接收测量数据、用户设置等信息,并进行初步的合法性检查。
数据预处理:对接收到的数据进行进一步处理,如数据清洗、标准化等,确保数据质量,以便后续的存储和分析。
3) 数据分析与健康评估模块
数据分析算法:运用专业的数据分析算法,结合用户的历史数据和个人信息,对血糖、血压数据进行深度分析。例如,通过时间序列分析预测血糖血压的变化趋势,利用机器学习算法评估用户患相关疾病的风险。
健康评估与建议生成:根据数据分析结果,结合医学知识库,为用户生成个性化的健康评估报告和针对性的健康建议,如饮食调整、运动计划、用药提醒等。
4) 数据存储与检索模块
与数据库交互:负责将处理后的数据存储到数据库中,并根据客户端或其他模块的请求从数据库中检索数据。提供高效的数据存储和查询接口,确保数据的快速读写。
缓存管理:为提高系统性能,采用缓存技术(如Redis)对频繁访问的数据进行缓存,减少数据库的查询压力。
5) 通信与通知模块
与第三方服务集成:可与短信平台、邮件服务器等第三方服务集成,实现向用户发送系统通知、提醒信息等功能。例如,当用户的血糖血压数据出现异常时,及时向用户发送短信提醒。
通信支持:对于一些需要实时交互的功能,如医生与患者的在线咨询,提供实时通信支持,确保信息的及时传递。
(三) 数据库端
数据库端用于存储系统运行过程中的各类数据,是整个APP的数据基石,主要包含了用户信息表、测量数据表、健康评估表、系统配置表以及日志记录表。通过这些表格,可以将用户信息数据等合理安排分配。数据库的作用是显著的,通过更新原始数据库,可以将其中包含的数据信息进行增删处理,具体是删除无价值、落后的数据信息,补充有价值、时效性高的数据,这样能够显著提高数据质量和利用率[3]。
2.2.2. 功能模块设计
1) 数据采集模块
该模块负责获取用户的血糖和血压数据,为后续的健康分析提供基础,主要包含以下功能。
手动输入:提供简洁直观的界面,允许用户手动输入测量的血糖值、收缩压和舒张压数据。输入时,对数据格式进行实时验证,确保输入的数值在合理范围内,例如血糖值一般在3.9~16.7 mmol/L之间,收缩压在90~139 mmHg,舒张压在60~89 mmHg,防止用户输入无效数据[4]。
设备连接采集:支持与各类主流的蓝牙或Wi-Fi连接的血糖血压测量设备进行配对。通过设备厂商提供的SDK或标准通信协议,自动接收测量设备发送的数据,无需用户手动记录,提高数据采集的准确性和便捷性。
采集时间记录:在采集数据的同时,自动记录每次测量的准确时间,精确到分钟甚至秒,方便后续分析数据随时间的变化规律[5]。
数据来源标注:记录数据是通过手动输入还是设备采集获得,以便在数据分析和管理时进行区分和追溯。
2) 数据存储模块
此模块的主要职责是安全、高效地存储用户采集到的数据,确保数据的完整性和可查询性,涵盖以下功能。
本地存储:在用户设备端(如手机)提供本地数据库(如SQLite),用于临时存储采集到的数据。这样即使在网络不稳定或无网络的情况下,数据也不会丢失,待网络恢复后再同步到服务器端。本地存储的数据进行加密处理,保护用户隐私。
服务器存储:将用户的测量数据发送到服务器端,存储在服务器数据库(如MySQL、MongoDB等)中。服务器数据库具备高可靠性和可扩展性,能够处理大量用户的数据存储需求。数据按照一定的表结构和索引进行组织,方便快速查询和检索。
数据备份:定期对服务器上的数据进行备份,防止因硬件故障、软件错误或人为操作失误导致数据丢失。备份数据存储在异地的数据中心,以应对可能出现的自然灾害等极端情况。
数据版本管理:随着用户数据的不断更新和修改,记录数据的不同版本,方便追溯数据的历史变化,同时在需要时可以恢复到特定版本的数据。
3) 数据分析模块
该模块运用专业的算法和模型对存储的数据进行深入分析,为用户提供有价值的健康洞察和建议,包括以下功能:
基本统计分析:计算血糖和血压数据的各种统计指标,如平均值、中位数、标准差、最大值、最小值等,帮助用户了解自己的血糖血压整体水平和波动情况。
趋势分析:通过绘制折线图、柱状图等可视化图表,直观展示血糖血压随时间的变化趋势。利用时间序列分析算法,预测未来一段时间内血糖血压的可能走势,提前发现潜在的健康风险。
异常检测:根据医学标准和用户的历史数据,设定合理的阈值,实时检测数据是否出现异常。例如,当血糖值连续多次超出正常范围或血压突然大幅波动时,及时向用户发出警报,并提供相应的应对建议。
健康评估:结合用户的年龄、性别、身高、体重、病史等个人信息,运用专业的健康评估模型,对用户的血糖血压健康状况进行综合评估,给出健康等级(如良好、一般、风险等)和详细的评估报告。
个性化建议生成:根据数据分析结果和健康评估结论,为用户提供个性化的健康建议,包括饮食调整(如控制糖分、盐分摄入)、运动计划(如适合的运动类型、运动强度和时间)、作息规律等方面的建议,帮助用户改善健康状况。
4) 用户管理模块
此模块用于管理用户的注册、登录、信息维护以及权限控制等功能,保障用户的正常使用和系统的安全性,主要功能如下。
注册与登录:提供多种注册方式,如手机号码注册、邮箱注册等,用户需要设置用户名和密码。在登录时,支持密码登录和第三方账号登录(如微信、QQ等),方便用户快速访问APP。登录过程中进行身份验证,确保用户身份的合法性。
个人信息管理:允许用户查看和修改个人基本信息,包括姓名、年龄、性别、身高、体重、病史等。同时提供隐私设置选项,让用户可以自主控制个人信息的公开程度[6]。
用户权限管理:根据用户类型(普通用户、医生用户、管理员等)分配不同的权限。普通用户可以进行数据采集、查看个人健康数据和分析报告;医生用户除了具备普通用户的功能外,还可以查看和管理患者的健康数据,并提供专业的医疗建议;管理员则拥有最高权限,负责系统的整体维护和管理。
通知与消息管理:向用户推送系统通知、健康提醒、新功能介绍等消息。用户可以在APP内查看消息历史记录,并对消息进行分类管理,如标记为已读、删除等操作。通过设置亲情号码,可将测得的健康信息,推送到设定的亲情号码上。推送的方式采用手机短信的形式进行。用户设置好亲情号码,测量完各个指标后,点击信息推送,各种测量信息通过短信的形式发到亲情号码上[7]。
3. 系统实现
3.1. 系统架构设计
本APP采用分层架构设计,分为数据采集层、算法处理层、服务应用层和安全防护层,各层通过标准化API交互,确保模块解耦与可扩展性。
数据采集层:集成智能手机内置传感器(光学传感器、加速度计)与蓝牙外接设备(如血糖仪、血压袖带),支持多模态数据同步采集(血糖、血压、心率、运动量)。
算法处理层:基于云端–边缘协同计算框架,核心算法部署于边缘端(用户手机)以降低延迟,复杂模型训练与更新由云端完成。
服务应用层:提供用户交互界面(UI)、健康报告生成、AI建议推送及医患协作功能。
安全防护层:贯穿全流程的数据加密、权限控制与隐私保护机制。
3.2. 数据处理与人工智能算法实现
1) 数据预处理
噪声过滤:采用滑动窗口中值滤波消除运动伪影,利用小波变换(Daubechies-4)分离信号高频噪声。
标准化与增强:对血糖数据按ISO 15197:2013标准进行分段归一化,使用SMOTE算法平衡类别分布。
2) 核心算法模型
血糖预测模型(时间序列分析)
模型选择:基于LSTM (长短期记忆网络)与Attention机制,捕捉血糖变化的时序依赖关系。
输入特征:历史血糖值、胰岛素剂量、饮食热量(通过OCR识别食物图片估算)、运动强度(加速度计数据)。
损失函数:定制加权MSE (对低血糖事件赋予更高权重)。
优化器:Nadam (结合Nesterov动量与Adam)。
正则化:Dropout (rate = 0.3)与L2正则化(λ = 0.01)。
3) 血压分类模型(异常检测)
模型选择:轻量化梯度提升树(LightGBM)与孤立森林(Isolation Forest)集成,区分正常/高血压状态。
特征工程:提取收缩压/舒张压比值、昼夜波动率、脉压差等15维特征。
超参数调优:基于贝叶斯优化(GPyOpt库)搜索最佳树深度与叶子节点数。
交叉验证:5折时序交叉验证,避免数据泄露。
4) 个性化校准算法(在线学习)
目标:根据用户个体差异(如肤色、血管弹性)动态调整光学传感器测量参数。
方法:构建迁移学习框架,以预训练的ResNet-18提取皮肤图像特征(RGB与近红外波段)。
模型评估指标
血糖预测:
精度:平均绝对误差(MAE) ≤ 0.6 mmol/L,符合ISO 15197:2013临床标准。
临床一致性:Clark误差网格分析A + B区占比 ≥ 98%。
灵敏度/特异度:分别针对低血压(<90/60 mmHg)与高血压(>140/90 mmHg)场景,F1-score ≥ 0.92。
ROC-AUC:对比SVM与随机森林,AUC提升12% (达0.89)。
3.3. 数据安全与隐私保护实现
该部分分为加密算法、权限控制策略以及隐私增强技术。
1) 加密算法
数据传输:
使用TLS 1.3协议加密APP与云端通信,采用前向保密(ECDHE-ECDSA)防止密钥泄露导致历史数据解密。
生物特征数据(如指纹绑定设备)通过AES-256-GCM加密,密钥由硬件安全模块(HSM)托管[8]。
数据存储:
本地SQLite数据库启用PRAGMA加密,使用SQLCipher库实现透明数据加密(TDE)。
云端数据采用混合加密:文件级AES-256加密 + 字段级国密SM4加密(针对敏感字段如身份证号)。
2) 权限控制策略
最小权限原则:Android端仅申请“BLUETOOTH_CONNECT”(外设配对)、“BODY_SENSORS”(心率监测)等6项必要权限。
动态权限申请:地理位置权限仅在生成“环境压力指数”时临时启用,使用后立即释放。
用户分级:普通用户(仅自身数据)、家属(经授权可查看)、医生(可读写患者数据) [9]。
操作日志:所有数据访问行为记录至区块链(Hyperledger Fabric),支持不可篡改审计。
3) 隐私增强技术
差分隐私(Differential Privacy):在聚合数据上传至公共健康研究平台时,对血糖值添加拉普拉斯噪声(ε = 0.1),确保个体不可识别。
联邦学习(Federated Learning):模型训练时,用户数据保留在本地设备,仅上传梯度参数(使用Secure Aggregation协议),防止原始数据泄露。
3.4. 系统性能优化
1) 边缘计算加速:在手机端部署TensorFlow Lite模型,利用NPU (如华为HiAI)实现推理速度 < 50 ms/次。
2) 能耗管理:传感器采样频率自适应调节:静止状态下血糖监测间隔延长至15分钟,运动状态下缩短至5分钟。
4. 系统测试与评估
4.1. 测试方案
本文针对APP做了一系列的测量方案。有功能测试和性能测试两方面。功能测试主要是具体测量血糖血压的一系列功能是否存在问题。性能测试则是尽力在已有的版本是进行加强与更新。
4.1.1. 功能测试
功能测试分为基本测量功能测试、数据管理功能测试、健康建议功能测试以及提醒功能测试。
其中基本测量功能测试包括了手动输入测试、设备连接测试以及多次测量测试。手动输入测量主要操作是在APP中手动输入不同范围的血糖、血压值(包括正常范围、临界值、异常值),检查APP能否正确接收并存储这些数据,且在数据展示页面准确显示[10]。设备连接测试使用多种支持的血糖血压测量设备,通过蓝牙或其他连接方式与APP进行配对连接。检查连接过程是否顺畅,APP能否自动识别设备并准确获取测量数据。在连接过程中,进行中断连接、重新连接等操作,测试APP的响应是否正常。多次测量测试通过使用同一设备或不同设备进行多次测量,检查APP是否能正确记录每次测量的时间、数值等信息,且数据不出现混淆或丢失[11]。
数据管理功能测试包括了数据存储测试、数据查询测试以及数据编辑与删除测试。在数据存储测试中,输入或接收多组测量数据后,关闭APP再重新打开,检查数据完整保存,没有丢失或损坏。卸载并重新安装APP,查看之前存储的数据依然可正常访问。数据查询测试中使用不同的查询条件,如按日期范围、测量类型(血糖或血压)、特定时间段等进行数据查询,检查APP能够快速准确地筛选出符合条件的数据并展示。而数据编辑与删除测试中,选择一条已记录的数据进行编辑操作,修改测量值、时间等信息后保存,检查数据正确更新。对不需要的数据进行删除操作,确认数据被彻底删除且不影响其他数据的完整性。
在健康建议功能测试中通过输入不同的血糖、血压测量值组合(正常、偏高、偏低等),结合用户设定的个人基本信息(年龄、性别、病史等),检查APP生成的健康建议是否合理且有针对性[12]。
提醒功能测试则是分为设置提醒和触发测试。设置提醒是通过设置不同类型的提醒(测量提醒、服药提醒等),包括提醒时间、提醒周期(每天、每周等)和提醒方式(声音、震动、弹窗)。触发测试则是等待提醒时间到达,检查APP是否按照设置的方式准时发出提醒。在提醒发出后,进行不同操作(如关闭提醒、完成任务等),测试APP的后续响应是否正确。
4.1.2. 性能测试
性能测试有响应时间测试、稳定性测试以及兼容性测试三个方面。
响应时间测试有测量响应和操作响应。在测量响应中使用秒表或专业测试工具,记录从启动测量到APP获取并显示测量数据的时间,多次测量取平均值,评估响应时间是在合理范围内(例如不超过10秒)。而操作响应中,在APP中进行各种操作,如快速切换页面、频繁输入数据、生成复杂报告等,使用工具记录每次操作的响应时间,确保操作响应迅速,不会让用户长时间等待。稳定性测试中,通过长时间运行测试,让APP在设备上持续运行数小时甚至数天,期间不断进行测量、数据管理等操作,监测APP并没出现崩溃、闪退、数据丢失等异常情况。以及压力测试,比如在设备资源紧张的情况下(如同时运行多个大型应用程序、设备内存占用较高)运行APP,进行大量数据的输入、存储和查询操作,确定了APP的稳定性和性能表现[13]。
兼容性测试通过设备兼容性以及操作系统兼容性两种测试。设备兼容性测试中,在多种不同品牌、型号、屏幕分辨率的手机和平板设备上安装并运行APP,测试基本功能、界面显示、操作响应等显示正常。操作系统兼容性中则是针对主流的移动操作系统版本(如iOS的不同版本、Android的不同版本)进行测试,检查APP在各个操作系统环境下的安装、启动、功能运行以及数据处理确定正常,确保不存在兼容性问题导致的功能异常。
5. 总结与展望
该APP现如今能够提高健康监测效率与依从性、有效数据管理与分析以及能够助力远程医疗与家庭关怀。但仍存在了专业医疗指导的局限性的问题,这也是未来的研究方向,同时希望能有更精准的测量技术,更智能的健康管理服务以及能够与其他健康设备的互联互通。
基金项目
南通大学杏林学院大学生创新训练项目项目代码:202413993002x1。
NOTES
*通讯作者。
1HTTPS。