C#開發PACS醫學影像處理系統(八):單元格變換

喬克灬叔叔發表於2020-09-14

 

先看效果:

 

再看結構,Viewer(影像控制元件)分為N個Cell(單元格),每個單元格分為N個Box(影像容器),

當預設情況為2x2的行列時,結構如下圖:

    

 

其中,我們在WPF設計器中建立一個使用者控制元件叫Viewer,使用Grid容器,預設2x2,再根據自己的業務需要建立使用者控制元件Cell和使用者控制元件Box,

在Viewer中宣告變數集合來記錄Cell,同理,在Cell中宣告變數集合來記錄Box:

     /// <summary>
        /// 影像單元格集合
        /// </summary>
        public List<ET_MedicalCell> Cells = new List<ET_MedicalCell>();

 

 

 

 

情況1:變換行列,例如從2x2 變換到3x3:

 

 

 

思路:在集合中新增子控制元件,為行列屬性設定觸發器,

   private int rowsCount = 2;
        /// <summary>
        /// 單元格的行數
        /// </summary>
        public int RowsCount
        {
            get { return rowsCount; }
            set
            {if (value < -1)
                {
                    rowsCount = 0;
                }
                else if (value > 10)
                {
                    rowsCount = 10;
                }
                else
                {
                    rowsCount = value;
                }
                SetLayout();
                SetCellCount();
            }
        }

新增Cell:

ET_MedicalCell cell = new ET_MedicalCell(1, 1, this);
MdiGrid.Children.Add(cell);
Cells.Add(cell);

 

 

 

情況2:變換行列,平鋪與層疊切換:

思路:Cell數量始終為1,Box數量變為行列數量

 

 

 

情況3:單元格雙擊放大:

思路:Cell數量始終為1,Box數量始終為1

 

情況4:醫生實際使用中的複合操作:

思路:控制Cell和Box的數量,記錄好變換之前的位置,因為有可能會變回去,直接引用變換前的物件和位置即可,無需重新載入Dicom影像而浪費效率和資源。

 

C#開發PACS、RIS醫學影像處理系統

目錄整理:

(一)PACS客戶端:

C#開發PACS醫學影像處理系統(一):開發背景和功能預覽

C#開發PACS醫學影像處理系統(二):介面佈局之選單欄

C#開發PACS醫學影像處理系統(三):介面佈局之工具欄

C#開發PACS醫學影像處理系統(四):介面佈局之狀態列

C#開發PACS醫學影像處理系統(五):查詢病人資訊列表

C#開發PACS醫學影像處理系統(六):載入Dicom影像

C#開發PACS醫學影像處理系統(七):讀取影像Dicom資訊

C#開發PACS醫學影像處理系統(八):單元格變換

C#開發PACS醫學影像處理系統(九):序列控制元件與拖拽

C#開發PACS醫學影像處理系統(十):Dicom影像下載策略與演算法

C#開發PACS醫學影像處理系統(十一):Dicom影像掛片協議

C#開發PACS醫學影像處理系統(十二):繪圖處理之圖形標記

C#開發PACS醫學影像處理系統(十三):繪圖處理之測量工具

C#開發PACS醫學影像處理系統(十四):處理Dicom影像窗寬窗位

C#開發PACS醫學影像處理系統(十五):基於體點陣圖交叉定位線演算法

C#開發PACS醫學影像處理系統(十六):2D處理之平移和縮放

C#開發PACS醫學影像處理系統(十七):2D處理之任意角度旋轉與映象翻轉

C#開發PACS醫學影像處理系統(十八):Dicom影像色彩增強(偽彩)

C#開發PACS醫學影像處理系統(十九):Dicom影像反色處理(負片)

C#開發PACS醫學影像處理系統(二十):Dicom影像放大鏡功能

 

(二)PACS三維:MRP、MIP、VR

C#開發PACS醫學影像三維重建(一):使用VTK三維重建Dicom影像

 

(三)PACS網頁端:開發Web版本的PACS

C#開發Web端PACS(一):基於PACS客戶端思想重寫Web端

 

(四)PACS移動端:開發基於HTML5移動端版本的PACS

C#開發移動端PACS(一):使用HTML5和CSS3開發PACS手機端頁面

C#開發移動端PACS(二):使用 .Net MVC 開發手機端PACS服務端

 

(五)PACS服務端:

C#開發PACS醫學影像處理系統服務端(一):醫療裝置的連線與收圖

C#開發PACS醫學影像處理系統服務端(二):高併發架構

 

(六)PACS與RIS系統的通訊與整合

在RIS系統中調起PACS並開啟Dicom影像

 

(七)雲PACS與遠端會診

C#開發PACS醫學影像處理系統之雲PACS(區域PACS)(一):架構概述

C#開發PACS醫學影像處理系統之雲PACS(區域PACS)(二):遠端會診與雙向轉診

 

(八)科幻級視訊特效:使用Adobe After Effects 製作PACS影像處理系統宣傳視訊

 

相關文章