在很多常规的管理系统里面,都可能有附件管理的需求,在我做的一系列医疗行业的病人信息管理系统里面,都希望能很好的管理病人的相关资料,分门别类的进行存储,需要的时候可以预览查看,那么这个功能我们可以把它独立做成一个附件管理模块,这样可以在各个系统中集成即可,我曾经在《Winform开发框架之通用附件管理模块》里面介绍过这样的附件模块,从那时候开始了,我需要附件模块的时候,就通过集成起来即可,非常方便高效。

1、附件管理界面展示

附件管理在很多信息化管理系统中很普遍使用,例如我在病人管理系统界面里面,可以在一个界面里面分门别类管理很多影像学的图片资料,通过查看附件,可以看到其中一些图片附件的缩略图,需要进一步查看,可以双击图片即可实现预览效果。

随访信息界面也可以录入一些相关的附件信息。

附件管理的上传界面如下所示,可以从本地选择多个文件一并上传,每个文件上传成功后立即显示状态。

上传后,界面以缩略图进行展示,如果需要删除,勾选“全部选择”、“选择附件”选项即可。

图片双击后可以进行预览,如果其他文件,那么可以下载后打开。

2、附件模块的使用代码展示

1)由于附件管理已经封装好控件了,所以在使用的时候,拖动到界面即可。

在界面后台代码里面,给它绑定相关的属性即可,下面是我们绑定显示附件的操作。

        //PatientInfo在对象存在则为指定对象,新建则是全新的对象,初始化的GUID用于附件上传
private void SetAttachInfo(PatientInfo info)
{
this.attachBeforeCT.AttachmentGUID = info.BeforeCT;
this.attachBeforeMRI.AttachmentGUID = info.BeforeMRI;
this.attachBeforeXRay.AttachmentGUID = info.BeforeXRay;
this.attachBeforeBitSlice.AttachmentGUID = info.BeforeBitSlice;
this.attachBeforePicture.AttachmentGUID = info.BeforePicture; this.attachMiddlePicture.AttachmentGUID = info.MiddlePicture;
this.attachMiddleVideo.AttachmentGUID = info.MiddleVideo;
this.attachMiddleXRay.AttachmentGUID = info.MiddleXRay; this.attachAfterCT.AttachmentGUID = info.AfterCT;
this.attachAfterMRI.AttachmentGUID = info.AfterMRI;
this.attachAfterXRay.AttachmentGUID = info.AfterXRay;
this.attachAfterBitSlice.AttachmentGUID = info.AfterBitSlice;
this.attachAfterPicture.AttachmentGUID = info.AfterPicture;
}

在图片存储中,我们一般是根据患者姓名和ID号进行存放的,所以附件的目录需要根据参数进行指定,代码如下所示。

        /// <summary>
/// 当修改患者姓名或者ID号的时候,改变附件的目录位置
/// </summary>
private void SetAttachmentPath()
{
if (!this.DesignMode)
{
string patientName = this.txtName.Text.Trim();
string IdNumber = this.txtIDNumber.Text.Trim();
if (!string.IsNullOrEmpty(patientName) && !string.IsNullOrEmpty(IdNumber))
{
string dir = string.Format("{0}.{1}", patientName, IdNumber);
this.attachBeforeCT.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachBeforeMRI.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachBeforeXRay.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachBeforeBitSlice.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachBeforePicture.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name); this.attachMiddlePicture.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachMiddleVideo.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachMiddleXRay.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name); this.attachAfterCT.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachAfterMRI.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachAfterXRay.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachAfterBitSlice.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
this.attachAfterPicture.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
}
}
}

里面代码那个Init函数的定义如下所示,这样我们就知道附件属于那个病人的记录,属于那个登陆用户上传的了,方便我们后面对附件进行分类管理和控制。

        /// <summary>
/// 初始化相关参数
/// </summary>
/// <param name="attachmentDir">设置附件的存储目录分类</param>
/// <param name="owerId">附件组所属的记录ID,如属于某个主表记录的ID</param>
/// <param name="userId">操作用户ID,当前登录用户</param>
public void Init(string attachmentDir, string owerId, string userId)

由于附件有独立的存储模块,因此我们不需要为附件的上传以及数据库记录的存储做任何特殊的操作,只需要告诉附件它对应的记录GUID,并初始化它的目录位置即可。

该附件界面以下部分,可以使用在传统Winform中,也可以使用WCF的分布式应用程序中,还可以使用在Web开发里面,如我之前写的Web开发界面中关于附件上传的操作,利用的就是这些内容,只是界面需要重新处理而已。

里面的

以上就是Winform开发框架中附件管理模块的应用场景和使用代码的展示,希望大家多多建议,吸收更好的意见,做的更好。

Winform开发框架之附件管理应用的更多相关文章

  1. Winform开发框架之权限管理系统功能介绍

    权限管理系统的重要特性总结: 1) 高度集成的权限系统.独立模块,能快速整合使用.2) 符合权限的国际通用标准,基于RBAC(基于角色的访问控制)的角色权限控制.3) 多数据库架构支持,内置支持Sql ...

  2. Winform开发框架之字典管理模块的更新,附上最新2013年全国最新县及县以上行政区划代码sql脚本

    在很多项目里面,字典管理是必备的项目模块,而这个又是比较通用的功能,因此可以单独做成一个通用字典管理,例如这个模块,可以通过集成的方式,使用在我的<Winform开发框架>.<WCF ...

  3. 在附件管理模块中增加对FTP 上传和预览的支持

    在之前介绍的附件管理模块里面<Winform开发框架之通用附件管理模块>以及<Winform开发框架之附件管理应用>,介绍了附件的管理功能,通过对数据库记录的处理和文件的管理, ...

  4. Winform开发框架之字段权限控制

    在我的很多Winform开发项目中(包括混合框架的项目),统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(按钮.菜单权限).数据权限(记录的权限),另外还可以进行字段级别的字段权限控制 ...

  5. Winform开发框架之通用附件管理模块 --SNF快速开发平台3.3-Spring.Net.Framework

    最近项目太多都没有时间写文章了,实际项目需求一,CS端和windows平板都需要附件上传管理功能.以前做的都是BS的附件管理和上传功能.本来计划在Winform上嵌套一个浏览器直接用bs的附件上传功能 ...

  6. Winform开发框架中的内容及文档管理模块功能介绍

    在开发项目的时候,我们有一些场景需要编辑一些HTML文档,作为内容发布系统的一部分,有时候也需要对一些文档如WORD文档进行编辑管理,这样需要我们对这些内容及文档进行合适的管理.本文主要介绍在WInf ...

  7. WinForm开发中通用附件管理控件设计开发参考

    1.引言 在WinForm开发中,文件附件的管理几乎在任何一个应用上都会存在,是一个非常通用集中的公共模块.我们日常记录会伴随着有图片.文档等附件形式来展现,如果为每个业务对象都做一个附件管理,或者每 ...

  8. 在Winform开发框架中对附件文件进行集中归档处理

    在我们Winform开发中,往往需要涉及到附件的统一管理,因此我倾向于把它们独立出来作为一个附件管理模块,这样各个模块都可以使用这个附件管理模块,更好的实现模块重用的目的.在涉及附件管理的场景中,一个 ...

  9. Winform开发框架中实现多种数据库类型切换以及分拆数据库的支持

    在很多应用系统里面,虽然一般采用一种数据库运行,但是由于各种情况的需要,可能业务系统会部署在不同类型的数据库上,如果开发的系统能够很方便支持多种数据库的切换,那可以为我们减少很多烦恼,同时提高系统的适 ...

随机推荐

  1. 如何做一份能忽悠投资人的PPT

    游侠近日发布的一款电动汽车引发全民吐槽,被人们嘲讽为“靠一份PPT忽悠投资人”.这类情形可以回溯至去年的锤子手机发布会.如今,吐槽的开始散去,我们可以静下心来吸收点干货,我们对比了锤子手机发布会的PP ...

  2. 黄页js-sdk开发总结分享

    2014年,为了方便第三方开发者能够调用本地的一些功能,我们提供了一套js-sdk.通过调用我们的接口,开发者可以定制UI,获取当前的手机状态,调用支付,黄页扫一扫功能,为用户提供更加优质的体验.下面 ...

  3. gem install 出现Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org

    在安装了rvm来管理多版本的ruby之后,想在不同环境下安装一些gems,结果gem install puma 之后,发现一次又一次失败. gem install 出现Errno::ECONNRESE ...

  4. 关于meta知多少

    本来打算写关于手机端的知识,想了想先从meta着手.接下来请大家看几个网站的例子. 一.天猫(http://m.tmall.com) <title>天猫触屏版</title> ...

  5. 关于BigDecimal的使用

    为什么使用BigDecimal 使用BigDecimal首先要注意到float,double是无法支持商业计算的.只能支持工程计算.即误差允许的计算.通常float占用4个字节,32位.double占 ...

  6. Spring3系列2 -- 松耦合的实现

    Spring3系列2 -- 松耦合的实现 一.      环境 spring-framework-3.2.4.RELEASE jdk1.7.0_11 Maven3.0.5 eclipse-jee-ju ...

  7. 在线PDF编辑网站http://www.pdfescape.com

    网站地址:http://www.pdfescape.com 先转载一个简单介绍的文章 如果你以前很少阅读PDF文档,电脑中也没有PDF阅读器:adobe reader,foxit reader之类的软 ...

  8. iOS 基础复习

    silverlight知识点:linqToSQL.视图.存储过程.索引.触发器 数据结构:数组.栈.队列.链表.属.图. 排序算法:插入.选择.交换(冒泡).归并 网络开发:HTTP短连接.socke ...

  9. 在UWP应用中实现Gif播放

    众所周知,在UWP应用框架中,Image控件是无法播放GIF的图片,只能显示静态图,这样的体验不是特别友好.我在Win8.WP8.1的时候实现过gif播放功能,但是最近发现性能和播放效果都差强人意,大 ...

  10. saiku 升级&备份&恢复

    最近使用saiku,重新编译升级之后维护困难,下面讲解一下简单的办法: 1.备份saiku-server下面的data文件夹 2.备份saiku-server下面的repository文件夹 3.升级 ...