本發(fā)明涉及醫(yī)療信息化領(lǐng)域,尤其涉及一種基于哈希值的醫(yī)療文件冗余處理系統(tǒng)及方法。
背景技術(shù):
醫(yī)療文件是病人在醫(yī)院診斷治療全過程的原始記錄,它包含有電子病歷、醫(yī)學(xué)影像文件、疾病百科文件、政府醫(yī)療政策文件、醫(yī)療科室介紹文件等等。隨著醫(yī)院計(jì)算機(jī)管理網(wǎng)絡(luò)化,醫(yī)療文件應(yīng)運(yùn)而生。作為科技進(jìn)步的產(chǎn)物,醫(yī)療文件因其方便記錄,易存儲(chǔ)等優(yōu)點(diǎn)被越來越廣泛的應(yīng)用在醫(yī)療系統(tǒng)中。
進(jìn)一步地,隨著移動(dòng)醫(yī)療的發(fā)展,現(xiàn)在越來越多的患者或醫(yī)生都使用移動(dòng)終端(例如,手機(jī)、平板電腦等觸摸屏的移動(dòng)終端)查看醫(yī)療文件并存儲(chǔ)醫(yī)療文件,導(dǎo)致服務(wù)器可能保存多個(gè)相同的醫(yī)療文件,如此造成服務(wù)器上醫(yī)療文件的冗余且降低了服務(wù)器的訪問速度,因此有必要提供一種對服務(wù)器上重復(fù)的醫(yī)療文件進(jìn)行處理的信息化系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種基于哈希值的醫(yī)療文件冗余處理系統(tǒng)及方法,旨在解決對服務(wù)器上冗余的醫(yī)療文件進(jìn)行清理的技術(shù)問題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于哈希值的醫(yī)療文件冗余處理系統(tǒng),運(yùn)行于服務(wù)器中,所述服務(wù)器通過網(wǎng)絡(luò)與客戶端通信連接,該系統(tǒng)包括:
計(jì)算模塊,用于計(jì)算所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值;
查找模塊,用于從計(jì)算的哈希值中查找相同的哈希值,并將相同的哈希值歸為一組,將每組中相同的哈希值及該組中相同的哈希值對應(yīng)的醫(yī)療文件的存儲(chǔ)路徑保存于一個(gè)哈希關(guān)聯(lián)列表中;
刪除模塊,用于在每一個(gè)哈希關(guān)聯(lián)列表中選定一個(gè)存儲(chǔ)路徑,并刪除該哈希關(guān)聯(lián)列表中未選定的存儲(chǔ)路徑所對應(yīng)的醫(yī)療文件;
修改模塊,用于在每一個(gè)哈希關(guān)聯(lián)列表修改所刪除的醫(yī)療文件對應(yīng)的標(biāo)識;
接收模塊,用于接收客戶端發(fā)送過來的醫(yī)療文件;
所述計(jì)算模塊,還用于計(jì)算所述客戶端發(fā)送過來的醫(yī)療文件的哈希值;
所述判斷模塊,用于判斷所述客戶端發(fā)送過來的醫(yī)療文件的哈希值是否有對應(yīng)的哈希關(guān)聯(lián)列表;
所述刪除模塊,還用于當(dāng)所述客戶端發(fā)送過來的醫(yī)療文件的哈希值有對應(yīng)的哈希關(guān)聯(lián)列表,刪除所述客戶端發(fā)送過來的醫(yī)療文件;及
保存模塊,用于當(dāng)所述客戶端發(fā)送過來的醫(yī)療文件的哈希值沒有對應(yīng)的哈希關(guān)聯(lián)列表,將所述客戶端發(fā)送過來的醫(yī)療文件保存于服務(wù)器中。
優(yōu)選的,所述哈希關(guān)聯(lián)列表包括四個(gè)欄位,所述四個(gè)欄位分別為文件名、哈希值、存儲(chǔ)路徑及標(biāo)識。
優(yōu)選的,所述計(jì)算模塊計(jì)算所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值的方式如下:遍歷服務(wù)器上的醫(yī)療文件,并通過哈希算法計(jì)算每個(gè)醫(yī)療文件的哈希值。
優(yōu)選的,所述計(jì)算模塊通過哈希算法計(jì)算所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值,其中,所述哈希算法為MD5算法。
優(yōu)選的,所述判斷模塊判斷所述客戶端發(fā)送過來的醫(yī)療文件的哈希值是否有對應(yīng)的哈希關(guān)聯(lián)列表的方式如下:判斷服務(wù)器中是否有哈希關(guān)聯(lián)列表包含所述客戶端發(fā)送過來的醫(yī)療文件的哈希值,若服務(wù)器中有一個(gè)哈希關(guān)聯(lián)列表包含所述客戶端發(fā)送過來的醫(yī)療文件的哈希值,則該哈希關(guān)聯(lián)列表為所述客戶端發(fā)送過來的醫(yī)療文件的哈希值對應(yīng)的哈希關(guān)聯(lián)列表。
另一方面,本發(fā)明還提供一種基于哈希值的醫(yī)療文件冗余處理方法,應(yīng)用于服務(wù)器中,所述服務(wù)器通過網(wǎng)絡(luò)與客戶端通信連接,該方法包括如下步驟:
計(jì)算所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值;
從計(jì)算的哈希值中查找相同的哈希值,并將相同的哈希值歸為一組,將每組中相同的哈希值及該組中相同的哈希值對應(yīng)的醫(yī)療文件的存儲(chǔ)路徑保存于一個(gè)哈希關(guān)聯(lián)列表中;
在每一個(gè)哈希關(guān)聯(lián)列表中選定一個(gè)存儲(chǔ)路徑,并刪除該哈希關(guān)聯(lián)列表中未選定的存儲(chǔ)路徑所對應(yīng)的醫(yī)療文件;
在每一個(gè)哈希關(guān)聯(lián)列表修改所刪除的醫(yī)療文件對應(yīng)的標(biāo)識;
接收客戶端發(fā)送過來的醫(yī)療文件;
計(jì)算所述客戶端發(fā)送過來的醫(yī)療文件的哈希值;
當(dāng)所述客戶端發(fā)送過來的醫(yī)療文件的哈希值有對應(yīng)的哈希關(guān)聯(lián)列表,刪除所述客戶端發(fā)送過來的醫(yī)療文件;及
當(dāng)所述客戶端發(fā)送過來的醫(yī)療文件的哈希值沒有對應(yīng)的哈希關(guān)聯(lián)列表,將所述客戶端發(fā)送過來的醫(yī)療文件保存于服務(wù)器中。
優(yōu)選的,所述哈希關(guān)聯(lián)列表包括四個(gè)欄位,所述四個(gè)欄位分別為文件名、哈希值、存儲(chǔ)路徑及標(biāo)識。
優(yōu)選的,所述計(jì)算所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值的步驟包括如下步驟:遍歷服務(wù)器上的醫(yī)療文件,并通過哈希算法計(jì)算每個(gè)醫(yī)療文件的哈希值。
優(yōu)選的,所述服務(wù)器上每個(gè)醫(yī)療文件的哈希值通過哈希算法計(jì)算,其中,所述哈希算法為MD5算法。
優(yōu)選的,所述判斷所述客戶端發(fā)送過來的醫(yī)療文件的哈希值是否有對應(yīng)的哈希關(guān)聯(lián)列表的步驟包括如下步驟:判斷服務(wù)器中是否有哈希關(guān)聯(lián)列表包含所述客戶端發(fā)送過來的醫(yī)療文件的哈希值,若服務(wù)器中有一個(gè)哈希關(guān)聯(lián)列表包含所述客戶端發(fā)送過來的醫(yī)療文件的哈希值,則該哈希關(guān)聯(lián)列表為所述客戶端發(fā)送過來的醫(yī)療文件的哈希值對應(yīng)的哈希關(guān)聯(lián)列表。。
本發(fā)明采用上述技術(shù)方案,帶來的技術(shù)效果為:本發(fā)明采用哈希值比對的方式尋找相同的醫(yī)療文件,并刪除重復(fù)的醫(yī)療文件,加快了服務(wù)器的訪問速度,降低了服務(wù)器的冗余。
附圖說明
圖1是本發(fā)明基于哈希值的醫(yī)療文件冗余處理系統(tǒng)的應(yīng)用環(huán)境示意圖;
圖2是本發(fā)明基于哈希值的醫(yī)療文件冗余處理系統(tǒng)的優(yōu)選實(shí)施例的模塊示意圖;
圖3是本發(fā)明基于哈希值的醫(yī)療文件冗余處理方法的優(yōu)選實(shí)施例的流程圖;
圖4是本發(fā)明哈希關(guān)聯(lián)列表的示意圖。
本發(fā)明目的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對本發(fā)明的具體實(shí)施方式、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如下。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
參照圖1所示,圖1是本發(fā)明基于哈希值的醫(yī)療文件冗余處理系統(tǒng)的應(yīng)用環(huán)境示意圖。本發(fā)明中的基于哈希值的醫(yī)療文件冗余處理系統(tǒng)30運(yùn)行于服務(wù)器3上。所述服務(wù)器3通過網(wǎng)絡(luò)2與多個(gè)客戶端1通信連接。所述服務(wù)器3上存儲(chǔ)有各種類型的醫(yī)療文件(例如,電子病歷、醫(yī)學(xué)影像文件、疾病百科文件、政府醫(yī)療政策文件、醫(yī)療科室介紹文件等等)。
在本實(shí)施例中,所述網(wǎng)絡(luò)2可以是有線通訊網(wǎng)絡(luò)或無線通訊網(wǎng)絡(luò)。所述網(wǎng)絡(luò)優(yōu)選為無線通訊網(wǎng)絡(luò),包括但不限于,GSM網(wǎng)絡(luò)、GPRS網(wǎng)絡(luò)、CDMA網(wǎng)絡(luò)、TD-SCDMA網(wǎng)絡(luò)、WiMAX網(wǎng)絡(luò)、TD-LTE網(wǎng)絡(luò)、FDD-LTE網(wǎng)絡(luò)等無線傳輸網(wǎng)絡(luò)。。
所述客戶端1可以是,但不限于,智能手機(jī)、平板電腦、個(gè)人數(shù)字助理(Personal Digital Assistant,PDA)、個(gè)人電腦、電子看板等其它任意合適的便攜式觸摸屏電子設(shè)備。所述客戶端1用于通過網(wǎng)絡(luò)2訪問所述服務(wù)器3,并獲取服務(wù)器3上的醫(yī)療文件。所述客戶端1還用于產(chǎn)生醫(yī)療文件,并將所述產(chǎn)生的醫(yī)療文件發(fā)送至服務(wù)器3保存。
參照圖2所示,是本發(fā)明基于哈希值的醫(yī)療文件冗余處理系統(tǒng)的優(yōu)選實(shí)施例的模塊示意圖。在本實(shí)施例中,所述基于哈希值的醫(yī)療文件冗余處理系統(tǒng)30應(yīng)用于服務(wù)器3。該服務(wù)器3包括,但不僅限于,基于哈希值的醫(yī)療文件冗余處理系統(tǒng)30、存儲(chǔ)單元31、處理單元32、及通訊單元33。
所述的存儲(chǔ)單元31可以為一種只讀存儲(chǔ)單元ROM,電可擦寫存儲(chǔ)單元EEPROM、快閃存儲(chǔ)單元FLASH或固體硬盤等。
所述的處理單元32可以為一種中央處理器(Central Processing Unit,CPU)、微控制器(MCU)、數(shù)據(jù)處理芯片、或者具有數(shù)據(jù)處理功能的信息處理單元。
所述的通訊單元33為一種具有遠(yuǎn)程通訊功能的通訊接口,例如支持GSM、GPRS、WCDMA、CDMA、TD-SCDMA、WiMAX、TD-LTE、FDD-LTE等無線通訊技術(shù)的通訊接口,支持USB、網(wǎng)線的有線通訊接口。
所述基于哈希值的醫(yī)療文件冗余處理系統(tǒng)30包括,但不局限于,計(jì)算模塊311、查找模塊312、刪除模塊313、修改模塊314、接收模塊315、判斷模塊316及保存模塊317,本發(fā)明所稱的模塊是指一種能夠被所述服務(wù)器3的處理單元32執(zhí)行并且能夠完成固定功能的一系列計(jì)算機(jī)程序指令段,其存儲(chǔ)在所述服務(wù)器3的存儲(chǔ)單元31中。
所述計(jì)算模塊311用于計(jì)算服務(wù)器3上每個(gè)醫(yī)療文件的哈希值。具體地說,所述計(jì)算模塊311遍歷服務(wù)器3上的醫(yī)療文件,并通過哈希算法計(jì)算每個(gè)醫(yī)療文件的哈希值。所述哈希算法可以是,但不限于,MD5算法。
所述查找模塊312用于從計(jì)算的哈希值中查找相同的哈希值,并將相同的哈希值歸為一組,將每組中相同的哈希值及該組中相同的哈希值對應(yīng)的醫(yī)療文件的存儲(chǔ)路徑保存于一個(gè)哈希關(guān)聯(lián)列表中。一般而言,由于哈希值的唯一性,若查找到相同的哈希值,表明服務(wù)器3中存在相同的醫(yī)療文件。在本實(shí)施例中,所述哈希關(guān)聯(lián)列表包括多個(gè)相同的哈希值及每個(gè)哈希值對應(yīng)醫(yī)療文件的存儲(chǔ)路徑。需要說明的是,所述哈希關(guān)聯(lián)列表中的哈希值都是相同的。所述服務(wù)器3中有多組相同的醫(yī)療文件,則所述查找模塊312獲得多組相同的哈希值并對每組相同的哈希值生成一個(gè)哈希關(guān)聯(lián)列表。如圖四所示,所述哈希關(guān)聯(lián)列表至少包括四個(gè)欄位,所述四個(gè)欄位分別為文件名(表示醫(yī)療文件的名稱)、哈希值(表示醫(yī)療文件的哈希值)、存儲(chǔ)路徑(表示醫(yī)療文件在服務(wù)器3上的存儲(chǔ)路徑)及標(biāo)識(表示醫(yī)療文件是否保留于服務(wù)器3中,其中,Y表示保留,N表示刪除)。進(jìn)一步地,為了方便起見,圖4中的字母B僅僅是代指哈希值,并不表示哈希值為B,而圖4中的字母X1至X9也僅僅是代指存儲(chǔ)路徑,并不表示X1至X9為存儲(chǔ)路徑。
所述刪除模塊313用于在每一個(gè)哈希關(guān)聯(lián)列表中選定一個(gè)存儲(chǔ)路徑,并刪除該哈希關(guān)聯(lián)列表中未選定的存儲(chǔ)路徑所對應(yīng)的醫(yī)療文件。在本實(shí)施例中,所述刪除模塊313選定存儲(chǔ)路徑X1,并在服務(wù)器3中刪除其余存儲(chǔ)路徑為X2至X9對應(yīng)的醫(yī)療文件。
所述修改模塊314用于在每一個(gè)哈希關(guān)聯(lián)列表修改所刪除的醫(yī)療文件對應(yīng)的標(biāo)識。具體地說,如圖4所示,所述修改模塊314將哈希關(guān)聯(lián)列表中X2至X9對應(yīng)的標(biāo)識從Y修改為N。
所述接收模塊315用于接收客戶端1發(fā)送過來的醫(yī)療文件。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值暫存于服務(wù)器3的內(nèi)存中。
所述計(jì)算模塊311還用于計(jì)算所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值。
所述判斷模塊316用于判斷所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值是否有對應(yīng)的哈希關(guān)聯(lián)列表。所述判斷模塊316通過所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值進(jìn)行查詢,判斷是否有哈希關(guān)聯(lián)列表包含所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值,若服務(wù)器3中有一個(gè)哈希關(guān)聯(lián)列表包含所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值,則該哈希關(guān)聯(lián)列表為所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值對應(yīng)的哈希關(guān)聯(lián)列表。
所述刪除模塊313用于當(dāng)所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值有對應(yīng)的哈希關(guān)聯(lián)列表,刪除所述客戶端1發(fā)送過來的醫(yī)療文件。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值從所述服務(wù)器3的內(nèi)存中刪除。
所述保存模塊317用于當(dāng)所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值沒有對應(yīng)的哈希關(guān)聯(lián)列表,將所述客戶端1發(fā)送過來的醫(yī)療文件保存于服務(wù)器3中。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值保存于服務(wù)器3的存儲(chǔ)單元31中或數(shù)據(jù)庫(圖中未示出)中。
參照圖3所示,是本發(fā)明基于哈希值的醫(yī)療文件冗余處理方法的優(yōu)選實(shí)施例的流程圖。在本實(shí)施例中,所述的基于哈希值的醫(yī)療文件冗余處理方法應(yīng)用于服務(wù)器3,該方法包括以下步驟:
步驟S11:所述計(jì)算模塊311計(jì)算服務(wù)器3上每個(gè)醫(yī)療文件的哈希值。具體地說,所述計(jì)算模塊311遍歷服務(wù)器3上的醫(yī)療文件,并通過哈希算法計(jì)算每個(gè)醫(yī)療文件的哈希值。所述哈希算法可以是,但不限于,MD5算法。
步驟S12:所述查找模塊312從計(jì)算的哈希值中查找相同的哈希值,并將相同的哈希值歸為一組,將每組中相同的哈希值及該組中相同的哈希值對應(yīng)的醫(yī)療文件的存儲(chǔ)路徑保存于一個(gè)哈希關(guān)聯(lián)列表中。一般而言,由于哈希值的唯一性,若查找到相同的哈希值,表明服務(wù)器3中存在相同的醫(yī)療文件。在本實(shí)施例中,所述哈希關(guān)聯(lián)列表包括多個(gè)相同的哈希值及每個(gè)哈希值對應(yīng)醫(yī)療文件的存儲(chǔ)路徑。需要說明的是,所述哈希關(guān)聯(lián)列表中的哈希值都是相同的。所述服務(wù)器3中有多組相同的醫(yī)療文件,則所述查找模塊312獲得多組相同的哈希值并對每組相同的哈希值生成一個(gè)哈希關(guān)聯(lián)列表。如圖四所示,所述哈希關(guān)聯(lián)列表至少包括四個(gè)欄位,所述四個(gè)欄位分別為文件名(表示醫(yī)療文件的名稱)、哈希值(表示醫(yī)療文件的哈希值)、存儲(chǔ)路徑(表示醫(yī)療文件在服務(wù)器3上的存儲(chǔ)路徑)及標(biāo)識(表示醫(yī)療文件是否保留于服務(wù)器3中,其中,Y表示保留,N表示刪除)。進(jìn)一步地,為了方便起見,圖4中的字母B僅僅是代指哈希值,并不表示哈希值為B,而圖4中的字母X1至X9也僅僅是代指存儲(chǔ)路徑,并不表示X1至X9為存儲(chǔ)路徑。
步驟S13:所述刪除模塊313在每一個(gè)哈希關(guān)聯(lián)列表中選定一個(gè)存儲(chǔ)路徑,并刪除該哈希關(guān)聯(lián)列表中未選定的存儲(chǔ)路徑所對應(yīng)的醫(yī)療文件。在本實(shí)施例中,所述刪除模塊313選定存儲(chǔ)路徑X1,并在服務(wù)器3中刪除其余存儲(chǔ)路徑為X2至X9對應(yīng)的醫(yī)療文件。
步驟S14:所述修改模塊314在每一個(gè)哈希關(guān)聯(lián)列表修改所刪除的醫(yī)療文件對應(yīng)的標(biāo)識。具體地說,如圖4所示,所述修改模塊314將哈希關(guān)聯(lián)列表中X2至X9對應(yīng)的標(biāo)識從Y修改為N。
步驟S15:所述接收模塊315接收客戶端1發(fā)送過來的醫(yī)療文件。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值暫存于服務(wù)器3的內(nèi)存中。
步驟S16:所述計(jì)算模塊311計(jì)算所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值。
步驟S17:所述判斷模塊316判斷所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值是否有對應(yīng)的哈希關(guān)聯(lián)列表。所述判斷模塊316通過所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值進(jìn)行查詢,判斷是否有哈希關(guān)聯(lián)列表包含所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值,若服務(wù)器3中有一個(gè)哈希關(guān)聯(lián)列表包含所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值,則該哈希關(guān)聯(lián)列表為所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值對應(yīng)的哈希關(guān)聯(lián)列表。若所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值有對應(yīng)的哈希關(guān)聯(lián)列表,流程進(jìn)入步驟S18,否則,若所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值沒有對應(yīng)的哈希關(guān)聯(lián)列表,則流程進(jìn)入步驟S19。
步驟S18:所述刪除模塊313刪除所述客戶端1發(fā)送過來的醫(yī)療文件。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值從所述服務(wù)器3的內(nèi)存中刪除。
步驟S19:所述保存模塊317將所述客戶端1發(fā)送過來的醫(yī)療文件保存于服務(wù)器3中。所述客戶端1發(fā)送過來的醫(yī)療文件的哈希值保存于服務(wù)器3的存儲(chǔ)單元31中或數(shù)據(jù)庫(圖中未示出)中。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或之間或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。