先看效果:html
再看結構,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:this
ET_MedicalCell cell = new ET_MedicalCell(1, 1, this); MdiGrid.Children.Add(cell); Cells.Add(cell);
狀況2:變換行列,平鋪與層疊切換:spa
思路:Cell數量始終爲1,Box數量變爲行列數量設計
狀況3:單元格雙擊放大:
思路:Cell數量始終爲1,Box數量始終爲1
狀況4:醫生實際使用中的複合操做:
思路:控制Cell和Box的數量,記錄好變換以前的位置,由於有可能會變回去,直接引用變換前的對象和位置便可,無需從新加載Dicom影像而浪費效率和資源。
C#開發PACS、RIS醫學影像處理系統
目錄整理:
(一)PACS客戶端:
C#開發PACS醫學影像處理系統(七):讀取影像Dicom信息
C#開發PACS醫學影像處理系統(十):Dicom影像下載策略與算法
C#開發PACS醫學影像處理系統(十一):Dicom影像掛片協議
C#開發PACS醫學影像處理系統(十二):繪圖處理之圖形標記
C#開發PACS醫學影像處理系統(十三):繪圖處理之病竈測量
C#開發PACS醫學影像處理系統(十四):處理Dicom影像窗寬窗位
C#開發PACS醫學影像處理系統(十五):Dicom影像交叉定位線算法
C#開發PACS醫學影像處理系統(十六):2D處理之影像平移和縮放
C#開發PACS醫學影像處理系統(十七):2D處理之影像旋轉和翻轉
C#開發PACS醫學影像處理系統(十八):Dicom使用LUT色彩加強和反色
C#開發PACS醫學影像處理系統(十九):Dicom影像放大鏡
(二)PACS三維:MRP、MIP、VR
C#開發PACS醫學影像三維重建(一):使用VTK重建3D影像
(三)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影像處理系統宣傳視頻
QQ:1850969244 近10年開發經驗,主攻C#、ASP MVC,HTML5, B/S C/S 皆可,目前研究醫療領域醫學影像相關技術, 任何技術問題歡迎加QQ交流。 |