本文介紹MIS SQL Server對圖像數據的存儲機制和存取方法。針對VB開發工具,介紹了一種通過ADO Field 對象的GetChunk 方法和AppendChunk 方法來存取MIS SQL Server中的圖像數據的方法。
在一個完善的醫院信息MIS中,圖像數據的存取是必不可少的,比如X光片、CT像片的保存。一方面,這些圖像數據在遠程診療為准確診斷病情提供了重要的依據,另一方面,也為快速查閱病人資料提供了基本條件。圖像數據的存取在其它應用系統如GIS中也有廣泛的應用。
1、SQL Server中圖像數據的存儲機制
在MIS SQL Server中,對於小於8000個字節的圖像數據可以用二進制型(binary、varbinary)來表示。但通常要保存的一些醫學影像圖片都會大於 8000個字節。SQL Server提供了一種機制,能存儲每行大到2GB的二進制對象(BLOB),這類對象可包括image、text和ntext三種數據類型。Image數據類型存儲的是二進制數據,最大長度是231-1 (2,147,483,647)個字節。
BLOB數據在MIS SQL Server系統中的存儲方式不同於普通的數據類型,對於普通類型的數據系統直接在用戶定義的字段上存儲數據值,而對於BLOB類型數據,系統開辟新的存儲頁面來存放這些數據,表中BLOB類型數據字段存放的僅是一個16個字節的指針,該指針指向存放該條記錄的BLOB數據的頁面。
2、SQL Server中圖像數據的存取
在MIS SQL Server中,當數據小於8000個字節時,可以用普通的SQL操縱語句(SELECT、INSERT、UPDATE、DELETE)來完成對字段的操縱,當數據大於8000個字節時,SQL提供了WRITETEXT 、READTEXT和UPDATETEXT這三個函數來讀取和修改數據。這三個函數的使用方法為:
(1) WRITETEXT {table.column text_ptr}[WITH LOG] {data}