王 洵
對(duì)于飛行員等從事特殊職業(yè)的人群而言,日常的體溫、脈搏、血壓等基本生理參數(shù)檢測(cè)頻繁,基本每次飛行或工作前都需要進(jìn)行檢測(cè)以評(píng)估身體狀況?;谶@種需求,我們研制了一種由1臺(tái)主機(jī)和10臺(tái)終端機(jī)組成的可以快速檢測(cè)基本生理檢查信息(包括體溫、脈搏和血壓)、心率變異性分析、心理量表測(cè)試、閃光融合等指標(biāo)[1-5],并最終能依據(jù)檢測(cè)結(jié)果,結(jié)合檢測(cè)對(duì)象的日常體檢數(shù)據(jù),對(duì)其身體狀況是否符合工作要求作出綜合評(píng)價(jià)的體檢儀。作為整套裝備的核心,主機(jī)軟件系統(tǒng)十分重要,它可以對(duì)日常大量體檢數(shù)據(jù)進(jìn)行存儲(chǔ)、分析、整理、查詢等,并根據(jù)以往體檢數(shù)據(jù)的變化情況進(jìn)行總體評(píng)估,實(shí)現(xiàn)多指標(biāo)綜合評(píng)價(jià)。
本設(shè)計(jì)的主要任務(wù)是編制數(shù)據(jù)管理軟件,使主機(jī)可以通過(guò)局域網(wǎng)或互聯(lián)網(wǎng)與終端機(jī)連接,并讀取終端機(jī)的檢測(cè)數(shù)據(jù),建立和管理檢測(cè)數(shù)據(jù),并可進(jìn)行檢測(cè)數(shù)據(jù)的對(duì)比分析。
主機(jī)可采用一般的個(gè)人計(jì)算機(jī)。主機(jī)系統(tǒng)軟件基于 Windows XP、Windows 7或者 Windows Sever 2003操作系統(tǒng),采用C/S架構(gòu),底層采用SQLServer數(shù)據(jù)庫(kù),采用商用的中間件,應(yīng)用層使用VS.net開(kāi)發(fā)。系統(tǒng)設(shè)計(jì)結(jié)構(gòu)為3層:用戶界面層、中間層、數(shù)據(jù)庫(kù)層(如圖1所示)。其中,數(shù)據(jù)庫(kù)層為關(guān)系數(shù)據(jù)庫(kù)和文件包,根據(jù)系統(tǒng)功能,從邏輯上分為數(shù)據(jù)庫(kù)、模型庫(kù)、知識(shí)庫(kù)和方法庫(kù),從物理上分為Microsoft SQL Server數(shù)據(jù)庫(kù)表和直接存儲(chǔ)文件,物理庫(kù)主要針對(duì)上述的邏輯庫(kù)進(jìn)行建表實(shí)現(xiàn);中間層從功能上看是數(shù)據(jù)庫(kù)管理的中間件,主要包括Borland的DBE數(shù)據(jù)庫(kù)引擎、系統(tǒng)專用的數(shù)據(jù)處理模塊(信息處理、決策咨詢和科學(xué)計(jì)算);用戶界面層主要實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。
圖1 主機(jī)軟件系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖
中間件與數(shù)據(jù)庫(kù)都是為用戶界面顯示提供服務(wù),因此,主機(jī)系統(tǒng)軟件的結(jié)構(gòu)設(shè)計(jì)依賴界面操作流程進(jìn)行劃分。根據(jù)實(shí)際需求,將主機(jī)軟件系統(tǒng)劃分為信息管理和硬件管理2個(gè)部分。
信息管理的目標(biāo)是優(yōu)化、整合數(shù)據(jù),建立統(tǒng)一標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù),根據(jù)體檢需求建立信息管理體系。具體劃分為被體檢人基本信息管理、體檢信息管理、健康信息管理。主要功能是對(duì)人員基本信息、人員體檢信息、人員健康信息等進(jìn)行存儲(chǔ)、整理、分析、研究和分類,建立高效、穩(wěn)定、快捷的信息存儲(chǔ)和展示平臺(tái),提高信息化水平??舍槍?duì)單個(gè)被體檢人的生理心理指標(biāo)進(jìn)行統(tǒng)計(jì),也可針對(duì)一類被體檢群體進(jìn)行生理心理指標(biāo)統(tǒng)計(jì)。
主界面風(fēng)格采用菜單與子菜單的形式,點(diǎn)擊主菜單信息管理可彈出一級(jí)子菜單,點(diǎn)擊一級(jí)子菜單可彈出二級(jí)子菜單,點(diǎn)擊二級(jí)子菜單彈出對(duì)應(yīng)的人機(jī)界面,例如單擊人員信息查詢,進(jìn)入人員基本信息查詢界面,點(diǎn)擊人員信息錄入,進(jìn)入人員基本信息錄入界面。信息管理部分一級(jí)子菜單共有4個(gè),有體檢醫(yī)生基本信息管理、被體檢人員基本信息管理、被體檢人員健康信息管理、被體檢人員體檢信息管理等。
2.2.1 體檢醫(yī)生基本信息管理
包括體檢醫(yī)生基本信息錄入、信息查詢與修改。
2.2.1.1 體檢醫(yī)生基本信息錄入
系統(tǒng)有一個(gè)固定的管理員用戶,該用戶可以進(jìn)行體檢醫(yī)生基本信息錄入,當(dāng)使用體檢醫(yī)生用戶登錄系統(tǒng)后,該子菜單選項(xiàng)變灰,無(wú)法使用?;静僮饔袖浫?、清空和退出。單擊“錄入”后,系統(tǒng)將填寫(xiě)好的體檢醫(yī)生基本信息錄入到數(shù)據(jù)庫(kù)中,其中允許部分信息缺項(xiàng);單擊“清空”后,系統(tǒng)清空所有的信息項(xiàng);單擊“退出”后,退出現(xiàn)有界面,進(jìn)入主機(jī)軟件主界面。在輸入的界面項(xiàng)目中,設(shè)置了醫(yī)生姓名、證件號(hào)、出生日期、性別、單位、用戶ID、用戶密碼等。
在存儲(chǔ)分配方面,設(shè)置了管理員用戶系統(tǒng)固定的用戶名和登錄密碼,該內(nèi)容在主機(jī)程序中設(shè)定,不在數(shù)據(jù)庫(kù)中存儲(chǔ)。在數(shù)據(jù)庫(kù)中建立體檢醫(yī)生基本信息表,對(duì)應(yīng)錄入界面中的各項(xiàng)目,分別設(shè)置了相應(yīng)字段名。
2.2.1.2 體檢醫(yī)生基本信息查詢與修改
管理員和體檢醫(yī)生都可進(jìn)入體檢醫(yī)生基本信息查詢與修改菜單?;静僮靼ú樵儭⑿薷?、清空、列表和退出。管理員可以點(diǎn)選所有基本操作,體檢醫(yī)生只能點(diǎn)選修改和退出操作。單擊查詢后,系統(tǒng)將依照填寫(xiě)好的醫(yī)生姓名或證件號(hào)進(jìn)行數(shù)據(jù)庫(kù)檢索,當(dāng)輸入為醫(yī)生姓名,并且有重名時(shí),系統(tǒng)會(huì)彈出選擇列表供選擇查詢;單擊“修改”后,系統(tǒng)將修改好的醫(yī)生信息保存到數(shù)據(jù)庫(kù);單擊“清空”后,清空界面所有輸入項(xiàng);單擊“列表”后,可列出系統(tǒng)數(shù)據(jù)庫(kù)中所有的體檢醫(yī)生列表;單擊“退出”后,退出體檢醫(yī)生信息修改界面。
2.2.2 被體檢人員基本信息管理
包括被體檢人員基本信息錄入、信息查詢與修改。
2.2.2.1 被體檢人員基本信息錄入
管理員與體檢醫(yī)生都可進(jìn)入被體檢人員基本信息錄入菜單。基本操作包括錄入、清空和退出。單擊“錄入”后,系統(tǒng)將填寫(xiě)好的被體檢人員基本信息錄入到數(shù)據(jù)庫(kù)中,依據(jù)證件號(hào),杜絕錄入重復(fù)的人員信息;單擊“清空”后,系統(tǒng)清空界面所有輸入項(xiàng);單擊“退出”后,退出被體檢人員基本信息錄入界面。在輸入的界面項(xiàng)目中,設(shè)置了被體檢人員姓名、證件號(hào)、出生日期、性別、身高、單位、職務(wù)、錄入日期等。在數(shù)據(jù)庫(kù)中建立被體檢人員基本信息表,對(duì)應(yīng)錄入界面中的各項(xiàng)目分別設(shè)置了相應(yīng)字段名。
2.2.2.2 被體檢人員基本信息查詢與修改
管理員與體檢醫(yī)生都可進(jìn)入被體檢人員基本信息查詢與修改菜單?;静僮靼ú樵儭⑿薷?、清空、列表和退出。單擊查詢后,系統(tǒng)將依照填寫(xiě)好的被體檢人員姓名或證件號(hào)進(jìn)行數(shù)據(jù)庫(kù)檢索,當(dāng)輸入信息有相關(guān)重復(fù)記錄時(shí),彈出選擇列表供選擇查詢;單擊“修改”后,系統(tǒng)將修改好的被體檢人員信息保存到數(shù)據(jù)庫(kù);單擊“清空”后,清空界面所有輸入項(xiàng);單擊“列表”后,可列出系統(tǒng)數(shù)據(jù)庫(kù)中所有的被體檢人員列表;單擊“退出”后,退出被體檢人員信息查詢界面。
2.2.3 被體檢人員體檢信息管理
包括被體檢人員體檢信息查詢、體檢信息統(tǒng)計(jì)分析。
2.2.3.1 被體檢人員體檢信息查詢
管理員與體檢醫(yī)生都可進(jìn)行被體檢人員體檢信息的查詢。飛行員體檢信息是由體檢終端上傳至主機(jī)的,根據(jù)體檢儀的技術(shù)性能,這些信息包括基本生理檢查信息(體溫、脈搏和血壓)、心率變異性分析、心理量表測(cè)試、閃光融合等。在界面設(shè)計(jì)中,將個(gè)人的體檢信息全部列在一頁(yè)內(nèi),該界面的基本操作包括查詢、清空、退出。單擊查詢后,系統(tǒng)將依照填寫(xiě)好的被體檢人員基本信息進(jìn)行數(shù)據(jù)庫(kù)檢索,當(dāng)輸入信息并且有相關(guān)重復(fù)記錄時(shí),彈出選擇列表供選擇查詢;單擊“清空”后,系統(tǒng)清空界面所有輸入項(xiàng);單擊“退出”后,退出被體檢人員體檢信息查詢界面。在輸入的界面項(xiàng)目中,用戶可以輸入的內(nèi)容只能是被體檢人員的基本信息,包括被體檢人員的姓名、證件號(hào)、出生日期、性別、身高等。被體檢人員體檢信息保存在數(shù)據(jù)庫(kù)被體檢人員體檢信息表中,并按體檢終端機(jī)上傳到主機(jī)的各種指標(biāo)設(shè)置了相應(yīng)字段名。
2.2.3.2 被體檢人員體檢信息統(tǒng)計(jì)分析
在統(tǒng)計(jì)分析界面,系統(tǒng)提供了多項(xiàng)統(tǒng)計(jì)條件,當(dāng)用戶勾選相應(yīng)統(tǒng)計(jì)條件時(shí),即可進(jìn)行統(tǒng)計(jì)分析。統(tǒng)計(jì)信息包括體檢數(shù)據(jù)均值、方差等,基本操作包括統(tǒng)計(jì)分析、清空、退出。單擊統(tǒng)計(jì)分析,系統(tǒng)將依照填寫(xiě)好的統(tǒng)計(jì)條件進(jìn)行數(shù)據(jù)庫(kù)檢索,檢索完畢,將所有數(shù)據(jù)進(jìn)行整理,并進(jìn)行統(tǒng)計(jì)計(jì)算;單擊“清空”后,系統(tǒng)清空界面所有輸入項(xiàng);單擊“退出”后,退出被體檢人員體檢信息統(tǒng)計(jì)分析界面。統(tǒng)計(jì)條件主要包括被體檢人員單體統(tǒng)計(jì)、群體統(tǒng)計(jì)、體檢日期范圍、人員群體范圍、體檢單項(xiàng)等。被體檢人員體檢信息統(tǒng)計(jì)分析依賴數(shù)據(jù)庫(kù)中被體檢人員基本信息表和體檢信息表。
2.2.4 被體檢人員健康信息管理
包括特征點(diǎn)(離群點(diǎn))檢測(cè)、聚類。運(yùn)用數(shù)據(jù)分析的方法,根據(jù)各種生理心理指標(biāo)自身的特點(diǎn),在程序中設(shè)置了特征點(diǎn)檢測(cè)和聚類分析功能,主要是輔助體檢醫(yī)生對(duì)大量的體檢數(shù)據(jù)進(jìn)行分析和整理,找出特定人群某些體檢數(shù)據(jù)中反映的具體問(wèn)題。
2.2.5 注釋設(shè)計(jì)
程序中的注釋遵循了以下的安排:模塊首部添加說(shuō)明性注釋,主要說(shuō)明模塊的功能、調(diào)用條件等;分支點(diǎn)處添加注釋,清晰解釋程序執(zhí)行脈絡(luò);成員變量、成員函數(shù)注釋說(shuō)明成員的功能、范圍、缺省條件等;使用邏輯添加必要注釋。
硬件管理主要針對(duì)體檢儀的多個(gè)體檢終端進(jìn)行集成化管理,實(shí)現(xiàn)終端與主機(jī)的網(wǎng)絡(luò)互聯(lián),實(shí)時(shí)監(jiān)控終端的狀態(tài)信息,將終端采用的數(shù)據(jù)進(jìn)行收集整理,按照通信協(xié)議,對(duì)傳輸來(lái)的字節(jié)序列進(jìn)行解析,并將解析后的數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
主界面風(fēng)格采用菜單與子菜單的形式,點(diǎn)擊主菜單“信息管理”可彈出一級(jí)子菜單,點(diǎn)擊“一級(jí)子菜單”彈出對(duì)應(yīng)的人機(jī)界面,例如單擊“終端狀態(tài)查看”,進(jìn)入終端狀態(tài)查看界面。下面主要介紹網(wǎng)絡(luò)通信、終端狀態(tài)查看、終端數(shù)據(jù)實(shí)時(shí)演示等的設(shè)計(jì)。
3.2.1 網(wǎng)絡(luò)通信
主機(jī)軟件系統(tǒng)運(yùn)行以后,網(wǎng)絡(luò)通信作為主機(jī)的一項(xiàng)功能,在后臺(tái)另外的線程中運(yùn)行,無(wú)需人機(jī)交互進(jìn)行控制,運(yùn)行周期與主機(jī)軟件相同。主機(jī)軟件采用C/S結(jié)構(gòu)中服務(wù)器的形式運(yùn)行,監(jiān)聽(tīng)來(lái)自客戶端的連接。
主機(jī)軟件服務(wù)器端采用IO完成端口模型(IO completion port),該模型是伸縮性較好的一種模型,可一次管理多個(gè)套接字,并可異步地管理IO請(qǐng)求。主機(jī)服務(wù)器監(jiān)聽(tīng)終端連接的邏輯流程如圖2所示。
讀寫(xiě)完成端口上有信號(hào)時(shí),說(shuō)明終端向主機(jī)發(fā)送了體檢數(shù)據(jù),根據(jù)數(shù)據(jù)類型的不同,進(jìn)行相應(yīng)的保存、顯示。邏輯流程如圖3所示。
圖2 主機(jī)服務(wù)器監(jiān)聽(tīng)終端連接的邏輯流程
圖3 讀寫(xiě)完成端口讀寫(xiě)終端數(shù)據(jù)的邏輯流程
網(wǎng)絡(luò)通信的接口主要為全局共享數(shù)據(jù)。從上圖的case中判斷,如果是客戶端向服務(wù)器發(fā)送數(shù)據(jù),則在ClientInfo中設(shè)置響應(yīng)標(biāo)志位,同時(shí)將數(shù)據(jù)暫存到RecvData中,并保存到對(duì)應(yīng)數(shù)據(jù)庫(kù)表中。
3.2.2 終端狀態(tài)查看
單擊子菜單項(xiàng)“終端狀態(tài)查看”即進(jìn)入該界面,只提供顯示信息和退出功能,不能進(jìn)行更多的輸入。界面能顯示當(dāng)前終端的連接狀態(tài)和數(shù)據(jù)傳輸狀態(tài)。通過(guò)網(wǎng)絡(luò)通信中的接口ClientInfo,可以判斷當(dāng)前客戶端的連接狀態(tài)和傳輸狀態(tài)。終端狀態(tài)監(jiān)測(cè)流程如圖4所示。
圖4 終端狀態(tài)監(jiān)測(cè)流程
3.2.3 終端數(shù)據(jù)實(shí)時(shí)演示
可根據(jù)選擇的終端,在主機(jī)界面上顯示該終端的實(shí)時(shí)體檢數(shù)據(jù)。通過(guò)網(wǎng)絡(luò)通信中的接口ClientInfo,可以判斷當(dāng)前客戶端的連接狀態(tài),如果連接成功,則分析RecvData,并實(shí)時(shí)顯示體檢情況。終端狀態(tài)監(jiān)測(cè)流程如圖5所示。
圖5 終端狀態(tài)監(jiān)測(cè)流程
為了測(cè)試主機(jī)軟件系統(tǒng)的性能,我們進(jìn)行了多次試驗(yàn)和試用,每次測(cè)試均采用了一臺(tái)主機(jī)和10臺(tái)終端機(jī)運(yùn)行,由1名體檢醫(yī)生操作主機(jī),10名被體檢人員同時(shí)自主操作體檢終端機(jī)。通過(guò)這些試驗(yàn)和試用,說(shuō)明采用文中所敘述的主機(jī)軟件系統(tǒng)設(shè)計(jì)方案,能很好地發(fā)揮主機(jī)軟件的核心作用,可以方便管理大量的體檢數(shù)據(jù),便于醫(yī)生對(duì)比過(guò)往體檢數(shù)據(jù),對(duì)檢測(cè)對(duì)象的身體狀況做出合理判斷。
[1] 王政,李延軍,嚴(yán)曲,等.監(jiān)控作業(yè)腦力疲勞綜合評(píng)定方法研究[J].航天醫(yī)學(xué)與醫(yī)學(xué)工程,2010,23(1):20-24.
[2] 繆毅強(qiáng),劉錦高,羅琦琨.手持式工作能力測(cè)試儀的設(shè)計(jì)和制作[J].醫(yī)療設(shè)備信息,2005,20(9):10-12.
[3] 左昕,彭李,李敏,等.心理彈性訓(xùn)練對(duì)水面艦艇軍人正/負(fù)性情緒和心率變異性的影響[J].第三軍醫(yī)大學(xué)學(xué)報(bào),2011,33(24):2 596-2 599.
[4] 王文遠(yuǎn),趙建明.針刺改善運(yùn)動(dòng)性心理疲勞的觀察與研究[J].臨床軍醫(yī)雜志,2002,30(5):1-3.
[5] 張愛(ài)華,王業(yè)泰,趙治月.視覺(jué)顯示終端視覺(jué)疲勞對(duì)脈搏信號(hào)的影響[J].中國(guó)工業(yè)醫(yī)學(xué)雜志,2010,23(3):166-169.