ldcmView

這是目前正在開發的DICOM檢視器,可以瀏覽醫學影像。
目前支援:
l   可進行基本的平移、縮放、旋轉、切換影像等操作
l   可本地訪問local端影像,無須完全仰賴伺服器
l   支援RWD,上方的icon圖示會隨著視窗大小摺疊,影像大小也會依視窗長寬自動縮放為適當大小
l   支援手機平板觸控操作
l   支援多窗口瀏覽,可分為1x11x22x12x2等排列方式
l   可調整影像的Window CenterWindow Width
l   可顯示影像標記,包含RTSSAIMOverlay標記,標記包含文字、橢圓、直線、箭頭、不規則圖形與封閉區間,使用者可自行選擇標記色彩、是否填充封閉區間、線條粗細、透明度。建立3D模型時,2D標記亦可轉換為3D標記
l   Viewport的四個角落會顯示影像資訊,包含Instance NumberPatient NameDateWindowLevel
l   顯示移動在ViewPort上的游標在影像上實際的座標
l   連接每個ViewPort,可選擇是否同時對所有影像進行相同操作
l   可水平翻轉與垂直翻轉
l   可將影像色彩反向
l   可使用放大鏡局部放大影像,亦可選擇縮放倍率
l   可使用尺規測量兩點之間的距離,也可用量角器測量患部的角度
l   左側跟下方有比例尺,每一格是一公分
l   更改config檔即可更換伺服器網域,無須更動已經寫死的程式碼
l   支援動畫播放,可選擇每秒動畫幀數
l   切換至標記模式,可自行劃記標記並存為segmentation標準格式的dicom
l   支援MPR橫切面與縱切面的顯示,可選擇是否在3D模型上標示切面位置
l   支援3D影像展示,可顯示電腦斷層掃描的立體影像,可從渲染模式指定要觀看骨骼、軟組織或肺氣泡等部位,亦可替灰階的模型上色並打上光影,電腦斷層掃瞄的切片中若有空隙可透過內插的方式填補
l   透過挖掘模式可在3D模型圈選不規則區域將其挖空已查看器官內部的情況

伺服器:

本計畫使用微服務之架構安裝所需軟體,採用Nginx作為網頁伺服器,並掛載Let's Encrypt的數位證書加密網站,以保障網站的安全性。使用Nginx作負載平衡時,將反向代理至各項服務,並以一個網址對外營運。DcmBlueLight為本計畫製作的瀏覽工具,包含 (1)影像管理與解析模組、(2) 影像查詢模組、(3) 2D影像處理與顯示模組、(4) 醫學影像標記模組以及(5) 3D影像處理與顯示模組, Orthanc主要為管理DICOM檔的伺服器,提供 DICOMWeb國際標準的服務,GitLab負責本計畫的程式碼版控,並自動測試程式,以達到自動部署、即時更新產品的目的。本計畫採用Nginx作為網頁伺服器,並掛載Let's Encrypt的數位證書加密網站,以保障網站的安全性。使用Nginx作負載平衡時,將反向代理至各項服務,並以一個網址對外營運。Orthanc主要為管理DICOM檔的伺服器,提供 DICOMWeb國際標準的服務, GitLab負責本計畫的程式碼版控,並自動測試程式,以達到自動部署、即時更新產品的目的。

    這是本計畫Viewer(ldcmView)的架構,當使用者進入查詢介面輸入查詢條件搜尋資料時,程式會用QIDO的方式send XMLHttpRequestOrthacOrthac會傳回json格式的responds,這些資料包含dicom檔的資訊,接著查詢系統會將相同studydicom檔資訊做成列表列在表格上,當使用者點選其中一個選項時,程式會將參數傳輸到ldcmView,進入主程式畫面後,ldcmView會用WADO的方式取得dicom檔的路徑,當ldcmViewOrthanc接收到dicom影像檔後,由ldcmView所採用的cornerstone.js程式庫來解析dicom格式。解析完成後,若解析結果是影像檔,ldcmView會將它放入影像物件清單中,並將相同series的影像設成縮圖整合在左側的管理面板,若解析結果是影像標記,ldcmView會解碼這些標記編碼,並整合到對應的影像縮圖的面板,當影像渲染到ViewPort上時就可以同時覆蓋在影像上。

    接下來只要把左側縮圖拖曳到指定的Viewport上,就可以將影像和標記渲染到ViewPort上的canvas物件,進行進一步操作。
操作介面:


基本操作方式:
在手動操作模式:透過滑鼠左鍵或單點觸控可以進行平移,透過滑鼠右鍵(往上或往下)或兩點觸控(往外或往內)可以自由縮放影像,使用滑鼠滾輪可以切換影像的上下張。
在影像切換模式:透過滑鼠(往左、上或往右、下)可以切換影像的上下張,透過單點觸控(往左、上或往右、下)可切換影像的上下張。
在旋轉模式:使用滑鼠右鍵(往上或往下)可進行順時針旋轉或逆時針旋轉,使用兩點觸控(往上或往下)可進行順時針旋轉或逆時針旋轉。
連結模式:開啟連結模式,對目前使用中的ViewPort

放大鏡工具:
    使用放大鏡時,可於TextBox輸入縮放倍率,在影像上拖動滑鼠時可以依照縮放倍率局部放大該區域影像。

WindowLevel調整:
    WindowLevel調整模式,按住左鍵往上下拖動可調整WindowCenter,往左右拖動可調整WindowWidth,亦可於TextBox輸入WindowLevel值做調整

標記顯示:
    此專案支援顯示AIMRTSSOverlay等標記。AIM是可建立醫學影像標記資料庫的標註方法,通常用於建立深度學習模型。RTSS是放射治療資訊儲存與傳輸的標準格式中的一種結構,在臨床的應用上可做特殊放射治療的劑量評估,Overlay是覆蓋在整張影像上的疊加數據,可以用於標記ROI的邊界。
除了圖案標記,亦可顯示文字標記,此為AIM文字標記的顯示
建立3D模型時,2D標記亦可轉為3D標記

行動裝置瀏覽
    此專案支援RWD,並且支援觸控,當醫師需要使用手持裝置瀏覽醫學影像時便可用此專案的Viewer瀏覽醫學影像。

翻轉旋轉及反向:
ldcmView支援色彩反轉以及翻轉旋轉等幾何變換

距離及角度量測:
    使用距離量測工具,只要使用滑鼠或觸控單擊座標一並滑動至座標二放開,就能量測兩點在人體的實際距離。
    使用角度量測工具,只要使用滑鼠或觸控單擊座標一並滑動至座標二放開畫第一條線,接著拖動第二條線以量測兩條線之間實際的角度。
    量測的原理為先取得畫布上的兩點座標,計算套用CSS縮放後兩點之間實際的像素距離,再乘上DICOM Tag中的Pixel Spacing已取得在畫布上的兩點在影像中實際的長度。

標記輸出:
    此專案支援標註segmentation格式的標記,當使用者進入標註模式,游標位置會出現紅色圓圈,這時可以在影像上塗抹標記,可標記範圍涵蓋整個series,而非只是一張影像的標記,標註完第一張後透過滑鼠滾輪滾動可以切換不同張影像進行標註,標註完後,按下輸出icon,會開啟瀏覽資料夾的對話方塊,儲存後即可將標記儲存為segmentation格式的DICOM檔。


3D顯示模式:
此專案支援3D顯示,大多被用在電腦斷層掃瞄(CT)的瀏覽。
目前支援:
l   上下左右旋轉、縮放大小
l   透明度選擇
l   旋轉角度選擇
l   3D標記顯示
l   3D影像平滑化
l   依色碼表替灰階模型上色
l   可替模型打上光影、並可選擇光影強度
l   針對軟組織、骨骼、肺氣管有專門的顯示模式
l   在兩張間隔過大影像之間內插數張影像
l   透過挖掘模式,在模型上進行不規則的挖洞

3D標記顯示:
    2D標記顯示模式中,可以對OverlayRTSS等標記進行色彩、透明度、線條粗細、以及是否填充封閉區域等選擇,進入3D模式時,這些2D標記的設定將帶入3D模型中顯示,若標記位於模型的中間無法查看,則可以調整模型的透明度以查看模型中被遮蔽的標記。

3D影像平滑化:
    在醫學影像中常常出現一些雜訊(例如磁振造影中的Signal-to-noise ratio) ,可以透過平滑化的方式將其過濾掉。


影像上色:
電腦斷層掃描的影像通常是灰階影像,可以透過色碼表上色,讓影像看得更清楚。

影像打光影:
3D模型是由大量2D影像排列而成,沒有陰影層次,打上光影後可以看得更清楚。

影像內插:
有時候電腦斷層掃描出來的數張影像彼此距離過大,需要在中間內插數張影像來填補縫隙。

針對不同器官的顯示模式:
    本專案針對不同的器官有不同的顯示模式,分別會對軟組織、骨骼、肺氣泡套用不同的WindowLevel及色碼表。

挖掘模式:
    挖掘模式是3D顯示模式附屬的功能,使用者只要用滑鼠圈選想要切除的區域,就能將該區域切除掉。

MPR顯示模式:
    MPR(2D Multiplanar reconstruction )的中文翻譯為二維多平面重建,是醫學影像中重要的技術,多用來查看器官在各個角度的切面,在2D影像中,斷層掃瞄的切片通常是讓醫師一張一張的看,但是在3D影像中,醫師不一定要依照原本的方向查看影像,而是可以在不同的角度建立切面作顯示。
   本計畫將斷層掃瞄的切片按照順序排列後,當使用者在影像上選擇座標時,程式會從切片中一張一張讀取立體影像中該位置的片段,並將該位置的縱切面與橫切面顯示出來。

    這是一個在網頁上顯示MPR的例子,左下角是原圖,左上角跟右上角分別為立體影像的縱切面與橫切面,這四張圖中有綠色的線,代表切面位置。上方的兩張影像等同於右下角那兩面綠色切片位置的影像,從不同角度的切片觀察影像可以幫助醫師觀察出更多細節。

3D VR顯示:
MPR顯示:
橫切面縱切面與3D立體成像模式(舊版本):



沒有留言:

張貼留言