專利名稱:一種電子病歷的數(shù)據(jù)壓縮算法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電子病歷的數(shù)據(jù)壓縮算法。
背景技術(shù):
目前在電子病歷結(jié)構(gòu)化方面做得比較好的產(chǎn)品都是采用XML對(duì)病歷信息進(jìn)行描述,但是由此也產(chǎn)生了一些隱患。比如因?yàn)閷⒉v信息按照頁(yè)、塊、元素劃分,每一部分使用XML標(biāo)記加以區(qū)分,這就使得病歷的內(nèi)容變得“肥胖”?!胺逝帧钡膬?nèi)容尤其在帶寬低、穩(wěn)定性相對(duì)不好的無線網(wǎng)絡(luò)上傳輸?shù)臅r(shí)候,發(fā)生異常時(shí)錯(cuò)誤的可能性就相對(duì)較大。
發(fā)明內(nèi)容本發(fā)明目的在于提供一種有效地壓縮電子病歷的數(shù)據(jù)壓縮算法。
所述的電子病歷的數(shù)據(jù)壓縮算法,包括(1)預(yù)處理步驟將結(jié)構(gòu)化的病歷信息處理為包含有“0~9”十個(gè)數(shù)字符號(hào),“A”、“V”兩個(gè)英文大寫字母和一個(gè)小數(shù)點(diǎn)“.”符號(hào)的文本字符,所述的字符“A”表示定位有效,字符“V”表示定位無效;(2)編碼步驟將步驟(1)的文本字符按下述原則編碼字符 四位二制編碼0 00001 00012 00103 0011
0 1005 01016 01107 01118 10009 1001. 1010A 1011V 1100(3)將步驟(2)得到的編碼信息采用動(dòng)態(tài)限長(zhǎng)變化的不等長(zhǎng)編碼方法進(jìn)行數(shù)據(jù)壓縮。
進(jìn)一步,所述的步驟(1)還包括“B”和“W”兩個(gè)文本字符,“B”表示定位有效時(shí)語(yǔ)句校驗(yàn)出錯(cuò),“W”表示定位無效時(shí)語(yǔ)句校驗(yàn)出錯(cuò);步驟(2)中對(duì)應(yīng)于“B”和“W”的編碼如下字符四位二制編碼B 1101W 1110。這兩個(gè)字符是在壓縮預(yù)處理過程中,用來記錄那些因語(yǔ)句校驗(yàn)出錯(cuò)而舍棄的語(yǔ)句。因?yàn)槊織l語(yǔ)句的時(shí)間信息全部在預(yù)處理階段被舍棄,在解壓縮時(shí)要恢復(fù)時(shí)間值。該值在正常情況下是根據(jù)時(shí)間的基數(shù)再加上語(yǔ)句的計(jì)數(shù)值(由于每秒接受到一條語(yǔ)句,所以語(yǔ)句計(jì)數(shù)值就是以秒為單位的時(shí)間增量)確定的。當(dāng)發(fā)生語(yǔ)句校驗(yàn)出錯(cuò)時(shí),若處于定位有效狀態(tài),則在定位狀態(tài)記錄上不填寫“A”字符,而填寫“B”字符;若處在定位無效狀態(tài),則不填寫“V”字符,而填寫“W”字節(jié)。在以后解壓縮時(shí),若檢測(cè)到“A”、“V”字節(jié),時(shí)間的還原按正常的算法進(jìn)行;若檢測(cè)到“B”、“W”字符時(shí),進(jìn)行的還原除了按正常的算法進(jìn)行以外還要加上秒鐘,這樣才能確保時(shí)間能夠正確的恢復(fù),這是因?yàn)椤癇”、″W″字節(jié)表示上一條語(yǔ)句發(fā)生錯(cuò)誤已經(jīng)被丟棄,語(yǔ)句的壓縮是非連續(xù)的,有繼句現(xiàn)象發(fā)生。
再進(jìn)一步,所述的步驟(3)采用Huffman編碼方法進(jìn)行壓縮。
發(fā)明人經(jīng)過實(shí)際測(cè)試發(fā)現(xiàn),壓縮率主要受到病歷內(nèi)容的差異性影響比較大。由于應(yīng)用系統(tǒng)為醫(yī)生、護(hù)士等系統(tǒng)關(guān)鍵用戶提供了非常全面的、完善的模板支持,因此在這些人的工作實(shí)踐中,可達(dá)到85%以上的醫(yī)生書寫病歷時(shí)采用系統(tǒng)預(yù)先定義的模板,90%以上的護(hù)士書寫護(hù)理記錄時(shí)使用系統(tǒng)預(yù)定義好的一些護(hù)理模板。并且大多數(shù)醫(yī)生或護(hù)士在應(yīng)用具體模板的時(shí)候,僅僅是在系統(tǒng)提供的模板基礎(chǔ)上進(jìn)行簡(jiǎn)單的修改。因?yàn)閿?shù)字0~9的ASCII碼的高四位都一樣,是冗余的,因此每一個(gè)數(shù)字完全可以用低四位描述,即每個(gè)字節(jié)的八位編碼可壓縮為四位編碼,壓縮比理論上可趨近50%。
步驟(3)的壓縮算法中采用了一種動(dòng)態(tài)限長(zhǎng)變化的不等長(zhǎng)編碼方法,使最短碼2位,而最長(zhǎng)碼不超過8位,達(dá)到了最佳壓縮效果。壓縮基本壓縮原理是,將待壓縮文件看作是字符流(字節(jié)流),將其中的冗余信息分成兩類(1)同一字符的離散出現(xiàn)如abcda......這里,字符a出現(xiàn)了兩次。2.字符串的重復(fù)出現(xiàn)如abcdabcd......或abcd...abcd......這里,字符串a(chǎn)bcd出現(xiàn)了兩次。值得說明的是,這里串的概念是LZW方法意義下的,即將字符流中每一字符均看作是一個(gè)串的起始字符。壓縮時(shí),首先對(duì)字符流中的字符串進(jìn)行識(shí)別,將其中的重復(fù)串用壓縮格式記載,然后再將處理后的數(shù)據(jù)用不等長(zhǎng)編碼進(jìn)行代碼變換及壓縮。下面僅就其中的動(dòng)態(tài)限長(zhǎng)變化編碼方法進(jìn)行介紹。二、動(dòng)態(tài)限長(zhǎng)編碼方法1.基本原理經(jīng)重復(fù)串壓縮后的數(shù)據(jù)中,重復(fù)串已大大減少,而同一字符的分布式冗余問題則比較突出。由于256個(gè)字符的使用概率一般不同,往往相差懸殊,若采用不等長(zhǎng)編碼,將高頻字符用較短代碼表示,低頻字符用較長(zhǎng)碼表示,則提高了整體的壓縮比。Haffman編碼是最佳不等長(zhǎng)編碼,它根據(jù)文件中各字符的統(tǒng)計(jì)概率來分配代碼長(zhǎng)度。如設(shè)文件中不同字符數(shù)為n,第i個(gè)字符的概率為Pi,代碼長(zhǎng)度為li,則當(dāng)概率滿足P1≥P2≥...≥Pn時(shí),Haffman編碼的碼長(zhǎng)滿足l1≤l2≤...≤ln,此時(shí),代碼平均長(zhǎng)度的數(shù)學(xué)期望=∑ni=1Pi□li達(dá)到最小。在一般的數(shù)據(jù)壓縮過程中,Haffman編碼的算法實(shí)現(xiàn)為先統(tǒng)計(jì)出待壓文件中各字符的出現(xiàn)概率,據(jù)此動(dòng)態(tài)建立一棵Haffman樹,并以二分樹的序列形式存入壓縮數(shù)據(jù)文件首部以用于還原過程。在壓縮過程中,由Haffman樹實(shí)現(xiàn)字符的ASCII碼(等長(zhǎng)碼)與其壓縮代碼(Haffman不等長(zhǎng)碼)的轉(zhuǎn)換。這種處理方法需對(duì)待壓縮文件進(jìn)行兩遍掃描,且Haffman樹須保存于壓縮數(shù)據(jù)文件中而占用額外的存儲(chǔ)空間。在LHARC的算法中,對(duì)Haffman編碼的實(shí)現(xiàn)采用了新的方法。其基本原理是在壓縮前動(dòng)態(tài)建立一棵初始譯碼樹,在壓縮過程中不斷調(diào)整譯碼樹的結(jié)構(gòu),使各字符的壓縮代碼長(zhǎng)度隨字符出現(xiàn)的次數(shù)增加而逐步縮減。最短碼的長(zhǎng)度可達(dá)到2位,而最長(zhǎng)碼不超過8位(二進(jìn)制),從而獲得很高的壓縮比。
本發(fā)明的數(shù)據(jù)壓縮算法是首先將結(jié)構(gòu)化的病歷信息進(jìn)行預(yù)處理,提取相關(guān)性信息以利于在第二階段大幅度壓縮病歷文本內(nèi)容,第二階段將相關(guān)性信息和病歷信息編碼,對(duì)得到的結(jié)果再使用Huffman或LHARC等方式的編碼方法進(jìn)行壓縮處理。實(shí)踐證明,通過本發(fā)明的數(shù)據(jù)壓縮算法可以大大降低網(wǎng)絡(luò)的開銷和“肥胖”病歷信息在網(wǎng)絡(luò)上傳輸過程中出錯(cuò)的可能性。
具體實(shí)施方式
下面結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,但本發(fā)明的保護(hù)范圍并不限于此。
一種電子病歷的數(shù)據(jù)壓縮算法,包括(1)預(yù)處理步驟將結(jié)構(gòu)化的病歷信息處理為包含有“0~9”十個(gè)數(shù)字符號(hào),“A”、“V”、“B”、“W”四個(gè)英文大寫字母和一個(gè)小數(shù)點(diǎn)“.”符號(hào)的文本字符,字符“A”表示定位有效,字符“V”表示定位無效,“B”表示定位有效時(shí)語(yǔ)句校驗(yàn)出錯(cuò),“W”表示定位無效時(shí)語(yǔ)句校驗(yàn)出錯(cuò);(2)編碼步驟將步驟(1)的文本字符按下述原則編碼字符 四位二制編碼0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001. 1010A 1011V 1100B 1101W 1110(3)將步驟(2)得到的編碼信息采用Huffman編碼方法進(jìn)行壓縮。
權(quán)利要求
1.一種電子病歷的數(shù)據(jù)壓縮算法,其特征在于包括(1)預(yù)處理步驟將結(jié)構(gòu)化的病歷信息處理為包含有“0~9”十個(gè)數(shù)字符號(hào),“A”、“V”兩個(gè)英文大寫字母和一個(gè)小數(shù)點(diǎn)“.”符號(hào)的文本字符,所述的字符“A”表示定位有效,字符“V”表示定位無效;(2)編碼步驟將步驟(1)的文本字符按下述原則編碼字符 四位二制編碼0 00001 00012 00103 00114 01005 01016 01107 01118. 10009 1001. 1010A 1011V 1100(3)將步驟.(2)得到的編碼信息采用動(dòng)態(tài)限長(zhǎng)變化的不等長(zhǎng)編碼方法進(jìn)行數(shù)據(jù)壓縮。
2.如權(quán)利要求1所述的電子病歷的數(shù)據(jù)壓縮算法,其特征在于所述的步驟(1)還包括“B”和“W”兩個(gè)文本字符,“B”表示定位有效時(shí)語(yǔ)句校驗(yàn)出錯(cuò),“W”表示定位無效時(shí)語(yǔ)句校驗(yàn)出錯(cuò);步驟(2)中對(duì)應(yīng)于“B”和“W”的編碼如下字符 四位二制編碼B 1101W 1110。
3.如權(quán)利要求1或2所述的電子病歷的數(shù)據(jù)壓縮算法,其特征在于所述的步驟(3)采用Huffman編碼方法進(jìn)行壓縮。
全文摘要
本發(fā)明涉及一種電子病歷的數(shù)據(jù)壓縮算法,包括預(yù)處理步驟將結(jié)構(gòu)化的病歷信息處理為包含有“0~9”十個(gè)數(shù)字符號(hào),“A”、“V”兩個(gè)英文大寫字母和一個(gè)小數(shù)點(diǎn)“.”符號(hào)的文本字符,所述的字符“A”表示定位有效,字符“V”表示定位無效;編碼步驟將步驟(1)的文本字符編碼;將步驟(2)得到的編碼信息采用動(dòng)態(tài)限長(zhǎng)變化的不等長(zhǎng)編碼方法進(jìn)行數(shù)據(jù)壓縮。通過本發(fā)明的數(shù)據(jù)壓縮算法可以大大降低網(wǎng)絡(luò)的開銷和“肥胖”病歷信息在網(wǎng)絡(luò)上傳輸過程中出錯(cuò)的可能性。
文檔編號(hào)G06F17/30GK101086749SQ20061005185
公開日2007年12月12日 申請(qǐng)日期2006年6月8日 優(yōu)先權(quán)日2006年6月8日
發(fā)明者汪瀅 申請(qǐng)人:杭州掌幄科技有限公司