方嘉琨 張建運
(北京大學(xué)口腔醫(yī)院 北京 100081)
隨著信息化的發(fā)展,病理學(xué)數(shù)字化切片逐步被用于醫(yī)療、教學(xué)和科研相關(guān)工作[1-4]。目前醫(yī)院病理科的數(shù)字化切片管理和教學(xué)輔助系統(tǒng)多使用需要安裝指定客戶端的客戶機/服務(wù)器(Client/Server,C/S)[2-3]或瀏覽器/服務(wù)器(Browser/Senver,B/S)結(jié)構(gòu)的商業(yè)軟件[4],其缺點是整體成本較高,系統(tǒng)擴展、維護和升級的工作量較大[5]。本文介紹使用基于開源技術(shù)和B/S結(jié)構(gòu)的跨設(shè)備、跨平臺數(shù)字化切片檢索和可視化系統(tǒng)設(shè)計與實現(xiàn),加強病理學(xué)數(shù)字化切片的推廣和應(yīng)用。
B/S結(jié)構(gòu)無需安裝任何客戶端或插件,采用標(biāo)準(zhǔn)瀏覽器接入網(wǎng)絡(luò)即可使用,系統(tǒng)擴展維護簡單,降低綜合成本。一般用戶或管理員通過瀏覽器查看系統(tǒng)界面并輸入信息,系統(tǒng)對數(shù)據(jù)進行收集和處理,將加工后的數(shù)據(jù)輸出展示給用戶。數(shù)據(jù)處理過程可通過數(shù)據(jù)流圖(Data Flow Diagram)展現(xiàn)[6],見圖1。圖中省略輸出結(jié)果展示給實體用戶的過程。采用基于角色的訪問控制方法,分為管理員、一般用戶和匿名用戶。匿名用戶功能模塊包含4項,分別是切片檢索、切片可視化和圖像操作、用戶注冊、用戶登錄。匿名用戶可通過切片檢索請求及可視化和圖像操作請求獲取數(shù)字切片信息數(shù)據(jù),如切片名稱、位置、標(biāo)簽等;通過注冊請求將用戶信息如用戶名、密碼和e-mail地址寫入數(shù)據(jù)庫;通過登錄請求將用戶信息與數(shù)據(jù)庫信息進行匹配。匿名用戶在登錄后可使用一般用戶功能模塊,該模塊包含2項,用戶可通過切片收藏和標(biāo)注請求與數(shù)據(jù)庫進行收藏或標(biāo)注信息數(shù)據(jù)交換。管理員功能模塊包含1項,通過切片管理請求與數(shù)據(jù)庫交換切片信息。

圖1 系統(tǒng)數(shù)據(jù)流
包括數(shù)字化切片的信息管理、標(biāo)簽分類、名稱檢索、可視化和圖像操作以及用戶信息管理。管理員可以對數(shù)字化切片進行信息管理,包括新增、修改和刪除切片名稱、位置和標(biāo)簽信息,維護切片標(biāo)簽分類信息。切片標(biāo)簽分類可通過查詢具有同一標(biāo)簽的相關(guān)切片合集,展示同一類的切片列表。名稱檢索通過匹配切片名稱,以字符匹配的方法查找切片,以列表形式展示,用戶可快速搜索并查看所需數(shù)字化切片。可視化和圖像操作通過實現(xiàn)圖像的移動、縮放、全屏顯示、角度旋轉(zhuǎn)、畫筆模式和圖像下載功能完成數(shù)字化切片展示。一般用戶可通過切片收藏和個性化標(biāo)注等功能完成個性化管理。用戶信息管理包括注冊、登錄、查看收藏列表和標(biāo)注信息等功能。
數(shù)據(jù)庫設(shè)計基于系統(tǒng)需求,包含數(shù)字化切片、標(biāo)簽、用戶、數(shù)字化切片收藏和數(shù)字化切片用戶標(biāo)注信息,具體內(nèi)容,見表1-表5。

表1 數(shù)字化切片信息

表2 標(biāo)簽信息

表3 用戶信息

表4 數(shù)字化切片收藏信息

表5 數(shù)字化切片用戶標(biāo)注信息
利用B/S結(jié)構(gòu)模式,采取瀏覽器請求、服務(wù)器響應(yīng)的工作模式,通過網(wǎng)絡(luò)技術(shù)進行數(shù)字化切片的可視化。該模式無需安裝專用客戶端,不受系統(tǒng)和平臺限制。隨著移動互聯(lián)網(wǎng)的快速發(fā)展、智能手機和平板電腦等移動終端設(shè)備的普及和應(yīng)用,人們可以通過瀏覽器快速訪問應(yīng)用。系統(tǒng)通過Ajax交互式網(wǎng)頁應(yīng)用開發(fā)技術(shù)實現(xiàn)異步更新,完成局部頁面重載,減輕服務(wù)器的負(fù)擔(dān)。Ajax技術(shù)在本系統(tǒng)中應(yīng)用于數(shù)字化切片的可視化、切片收藏、標(biāo)注和信息管理等功能。
系統(tǒng)采用Bootstrap13.37版本作為Web前端開發(fā)框架。Bootstrap是基于超文本標(biāo)記語言(Hypertext Markup Language,HTML)、串接式表單(Cascading Style Sheets,CSS)和JavaScript開發(fā)的前端開發(fā)框架,提供快捷開發(fā)方式。具有移動設(shè)備優(yōu)先的特性,響應(yīng)式CSS能夠自適應(yīng)于臺式計算機、平板電腦和手機,所有主流瀏覽器均支持Bootstrap。系統(tǒng)后端開發(fā)使用Python語言,具有簡潔、易讀和可擴展性特點,廣泛用于Web系統(tǒng)編程。采用Flask2框架實現(xiàn)Web應(yīng)用,它是Python中一個“微框架”,核心輕量且易于拓展,支持?jǐn)U展添加數(shù)據(jù)庫集成、表單驗證、上傳處理等功能[7]。
系統(tǒng)使用Openslide[8]的Python版本軟件包,采用深度縮放技術(shù)完成數(shù)字化切片的可視化,提供交互式的高分辨率圖像瀏覽方式,通過建立多分辨率的圖片和動畫效果完成圖像加載和移動。Openslide支持10多種常用數(shù)字化切片格式,包括Aperio、Hamamatsu、Leica等。采用OpenSeadragon3軟件包提供網(wǎng)頁瀏覽方法,高分辨率圖像經(jīng)過切割處理,根據(jù)用戶縮放的尺寸,按需加載圖像,減輕網(wǎng)絡(luò)負(fù)擔(dān),實現(xiàn)快速瀏覽數(shù)字化切片功能。
采用導(dǎo)航設(shè)計,利用列表實現(xiàn)導(dǎo)航方法。頁面使用水平導(dǎo)航欄,包含數(shù)字化切片搜索功能,鏈接用戶登錄、主頁、聯(lián)系方式和幫助頁面。切片以HTML的標(biāo)簽元素呈現(xiàn),數(shù)字化切片以列表形式展示。數(shù)字化切片可視化和圖像操作界面,除置于頂端的頁面導(dǎo)航欄外,使用縱向?qū)Ш綑诔尸F(xiàn)切片和關(guān)聯(lián)圖像列表。主界面包含視圖列表、視圖、用戶標(biāo)注信息(需登錄)和數(shù)字化切片屬性列表,由上至下依次呈現(xiàn)。視圖模塊中展示切片圖像及其操作方法,任意角度旋轉(zhuǎn)、旋轉(zhuǎn)角度重置、畫筆模式、圖像下載和切片收藏功能以文本框和按鈕形式呈現(xiàn)在圖像上方。圖像縮放、恢復(fù)原始尺寸、全屏顯示、90°旋轉(zhuǎn)、導(dǎo)航圖和畫筆功能按鈕呈現(xiàn)在圖像上方。頁面導(dǎo)航欄可通過按鈕進行呈現(xiàn)和隱藏,系統(tǒng)界面可自適應(yīng)不同設(shè)備。
4.2.1 用戶 注冊信息提交服務(wù)器驗證,正確信息將寫入數(shù)據(jù)庫的用戶信息表,密碼使用MD5加密算法保存。若用戶名不唯一則提示錯誤并返回重填。用戶登錄時匹配其用戶名和密碼,若完全匹配則登錄成功。若用戶不存在或用戶名、密碼錯誤則提示錯誤信息并返回重填。登錄后可進行用戶信息修改,如密碼和e-mail地址,但不允許修改用戶名。用戶可查看收藏的數(shù)字化切片列表和標(biāo)注信息,允許編輯、修改或刪除。使用管理員賬號登錄后可對數(shù)字化切片信息進行管理,如新增、修改和刪除切片,管理內(nèi)容包括切片名稱、位置和標(biāo)簽,數(shù)據(jù)寫入數(shù)字化切片信息表。當(dāng)切片的標(biāo)簽數(shù)據(jù)變更時,后臺將查詢數(shù)字化切片信息表中所有標(biāo)簽信息并變更標(biāo)簽信息表。若刪除一個數(shù)字化切片的標(biāo)簽后數(shù)字化切片信息表中沒有其他具有該標(biāo)簽的切片,則在標(biāo)簽信息表中刪除該標(biāo)簽;若新增一個數(shù)字化切片的標(biāo)簽后在標(biāo)簽信息表中無該標(biāo)簽,則在表中新增標(biāo)簽。
4.2.2 可視化和圖像操作 數(shù)字化切片的可視化和圖像操作是系統(tǒng)核心。系統(tǒng)實現(xiàn)查看數(shù)字化切片及其關(guān)聯(lián)圖像的基本功能,具有移動、縮放、全屏顯示、恢復(fù)原始尺寸、旋轉(zhuǎn)、畫筆模式、圖像下載、切片收藏和個性化標(biāo)注等編輯功能。用戶可拖拽圖像或點擊導(dǎo)航圖移動圖像,通過縮放按鈕或鼠標(biāo)滑輪縮放圖像,利用按鈕或快捷鍵實現(xiàn)圖像全屏顯示或恢復(fù)原始尺寸,輸入旋轉(zhuǎn)角度或點擊90°旋轉(zhuǎn)按鈕實現(xiàn)圖像旋轉(zhuǎn)。可點擊按鈕開啟畫筆模式,該模式下可在圖像上用畫筆標(biāo)注,圖像縮放時畫筆標(biāo)注與圖像同比例縮放,圖像移動時畫筆標(biāo)注不受影響。可點擊圖像下載按鈕,當(dāng)前瀏覽的切片圖像可以PNG格式下載到本地保存。登錄的用戶可點擊收藏切片按鈕,將當(dāng)前瀏覽的切片加入收藏列表,在用戶界面進行查看;可輸入文字標(biāo)注信息,實現(xiàn)個性化切片標(biāo)注。
4.2.3 標(biāo)簽分類和名稱檢索 系統(tǒng)提供按標(biāo)簽分類進行檢索的組織方式,用戶可在數(shù)字化切片列表中通過點擊標(biāo)簽查看該分類下的切片列表,快速查找同一類的關(guān)聯(lián)切片。標(biāo)簽分類由管理員在數(shù)字化切片管理界面中進行維護。系統(tǒng)提供按切片名稱進行精確檢索的方式,用戶可在搜索框中輸入感興趣的切片名稱搜索數(shù)字化切片,搜索信息將與數(shù)字化切片信息表中的切片名稱進行匹配,若名稱中包含搜索信息,則顯示在搜索結(jié)果中。
該系統(tǒng)能夠?qū)崿F(xiàn)數(shù)字化切片的檢索和可視化,允許用戶對切片圖像進行多種操作,滿足遠(yuǎn)程醫(yī)療、醫(yī)療教學(xué)等場景的基本需求。此外系統(tǒng)能夠為注冊用戶提供個性化服務(wù),允許用戶設(shè)置收藏列表從而快速查找重要的切片圖像,用戶能夠輸入切片標(biāo)注從而加深對切片圖像的理解。B/S結(jié)構(gòu)模式有助于信息及時共享,且該系統(tǒng)支持移動端使用,應(yīng)用方式更加靈活,進一步提高使用效率。
本文從整體架構(gòu)、關(guān)鍵技術(shù)和實現(xiàn)情況對病理學(xué)數(shù)字化切片檢索和可視化系統(tǒng)設(shè)計與實現(xiàn)進行介紹,為實現(xiàn)個性化的數(shù)字化切片檢索和可視化系統(tǒng)提供思路,助力病理學(xué)數(shù)字化切片的使用,為數(shù)字化切片圖像分析奠定基礎(chǔ)[9]。