余學(xué)杰 ,金香蘭,李書珍,李曉燕,張?jiān)蕩X*
(1、北京中醫(yī)藥大學(xué)信息中心,北京 100029; 2、北京中醫(yī)藥大學(xué)附屬東方醫(yī)院,北京,100078)
不同地域的多家醫(yī)院協(xié)作開展醫(yī)學(xué)研究項(xiàng)目,需要采集各單位的研究數(shù)據(jù)。對(duì)于多家研究單位處在不同的地理位置的協(xié)同項(xiàng)目,目前較為普遍的研究數(shù)據(jù)采集方法是利用計(jì)算機(jī)網(wǎng)絡(luò)。將研究數(shù)據(jù)收集到網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中是利用計(jì)算機(jī)網(wǎng)絡(luò)采集數(shù)據(jù)的一種方式。
《中醫(yī)防治中風(fēng)病技術(shù)轉(zhuǎn)化與推廣研究》項(xiàng)目要求對(duì)網(wǎng)絡(luò)采集數(shù)據(jù)進(jìn)行的修改留痕,即所有原始數(shù)據(jù)和修改過(guò)的數(shù)據(jù)及修改人、修改日期等都將作為痕跡自動(dòng)記錄,通過(guò)此記錄可方便地查詢到所有數(shù)據(jù)處理的痕跡。醫(yī)學(xué)研究數(shù)據(jù)庫(kù)中錄入數(shù)據(jù)的真實(shí)性、準(zhǔn)確性是醫(yī)學(xué)研究的基本要求,數(shù)據(jù)修改留痕是研究數(shù)據(jù)的管理的必要措施。
《中醫(yī)防治中風(fēng)病技術(shù)轉(zhuǎn)化與推廣研究》項(xiàng)目的數(shù)據(jù)錄入利用Internet的瀏覽器及ASP技術(shù),數(shù)據(jù)存儲(chǔ)在網(wǎng)站的SQL Server 2005數(shù)據(jù)庫(kù)中。
由于網(wǎng)絡(luò)數(shù)據(jù)采集留痕的技術(shù)文獻(xiàn)資料非常少,所以對(duì)網(wǎng)絡(luò)數(shù)據(jù)采集如何留痕進(jìn)行了研究和設(shè)計(jì)。
《中醫(yī)防治中風(fēng)病技術(shù)轉(zhuǎn)讓與推廣研究》用“中風(fēng)后輕度認(rèn)知障礙中醫(yī)綜合干預(yù)方案病例報(bào)告表”和“中風(fēng)后認(rèn)知障礙社區(qū)中醫(yī)藥分層防治模式觀察表”采集患者的基本數(shù)據(jù)和醫(yī)務(wù)人員對(duì)患者近兩年治療隨訪的醫(yī)療數(shù)據(jù)。該項(xiàng)目要求參加研究的醫(yī)護(hù)人員往網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中錄入病例報(bào)告數(shù)據(jù)時(shí),采用二次錄入。兩次錄入內(nèi)容存儲(chǔ)在不同的表內(nèi),進(jìn)行兩表之間的數(shù)據(jù)核對(duì),糾正錄入的錯(cuò)誤,確保錄入數(shù)據(jù)的正確。
二次錄入設(shè)計(jì)方案是:首先將紙質(zhì)原始數(shù)據(jù)錄入到數(shù)據(jù)庫(kù)的A表中,二次將紙質(zhì)原始數(shù)據(jù)重復(fù)錄入到數(shù)據(jù)庫(kù)的B表中。二次錄入時(shí)邊錄入系統(tǒng)自動(dòng)與一次錄入內(nèi)容進(jìn)行核對(duì),與一次錄入的數(shù)據(jù)不符,系統(tǒng)提示差異信息。如果是二次錄入的錯(cuò)誤,直接修改二次錄入錯(cuò)誤,同時(shí)將數(shù)據(jù)、錄入時(shí)間、錄入人登記在B表指定字段保存在案,作為基準(zhǔn)數(shù)據(jù),不得修改。如果是一次錄入錯(cuò)誤,只有將一次錄入錯(cuò)誤更改后,二次錄入才可以進(jìn)行。信息的修改只在A表中進(jìn)行,對(duì)A表所有的修改都要記錄修改的人員、日期時(shí)間、原內(nèi)容和修改后的內(nèi)容。
與其它需要錄入功能的網(wǎng)站比較,《中醫(yī)防治中風(fēng)病技術(shù)轉(zhuǎn)化與推廣研究》項(xiàng)目網(wǎng)站增加了留痕功能。實(shí)現(xiàn)此功能需要對(duì)網(wǎng)站進(jìn)行整體的相應(yīng)設(shè)計(jì),并非在錄入功能的網(wǎng)站簡(jiǎn)單地再疊加一項(xiàng)功能。“中風(fēng)后輕度認(rèn)知障礙中醫(yī)綜合干預(yù)方案病例報(bào)告表”和“中風(fēng)后認(rèn)知障礙社區(qū)中醫(yī)藥分層防治模式觀察表”的留痕設(shè)計(jì)原理是一樣的,這里僅以“中風(fēng)后輕度認(rèn)知障礙中醫(yī)綜合干預(yù)方案病例報(bào)告表”的留痕設(shè)計(jì)為例展開討論。網(wǎng)站整體流程設(shè)計(jì)如圖1,根據(jù)自動(dòng)記錄修改人、修改時(shí)間和修改的數(shù)據(jù)的目標(biāo)對(duì)數(shù)據(jù)庫(kù)和網(wǎng)頁(yè)進(jìn)行了通盤的考慮和設(shè)計(jì)。
受SQL Server數(shù)據(jù)庫(kù)技術(shù)參數(shù)限制,每個(gè)對(duì)患者的各隨訪階段都需要用多個(gè)數(shù)據(jù)表存儲(chǔ)病例報(bào)告數(shù)據(jù)。多個(gè)數(shù)據(jù)表之間的關(guān)聯(lián)字段設(shè)置為“試驗(yàn)單位”、“患者編號(hào)”和“隨訪階段”。為了記錄修改的人員,數(shù)據(jù)庫(kù)中的數(shù)據(jù)表和網(wǎng)頁(yè)頁(yè)面都要進(jìn)行相應(yīng)的設(shè)計(jì)。每個(gè)數(shù)據(jù)表A中都有記載修改情況的字段,每個(gè)數(shù)據(jù)表B都有記載錄入人和錄入日期時(shí)間的字段。
從網(wǎng)站流程圖可以看到,修改人員更改信息前有登錄和功能選擇的步驟,在修改人員登錄和選擇修改表格的網(wǎng)頁(yè)頁(yè)面編寫服務(wù)器端腳本,將“試驗(yàn)單位”、“患者編號(hào)”、“隨訪階段”和“修改人員”這些選擇和錄入內(nèi)容作為Session對(duì)象。HTTP協(xié)議是一種無(wú)狀態(tài)協(xié)議,利用HTTP無(wú)法跟蹤用戶,當(dāng)服務(wù)器完成用戶的請(qǐng)求后,服務(wù)器將不能保持與用戶瀏覽器的連接,用戶在網(wǎng)站的多個(gè)頁(yè)面間切換時(shí),服務(wù)器無(wú)法跟蹤用戶的訪問(wèn)。ASP的Session對(duì)象的引用彌補(bǔ)了這個(gè)缺陷。當(dāng)用戶在網(wǎng)站的多個(gè)頁(yè)面間切換時(shí),Session對(duì)象會(huì)跟蹤到用戶訪問(wèn)的頁(yè)面,服務(wù)器端能夠獲取用戶在網(wǎng)站的活動(dòng)情況。Session對(duì)象是針對(duì)單個(gè)用戶的,用戶在網(wǎng)頁(yè)頁(yè)面間跳轉(zhuǎn)時(shí),只能訪問(wèn)自己的Session變量,無(wú)法訪問(wèn)其他用戶的Session變量。Session的作用時(shí)間是從瀏覽者登錄開始,直至瀏覽者離開網(wǎng)站。Session對(duì)象的功能特點(diǎn)適合在跟蹤修改人員修改的表格時(shí)應(yīng)用,這樣只要修改人員對(duì)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行了修改,在記載修改情況的字段中會(huì)將修改人的Session變量值作為字段值的一部分存儲(chǔ)在字段中,達(dá)到對(duì)修改人員留痕的目的。
圖1 網(wǎng)站錄入/修改的基本流程
網(wǎng)站設(shè)計(jì)中為修改表格功能建立了單獨(dú)的通道。修改流程與錄入流程中的網(wǎng)頁(yè)界面基本相同,但是其中編寫有不同的腳本程序,保證了留痕功能的實(shí)現(xiàn)。在修改A表的各個(gè)網(wǎng)頁(yè)頁(yè)面編寫腳本程序,利用腳本獲取當(dāng)前日期和時(shí)間函數(shù)得到系統(tǒng)的日期和時(shí)間,只要修改人員對(duì)數(shù)據(jù)表的數(shù)據(jù)進(jìn)行了修改,在記載修改情況的字段將實(shí)時(shí)獲取的系統(tǒng)時(shí)間作為字段值的部分內(nèi)容存入數(shù)據(jù)表,達(dá)到對(duì)修改時(shí)間實(shí)時(shí)跟蹤的目的。
對(duì)ASP來(lái)說(shuō),可用于編寫服務(wù)器代碼的語(yǔ)言不止一種[2],常用的有VBScript和JavaScript。兩種腳本語(yǔ)言都提供了獲取系統(tǒng)日期時(shí)間的功能。在VBScript中,有獲取系統(tǒng)日期時(shí)間函數(shù)Now,在JavaScript中有獲取日期時(shí)間的對(duì)象Date[3]。腳本語(yǔ)言功能的支持使得修改日期時(shí)間的留痕成為了可能。
一次錄入流程中各個(gè)錄入網(wǎng)頁(yè)界面對(duì)于數(shù)據(jù)庫(kù)的操作都屬于插入記錄操作,與更改記錄是兩條不同的途徑。修改操作的邏輯順序在一次錄入之后,如果未進(jìn)行某表格的一次錄入而操作修改,系統(tǒng)會(huì)進(jìn)行錯(cuò)誤提示,終止修改操作。修改流程的網(wǎng)頁(yè)界面對(duì)于數(shù)據(jù)庫(kù)的操作都屬于更新記錄,在字段更新內(nèi)容被保存之前提取原字段信息,將原信息和修改后的信息同時(shí)存入記載修改情況字段。由于只有一個(gè)更改數(shù)據(jù)的進(jìn)口,無(wú)其它途徑,修改流程中的網(wǎng)頁(yè)腳本程序?qū)⒂涗浶畔⒆兏暮圹E,修改流程中不設(shè)計(jì)對(duì)記載修改情況字段的更新,所以該字段能夠完整地保留一條記錄所有的變更。
在這樣的網(wǎng)站設(shè)計(jì)中,如果修改人員對(duì)某表格A中的一條記錄的若干字段進(jìn)行了更改,其表格A中該條記錄的記載修改情況的字段中就會(huì)保存有“日期時(shí)間,修改人,字段名原字段值和現(xiàn)字段值,字段名原字段值和現(xiàn)字段值,……”的內(nèi)容。該字段保存時(shí)采用原字段值連接當(dāng)前修改內(nèi)容,字段中保留了本記錄全部數(shù)據(jù)修改的痕跡。
查詢記載修改情況的字段,就會(huì)瀏覽到歷次修改人、修改日期時(shí)間、修改內(nèi)容。
數(shù)據(jù)修改的留痕的管理功能必須融合在網(wǎng)站數(shù)據(jù)采集的通盤設(shè)計(jì)中。留痕功能涉及到錄入的表格、一次錄入的內(nèi)容、與一次錄入的時(shí)間順序、登錄人員功能選擇等一系列與網(wǎng)站其它功能相關(guān)的環(huán)節(jié),它不可能與其它功能脫離。各種功能整體考慮、相互借用,才能實(shí)現(xiàn)系統(tǒng)的最優(yōu)化設(shè)計(jì)。任何系統(tǒng)都是一個(gè)有機(jī)的整體,它不是各個(gè)部分的機(jī)械組合或簡(jiǎn)單相加,系統(tǒng)的整體功能是各要素在孤立狀態(tài)下所沒(méi)有的新質(zhì)。系統(tǒng)中各要素不是孤立地存在著,每個(gè)要素在系統(tǒng)中都處于一定的位置上,起著特定的作用。要素之間相互關(guān)聯(lián),構(gòu)成了一個(gè)不可分割的整體。只有將所有采集數(shù)據(jù)的功能綜合考慮,才能實(shí)現(xiàn)研究數(shù)據(jù)的科學(xué)管理。
在時(shí)間跟蹤的設(shè)計(jì)中,即可獲取網(wǎng)站系統(tǒng)日期時(shí)間又可獲取客戶端的系統(tǒng)日期時(shí)間。如果獲取網(wǎng)站系統(tǒng)的日期時(shí)間,用戶修改數(shù)據(jù)后保存數(shù)據(jù)時(shí)的時(shí)間與獲取的時(shí)間會(huì)有一些時(shí)間差;如果獲取客戶端系統(tǒng)時(shí)間,可以實(shí)時(shí)記載修改人員的修改時(shí)間,但客戶端時(shí)鐘錯(cuò)誤會(huì)將錯(cuò)誤的時(shí)間記錄在案。目前計(jì)算機(jī)操作系統(tǒng)都具有與Internet時(shí)鐘服務(wù)器自動(dòng)同步功能,在客戶端獲取日期時(shí)間,會(huì)有較好的效果,但是故意改動(dòng)客戶端的日期時(shí)間,網(wǎng)站設(shè)計(jì)中需要防范。
利用計(jì)算機(jī)網(wǎng)絡(luò)采集科學(xué)研究數(shù)據(jù),數(shù)據(jù)采集過(guò)程的留痕是可以實(shí)現(xiàn)的。
采集數(shù)據(jù)的網(wǎng)站的設(shè)計(jì)需要對(duì)各種功能的實(shí)現(xiàn)進(jìn)行全局的考慮,才能實(shí)現(xiàn)整個(gè)系統(tǒng)的優(yōu)化。
《中醫(yī)防治中風(fēng)病技術(shù)轉(zhuǎn)化與推廣研究》項(xiàng)目修改留痕的研究實(shí)現(xiàn)了數(shù)據(jù)采集的留痕功能,它為科研數(shù)據(jù)網(wǎng)絡(luò)采集管理又提供了一種監(jiān)督方法。這種方法保證了采集數(shù)據(jù)的真實(shí)性和準(zhǔn)確性,為研究數(shù)據(jù)的嚴(yán)格管理奠定了基礎(chǔ)。
參考資料
[1] 張景峰.《腳本語(yǔ)言與動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)》,北京:中國(guó)水利水電出版社,2004年8月版,第137頁(yè)
[2] 韓延峰.《即查即用ASP+VBScript函數(shù)與對(duì)象參考手冊(cè)》,北京:人民郵電出版社,2007年7月版,第19頁(yè)
[3] 韓延峰.《即查即用JavaScript核心對(duì)象參考手冊(cè)》,北京:人民郵電出版社,2007年7月版,第101頁(yè)-第117頁(yè)
[4] 楊孔雨.《信息系統(tǒng)基礎(chǔ)》,北京:清華大學(xué)出版社,2010年10月版,第12頁(yè)