王 洵
对于飞行员等从事特殊职业的人群而言,日常的体温、脉搏、血压等基本生理参数检测频繁,基本每次飞行或工作前都需要进行检测以评估身体状况。基于这种需求,我们研制了一种由1台主机和10台终端机组成的可以快速检测基本生理检查信息(包括体温、脉搏和血压)、心率变异性分析、心理量表测试、闪光融合等指标[1-5],并最终能依据检测结果,结合检测对象的日常体检数据,对其身体状况是否符合工作要求作出综合评价的体检仪。作为整套装备的核心,主机软件系统十分重要,它可以对日常大量体检数据进行存储、分析、整理、查询等,并根据以往体检数据的变化情况进行总体评估,实现多指标综合评价。
本设计的主要任务是编制数据管理软件,使主机可以通过局域网或互联网与终端机连接,并读取终端机的检测数据,建立和管理检测数据,并可进行检测数据的对比分析。
主机可采用一般的个人计算机。主机系统软件基于 Windows XP、Windows 7或者 Windows Sever 2003操作系统,采用C/S架构,底层采用SQLServer数据库,采用商用的中间件,应用层使用VS.net开发。系统设计结构为3层:用户界面层、中间层、数据库层(如图1所示)。其中,数据库层为关系数据库和文件包,根据系统功能,从逻辑上分为数据库、模型库、知识库和方法库,从物理上分为Microsoft SQL Server数据库表和直接存储文件,物理库主要针对上述的逻辑库进行建表实现;中间层从功能上看是数据库管理的中间件,主要包括Borland的DBE数据库引擎、系统专用的数据处理模块(信息处理、决策咨询和科学计算);用户界面层主要实现数据的输入和输出。
图1 主机软件系统设计结构图
中间件与数据库都是为用户界面显示提供服务,因此,主机系统软件的结构设计依赖界面操作流程进行划分。根据实际需求,将主机软件系统划分为信息管理和硬件管理2个部分。
信息管理的目标是优化、整合数据,建立统一标准的数据库,根据体检需求建立信息管理体系。具体划分为被体检人基本信息管理、体检信息管理、健康信息管理。主要功能是对人员基本信息、人员体检信息、人员健康信息等进行存储、整理、分析、研究和分类,建立高效、稳定、快捷的信息存储和展示平台,提高信息化水平。可针对单个被体检人的生理心理指标进行统计,也可针对一类被体检群体进行生理心理指标统计。
主界面风格采用菜单与子菜单的形式,点击主菜单信息管理可弹出一级子菜单,点击一级子菜单可弹出二级子菜单,点击二级子菜单弹出对应的人机界面,例如单击人员信息查询,进入人员基本信息查询界面,点击人员信息录入,进入人员基本信息录入界面。信息管理部分一级子菜单共有4个,有体检医生基本信息管理、被体检人员基本信息管理、被体检人员健康信息管理、被体检人员体检信息管理等。
2.2.1 体检医生基本信息管理
包括体检医生基本信息录入、信息查询与修改。
2.2.1.1 体检医生基本信息录入
系统有一个固定的管理员用户,该用户可以进行体检医生基本信息录入,当使用体检医生用户登录系统后,该子菜单选项变灰,无法使用。基本操作有录入、清空和退出。单击“录入”后,系统将填写好的体检医生基本信息录入到数据库中,其中允许部分信息缺项;单击“清空”后,系统清空所有的信息项;单击“退出”后,退出现有界面,进入主机软件主界面。在输入的界面项目中,设置了医生姓名、证件号、出生日期、性别、单位、用户ID、用户密码等。
在存储分配方面,设置了管理员用户系统固定的用户名和登录密码,该内容在主机程序中设定,不在数据库中存储。在数据库中建立体检医生基本信息表,对应录入界面中的各项目,分别设置了相应字段名。
2.2.1.2 体检医生基本信息查询与修改
管理员和体检医生都可进入体检医生基本信息查询与修改菜单。基本操作包括查询、修改、清空、列表和退出。管理员可以点选所有基本操作,体检医生只能点选修改和退出操作。单击查询后,系统将依照填写好的医生姓名或证件号进行数据库检索,当输入为医生姓名,并且有重名时,系统会弹出选择列表供选择查询;单击“修改”后,系统将修改好的医生信息保存到数据库;单击“清空”后,清空界面所有输入项;单击“列表”后,可列出系统数据库中所有的体检医生列表;单击“退出”后,退出体检医生信息修改界面。
2.2.2 被体检人员基本信息管理
包括被体检人员基本信息录入、信息查询与修改。
2.2.2.1 被体检人员基本信息录入
管理员与体检医生都可进入被体检人员基本信息录入菜单。基本操作包括录入、清空和退出。单击“录入”后,系统将填写好的被体检人员基本信息录入到数据库中,依据证件号,杜绝录入重复的人员信息;单击“清空”后,系统清空界面所有输入项;单击“退出”后,退出被体检人员基本信息录入界面。在输入的界面项目中,设置了被体检人员姓名、证件号、出生日期、性别、身高、单位、职务、录入日期等。在数据库中建立被体检人员基本信息表,对应录入界面中的各项目分别设置了相应字段名。
2.2.2.2 被体检人员基本信息查询与修改
管理员与体检医生都可进入被体检人员基本信息查询与修改菜单。基本操作包括查询、修改、清空、列表和退出。单击查询后,系统将依照填写好的被体检人员姓名或证件号进行数据库检索,当输入信息有相关重复记录时,弹出选择列表供选择查询;单击“修改”后,系统将修改好的被体检人员信息保存到数据库;单击“清空”后,清空界面所有输入项;单击“列表”后,可列出系统数据库中所有的被体检人员列表;单击“退出”后,退出被体检人员信息查询界面。
2.2.3 被体检人员体检信息管理
包括被体检人员体检信息查询、体检信息统计分析。
2.2.3.1 被体检人员体检信息查询
管理员与体检医生都可进行被体检人员体检信息的查询。飞行员体检信息是由体检终端上传至主机的,根据体检仪的技术性能,这些信息包括基本生理检查信息(体温、脉搏和血压)、心率变异性分析、心理量表测试、闪光融合等。在界面设计中,将个人的体检信息全部列在一页内,该界面的基本操作包括查询、清空、退出。单击查询后,系统将依照填写好的被体检人员基本信息进行数据库检索,当输入信息并且有相关重复记录时,弹出选择列表供选择查询;单击“清空”后,系统清空界面所有输入项;单击“退出”后,退出被体检人员体检信息查询界面。在输入的界面项目中,用户可以输入的内容只能是被体检人员的基本信息,包括被体检人员的姓名、证件号、出生日期、性别、身高等。被体检人员体检信息保存在数据库被体检人员体检信息表中,并按体检终端机上传到主机的各种指标设置了相应字段名。
2.2.3.2 被体检人员体检信息统计分析
在统计分析界面,系统提供了多项统计条件,当用户勾选相应统计条件时,即可进行统计分析。统计信息包括体检数据均值、方差等,基本操作包括统计分析、清空、退出。单击统计分析,系统将依照填写好的统计条件进行数据库检索,检索完毕,将所有数据进行整理,并进行统计计算;单击“清空”后,系统清空界面所有输入项;单击“退出”后,退出被体检人员体检信息统计分析界面。统计条件主要包括被体检人员单体统计、群体统计、体检日期范围、人员群体范围、体检单项等。被体检人员体检信息统计分析依赖数据库中被体检人员基本信息表和体检信息表。
2.2.4 被体检人员健康信息管理
包括特征点(离群点)检测、聚类。运用数据分析的方法,根据各种生理心理指标自身的特点,在程序中设置了特征点检测和聚类分析功能,主要是辅助体检医生对大量的体检数据进行分析和整理,找出特定人群某些体检数据中反映的具体问题。
2.2.5 注释设计
程序中的注释遵循了以下的安排:模块首部添加说明性注释,主要说明模块的功能、调用条件等;分支点处添加注释,清晰解释程序执行脉络;成员变量、成员函数注释说明成员的功能、范围、缺省条件等;使用逻辑添加必要注释。
硬件管理主要针对体检仪的多个体检终端进行集成化管理,实现终端与主机的网络互联,实时监控终端的状态信息,将终端采用的数据进行收集整理,按照通信协议,对传输来的字节序列进行解析,并将解析后的数据存入数据库。
主界面风格采用菜单与子菜单的形式,点击主菜单“信息管理”可弹出一级子菜单,点击“一级子菜单”弹出对应的人机界面,例如单击“终端状态查看”,进入终端状态查看界面。下面主要介绍网络通信、终端状态查看、终端数据实时演示等的设计。
3.2.1 网络通信
主机软件系统运行以后,网络通信作为主机的一项功能,在后台另外的线程中运行,无需人机交互进行控制,运行周期与主机软件相同。主机软件采用C/S结构中服务器的形式运行,监听来自客户端的连接。
主机软件服务器端采用IO完成端口模型(IO completion port),该模型是伸缩性较好的一种模型,可一次管理多个套接字,并可异步地管理IO请求。主机服务器监听终端连接的逻辑流程如图2所示。
读写完成端口上有信号时,说明终端向主机发送了体检数据,根据数据类型的不同,进行相应的保存、显示。逻辑流程如图3所示。
图2 主机服务器监听终端连接的逻辑流程
图3 读写完成端口读写终端数据的逻辑流程
网络通信的接口主要为全局共享数据。从上图的case中判断,如果是客户端向服务器发送数据,则在ClientInfo中设置响应标志位,同时将数据暂存到RecvData中,并保存到对应数据库表中。
3.2.2 终端状态查看
单击子菜单项“终端状态查看”即进入该界面,只提供显示信息和退出功能,不能进行更多的输入。界面能显示当前终端的连接状态和数据传输状态。通过网络通信中的接口ClientInfo,可以判断当前客户端的连接状态和传输状态。终端状态监测流程如图4所示。
图4 终端状态监测流程
3.2.3 终端数据实时演示
可根据选择的终端,在主机界面上显示该终端的实时体检数据。通过网络通信中的接口ClientInfo,可以判断当前客户端的连接状态,如果连接成功,则分析RecvData,并实时显示体检情况。终端状态监测流程如图5所示。
图5 终端状态监测流程
为了测试主机软件系统的性能,我们进行了多次试验和试用,每次测试均采用了一台主机和10台终端机运行,由1名体检医生操作主机,10名被体检人员同时自主操作体检终端机。通过这些试验和试用,说明采用文中所叙述的主机软件系统设计方案,能很好地发挥主机软件的核心作用,可以方便管理大量的体检数据,便于医生对比过往体检数据,对检测对象的身体状况做出合理判断。
[1] 王政,李延军,严曲,等.监控作业脑力疲劳综合评定方法研究[J].航天医学与医学工程,2010,23(1):20-24.
[2] 缪毅强,刘锦高,罗琦琨.手持式工作能力测试仪的设计和制作[J].医疗设备信息,2005,20(9):10-12.
[3] 左昕,彭李,李敏,等.心理弹性训练对水面舰艇军人正/负性情绪和心率变异性的影响[J].第三军医大学学报,2011,33(24):2 596-2 599.
[4] 王文远,赵建明.针刺改善运动性心理疲劳的观察与研究[J].临床军医杂志,2002,30(5):1-3.
[5] 张爱华,王业泰,赵治月.视觉显示终端视觉疲劳对脉搏信号的影响[J].中国工业医学杂志,2010,23(3):166-169.