一種基于居民健康檔案的二進(jìn)制數(shù)據(jù)壓縮及加密方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及信號傳輸領(lǐng)域,特別是一種基于居民健康檔案的二進(jìn)制數(shù)據(jù)壓縮及加密方法。
【背景技術(shù)】
[0002]近年來,隨著計(jì)算機(jī)和信息技術(shù)的迅猛發(fā)展和普及應(yīng)用,醫(yī)療行業(yè)也開始加入這個浪潮中來,開始著手利用現(xiàn)代化技術(shù)來管理醫(yī)院,然而醫(yī)院是一個為大眾服務(wù)的部門,負(fù)責(zé)管理大量的數(shù)據(jù)信息,互聯(lián)網(wǎng)化后就會有各種問題浮現(xiàn)出來,首先就是數(shù)據(jù)量的問題,互聯(lián)網(wǎng)傳輸數(shù)據(jù)的量是有限的,大的數(shù)據(jù)會降低軟件的執(zhí)行效率;現(xiàn)在主流的網(wǎng)絡(luò)傳輸數(shù)據(jù)格式主要是使用xml或者json傳輸,這兩種格式的數(shù)據(jù)信息量大,數(shù)據(jù)傳輸效率不高且安全性較低,當(dāng)今網(wǎng)絡(luò)存在很多的安全隱患,體現(xiàn)出對數(shù)據(jù)加密的必要性。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種基于居民健康檔案的二進(jìn)制數(shù)據(jù)壓縮及加密方法,使用該方法不但提高數(shù)據(jù)傳輸?shù)男剩档途W(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān),而且增加數(shù)據(jù)在傳輸過程的安全性。
[0004]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:一種基于居民健康檔案的二進(jìn)制數(shù)據(jù)壓縮及加密方法,該方法的具體步驟為:
[0005](I)數(shù)據(jù)讀取模塊從數(shù)據(jù)源中讀取后,將數(shù)據(jù)存放到緩存隊(duì)列中;
[0006](2) 二進(jìn)制壓縮模塊從緩存隊(duì)列中取出數(shù)據(jù)先判斷其數(shù)據(jù)類型,若為定長數(shù)據(jù)則執(zhí)行步驟(3-1),若為不定長數(shù)據(jù)則執(zhí)行步驟(3-2),若為特殊醫(yī)用測量數(shù)據(jù)則執(zhí)行步驟(3-3);
[0007](3-1)將定長數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0008](3-2)將不定長數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0009](3-3)將特殊醫(yī)用測量數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0010](4)加密模塊從二進(jìn)制壓縮緩存中讀取二進(jìn)制壓縮信息,將二進(jìn)制壓縮信息進(jìn)行加密后存放到最終的加密緩存中去;
[0011](5)傳輸模塊將加密緩存中的數(shù)據(jù)進(jìn)行二進(jìn)制流的傳輸。
[0012]進(jìn)一步,所述步驟(3-1)定長數(shù)據(jù)的壓縮方法為:首先從緩存數(shù)據(jù)中讀取一個定長數(shù)據(jù),第一部分用一個字節(jié)標(biāo)識數(shù)據(jù)編號,第二部分用一個字節(jié)表示數(shù)據(jù)內(nèi)容的長度,第三部分為數(shù)據(jù)內(nèi)容的二進(jìn)制編碼,則定長數(shù)據(jù)的壓縮由一、二、三部分相加后放到二進(jìn)制壓縮緩存中。
[0013]進(jìn)一步,所述步驟(3-2)不定長數(shù)據(jù)的壓縮方法為:首先從緩存數(shù)據(jù)中讀取一個不定長數(shù)據(jù),第一部分用一個字節(jié)標(biāo)識數(shù)據(jù)編號,第二部分根據(jù)多選項(xiàng)的個數(shù)來分配二進(jìn)制的位數(shù),每一項(xiàng)對應(yīng)一個二進(jìn)制位,選中項(xiàng)對應(yīng)的二進(jìn)制位的數(shù)值為I,未選中項(xiàng)對應(yīng)的二進(jìn)制位的數(shù)值為O ;
[0014]1.假設(shè)不定長數(shù)據(jù)第二部分二進(jìn)制位的最后一位數(shù)值為0,則不定長數(shù)據(jù)的二進(jìn)制編碼由第一部分和第二部分相加,壓縮完成后存放到二進(jìn)制壓縮緩存中;
[0015]I1.假設(shè)不定長數(shù)據(jù)第二部分二進(jìn)制位的最后一位數(shù)值為1,則不定長數(shù)據(jù)由第一、二、三、四部分組成,第三部分用一個字節(jié)來表示數(shù)據(jù)內(nèi)容的長度,第四部分為數(shù)據(jù)的內(nèi)容的二進(jìn)制編碼,則不定長數(shù)據(jù)壓縮完成后存放到二進(jìn)制壓縮緩存中。
[0016]進(jìn)一步,所述步驟(3-3)特殊醫(yī)用測量數(shù)據(jù)的壓縮方法為:首先從緩存數(shù)據(jù)中讀取一個特殊醫(yī)用測量數(shù)據(jù),第一部分用一個字節(jié)標(biāo)識數(shù)據(jù)編號,第二部分為自定義的內(nèi)容;
[0017]1-1.假設(shè)第二部分的自定義內(nèi)容是根據(jù)第一次測量記錄值直接轉(zhuǎn)成二進(jìn)制編碼即可,假設(shè)后面沒有其他測量記錄,則直接存放到二進(jìn)制緩存中;
[0018]I1-2.假設(shè)第二部分的自定義內(nèi)容后面還有更多的測量記錄,則第二次測量記錄值在第一次測量記錄值的基礎(chǔ)上進(jìn)行加減得到的差值再轉(zhuǎn)成二進(jìn)制編碼來表示,若還有第三次測量記錄值,則第三次測量記錄值也在第一次測量值的基礎(chǔ)上進(jìn)行加減得到的差值再轉(zhuǎn)成二進(jìn)制編碼來表示,以此類推。
[0019]進(jìn)一步,所述步驟⑷中加密模塊的加密方法為:將數(shù)據(jù)壓縮完成后得到的二進(jìn)制編碼,在設(shè)定的位置加入固定長度的二進(jìn)制數(shù)。
[0020]本發(fā)明的有益效果:
[0021]1、提高數(shù)據(jù)傳輸效率,降低網(wǎng)絡(luò)傳輸負(fù)擔(dān)。
[0022]2、方便對數(shù)據(jù)的加密處理,增加了數(shù)據(jù)在傳輸過程的安全性。
[0023]3、傳輸相同的信息時,字節(jié)流可以不同,增加破解難度。
[0024]本發(fā)明通過高效的壓縮算法以及二進(jìn)制編碼存儲方式,實(shí)現(xiàn)了居民健康檔案數(shù)據(jù)的高比例壓縮;在平時使用xml或者json傳輸?shù)那闆r下,傳輸大量的數(shù)據(jù)信息,會使數(shù)據(jù)傳輸效率和安全性降低。而使用本方法進(jìn)行數(shù)據(jù)壓縮,數(shù)據(jù)壓縮比可以達(dá)到50% —60%,理想情況下將達(dá)到70%,同時對數(shù)據(jù)進(jìn)行自定義加密,保證數(shù)據(jù)傳輸?shù)陌踩浴?br>【附圖說明】
[0025]圖1是本發(fā)明的流程圖,
[0026]圖2為圖1中定長數(shù)據(jù)壓縮流程圖,
[0027]圖3為圖1中不定長數(shù)據(jù)壓縮流程圖,
[0028]圖4為圖1中特殊醫(yī)用數(shù)據(jù)壓縮流程圖,
[0029]圖5為圖1中加密方法流程圖,
[0030]圖6為二進(jìn)制數(shù)據(jù)存儲的格式,
[0031]圖7為實(shí)施例的個人基本信息表。
【具體實(shí)施方式】
[0032]下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)說明。
[0033]如圖1所示該方法包括一個數(shù)據(jù)讀取模塊,一個二進(jìn)制壓縮模塊,一個加密模塊,一個傳輸模塊;其具體步驟為:
[0034](I)數(shù)據(jù)讀取模塊從數(shù)據(jù)源中讀取后,將數(shù)據(jù)存放到緩存隊(duì)列中;
[0035](2) 二進(jìn)制壓縮模塊從緩存隊(duì)列中取出數(shù)據(jù)先判斷其數(shù)據(jù)類型,若為定長數(shù)據(jù)則執(zhí)行步驟(3-1),若為不定長數(shù)據(jù)則執(zhí)行步驟(3-2),若為特殊醫(yī)用測量數(shù)據(jù)則執(zhí)行步驟(3-3);
[0036](3-1)將定長數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0037](3-2)將不定長數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0038](3-3)將特殊醫(yī)用測量數(shù)據(jù)進(jìn)行壓縮存放到二進(jìn)制壓縮緩存中,執(zhí)行步驟(4);
[0039](4)加密模塊從二進(jìn)制壓縮緩存中讀取二進(jìn)制壓縮信息,并進(jìn)行數(shù)據(jù)加密后存放到最終的加密緩存中去;
[0040](5)傳輸模塊將加密緩存中的數(shù)據(jù)進(jìn)行二進(jìn)制流的傳輸。
[0041]如圖2、圖6所示,作為本發(fā)明的進(jìn)一步改進(jìn)方案,所述步驟(3-1)定長數(shù)據(jù)的壓縮方法為:首先從緩存數(shù)據(jù)中讀取一個定長數(shù)據(jù),第一部分用一個字節(jié)標(biāo)識數(shù)據(jù)編號,第二部分用一個字節(jié)表示數(shù)據(jù)內(nèi)容的長度,第三部分為數(shù)據(jù)內(nèi)容的二進(jìn)制編碼,則定長數(shù)據(jù)的壓縮由一、二、三部分相加后放到二進(jìn)制壓縮緩存中。
[0042]如圖7所示,在此根據(jù)日常普遍使用的個人信息表來舉例說明:
[0043]例如:性別屬性一欄:
[0044]第一部分的數(shù)據(jù)用一個字節(jié)表示編號,假設(shè)為0000 0001,第二部分再用一個字節(jié)表示選項(xiàng)內(nèi)容的長度,即0000 0010,表示當(dāng)讀取完長度的二進(jìn)制(將二進(jìn)制轉(zhuǎn)換成十進(jìn)制),往后讀取兩位就可獲得具體的性別,第三部分加上數(shù)據(jù)內(nèi)容代碼。
[0045]性別的4個選項(xiàng)分別是男,女,不詳和未說明的性別,用兩位分別表示4個選項(xiàng),假設(shè):00表不男,01表不女,10表不不詳,11表不未說明的性別;此時性別的屬性壓縮成的二進(jìn)制為:0000 0001 0000 0010再加上性別的兩位,例如性別為男00,二進(jìn)制編碼為:0000
00010000 0010 OOo
[0046]例如:文化程度屬性一欄:
[0047]第一部分?jǐn)?shù)據(jù)的編號用一個字節(jié)表示,例如0000 0100,用一個字節(jié)表示選項(xiàng)內(nèi)容的長度,即0000 0011,表示當(dāng)讀取完長度的二進(jìn)制(將二進(jìn)制轉(zhuǎn)換成十進(jìn)制),往后讀取三位就可獲得具體的性別,第三部分加上數(shù)據(jù)內(nèi)容的二進(jìn)制編碼。
[0048]文化程度的6個選項(xiàng)分別文盲及半文盲,小學(xué),初中,高中/技校/中專,大學(xué)專科及以上和不詳,假如:001表示文