本文介紹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}