皇甫立夏,陆宇宏,朱泉杰,杨 敏,龚 鸣(南通大学附属医院 信息科,江苏南通226001)
基于ASP.NET的超声科工作量统计软件设计与实现
皇甫立夏,陆宇宏,朱泉杰,杨敏,龚鸣
(南通大学附属医院信息科,江苏南通226001)
〔摘要〕目的:本文介绍了作者所在医院超声科信息系统(Ultrasonic Information System,UIS)的现状和需求,并阐述了利用ASP.NET技术如何开发医院超声科工作量查询统计程序,最终实现超声科工作量查询统计工作高效完成。
〔关键词〕ASP.NET;UIS;医院
我院超声信息系统(Ultrasonic Information System,UIS)于2009年投入使用,系统稳定高效基本能满足需求。工作量查询统计功能是很重要的,虽然此系统也具备,但是超声科室反映操作上比较繁琐,希望能改进此项功能为科室带来工作上的便利。
1.1系统分析
超声科每个检查室都有计算机,故本系统采用B/S结构较为合适,在每个诊室都可以查询工作量。超声信息系统(UIS)使用的数据库是微软公司的SQL Server2005,本次开发的统计系统在此数据库基础上做开发,为了保证数据的安全性,本系统只做数据库的查询不做写入操作,开发语言选择ASP.NET,开发工具Visual Studio 2008。登录账号使用UIS数据库用户和密码验证,验证通过后进入系统。
1.2模块设计
(1)可以查询每位医生的各种检查类型的数量及总价;
(2)可以查询每位医生所有检查类型的总数量和总费用;
(3)可以查询整个科室检查的总数量和总费用;
(4)超声介入室作为独立模块也具备上述功能;
(5)具备检查类型的二级调用功能,列出这个检查类型的所有病人。
2.1在web.config里添加cmis数据库
2.2新建DBHelper类并获得本地数据库连接
static string connString = ConfigurationManager. ConnectionStrings["conn"].ConnectionString
3.1以查询整个科室所有检查为例,在页面GzltjAll.aspx添加GridView控件,GridView控件通过数据源控件与数据库绑定,从而获取数据之后在表格中显示,具体代码如下:
public static List
{
string sql = @"select case when(grouping(RITB2. YSXM)=1) then '总计'
else isnull(RITB2.YSXM,'unknown') end as YSXM,
case when(grouping(RITB1.SQMD)=1 and grouping (RITB2.YSXM)=0) then '合计'
when(grouping(RITB2.YSXM)=1 and grouping(RITB1. SQMD)=1) then ''
else isnull(RITB1.SQMD,'unknown') end as SQMD
,count(*)as num,sum(ExamFee) as CHARGE from RITB1,RITB2
where RITB1.DJH1=RITB2.DJH1 and RITB2.ReportedDate>='" + DateBegin + "' and RITB2.ReportedDate<='" + DateEnd + "'group by RITB2.YSXM,RITB1.SQMD with rollup";/*YSXM:医生姓名;RITB*表是UIS数据库报告信息表;DJH*字段是RITB*表的主Key;ReportedDate:报告日期;总计:所有医生的所有检查的总计;合计:单个医生的所有检查类型的汇总*/
SqlDataReader reader = DBHelper.GetReader(sql);
List
while (reader.Read())
{
Gzltj gzltj = new Gzltj();
gzltj.Ysxm = reader["YSXM"].ToString();/*Ysxm:医生姓名*/
gzltj.Sqmd = reader["SQMD"].ToString();/*Sqmd:检查类型*/
gzltj.Sum = Convert.ToInt32(reader["num"]);/*Sum:检查的数量*/
gzltj.Charge = reader["CHARGE"].ToString();/*Charge:费用*/
gzltjs.Add(gzltj);
}
return gzltjs;
}
单击“查询”按钮事件:
private void Bind()/*gridview绑定事件*/
{
string dateBegin = txtDateBegin.Text;/*查询的开始日期*/
string dateEnd = txtDateEnd.Text;/*查询的结束日期*/
if (dateBegin == null || dateBegin == "")
{
Response.Write(""); /*日期为空提示*/
}
else if ((dateBegin != null) && (dateEnd == null))
/*查询单个日期*/
{
dateEnd =dateBegin;
gvDocCount.DataSource = GzltjManager.Select (dateBegin,dateEnd);
gvDocCount.DataBind();/*GridView控件绑定数据*/
}
else/*查询日期范围*/(见图1)
{
gvDocCount.DataSource = GzltjManager.Select(dateBegin, dateEnd);
gvDocCount.DataBind();
}
}
图1 按照日期范围查询结果(部分截图)
3.2“检查类型”做一个超链接,单击后可显示对应的病人详细信息,方便核对,如图2所示。
图2 单个检查类型病人列表
3.3查询结果导出到Excel,方便科室资料整理。
本系统能方便、准确、高效的完成超声科个性化的工作量查询统计功能。因对UIS数据库的只能查询不能写入限制,故如何构造SQL语句成为此系统的关键。经过超声科的使用反映,本系统可以大幅提高工作量查询统计的工作效率,受到一致好评。
[参考文献]
[1] 达列雄.基于ASP.NET的高校教师工作量管理系统的设计与实现[J].电脑开发与应用,2014,(02):43.
[2] 胡百敬.SQL Server数据库开发详解[M].北京:电子工业出版社,2006.
[3] 张莉.SQL Server数据库原理及应用教程[M].北京:清华出版社,2010.
[4] 高宏,李俊民. ASP.NET 典型模块与项目实战大全[M].北京:清华大学出版社,2012.
[5] 刘 斌,张军. ASP.NET+SQL Server 动态网站开发案例精选[M].北京:清华大学出版社,2005.
收稿日期:2015-05-13
〔中图分类号〕TP393
〔文献标识码〕A
〔文章编号〕1002-2376(2015)09-0007-02