• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

C#开发PACS医学影像处理系统(八):单元格变换

开发技术 开发技术 2周前 (09-14) 16次浏览

 

先看效果:

C#开发PACS医学影像处理系统(八):单元格变换

 

再看结构,Viewer(影像控件)分为N个Cell(单元格),每个单元格分为N个Box(影像容器),

当默认情况为2×2的行列时,结构如下图:

    C#开发PACS医学影像处理系统(八):单元格变换

 

其中,我们在WPF设计器中创建一个用户控件叫Viewer,使用Grid容器,默认2×2,再根据自己的业务需要创建用户控件Cell和用户控件Box,

在Viewer中声明变量集合来记录Cell,同理,在Cell中声明变量集合来记录Box:

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

 

C#开发PACS医学影像处理系统(八):单元格变换

 

 

 

情况1:变换行列,例如从2×2 变换到3×3:

 

 

 C#开发PACS医学影像处理系统(八):单元格变换

思路:在集合中添加子控件,为行列属性设置触发器,

   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);

 C#开发PACS医学影像处理系统(八):单元格变换

 

 

情况2:变换行列,平铺与层叠切换:

思路:Cell数量始终为1,Box数量变为行列数量

 C#开发PACS医学影像处理系统(八):单元格变换

C#开发PACS医学影像处理系统(八):单元格变换

 

 

情况3:单元格双击放大:

思路:Cell数量始终为1,Box数量始终为1

C#开发PACS医学影像处理系统(八):单元格变换

C#开发PACS医学影像处理系统(八):单元格变换

 

情况4:医生实际使用中的复合操作:

思路:控制Cell和Box的数量,记录好变换之前的位置,因为有可能会变回去,直接引用变换前的对象和位置即可,无需重新加载Dicom影像而浪费效率和资源

C#开发PACS医学影像处理系统(八):单元格变换

 

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影像处理系统宣传视频

 


喜欢 (0)