基於哈希值的醫療文件冗餘處理系統及方法與流程
2023-11-03 02:27:07

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