最近参与公司开发了一款读取ECG心电接口程序

原理就是通过心电设备读取患者的心电数据 并生成ECG文件 然后通过ECG客户端程序读取ECG文件 并解析转换成图片 上传至服务器

下边是客户端程序截图 客户端配发给个乡镇诊所 主要负责采集患者的心电数据 并压缩上传服务器 这样异地的医生通过登录心电平台 能够及时的对患者的病情做出诊疗 大致开发的时候是这个设想

医生登录服务端

心电盒设备

心电盒可以读取患者的心电数据 并生成ECG文件

但由于心电盒这种设备磁盘读取非常耗电 所以解析文件都是把文件拷贝到本地磁盘进行解析操作

由于项目是BS的  参考很多项目 ECG多数都是显示都是CS程序中 BS必须转成图片才可以 所以本地程序把ECG文件转换成了GIF图片 和滤波文件(滤波文件只能CS程序查看 这里调用的是ECGVIEW)  并压缩成BYTE[]流 通过WCF的方式

上传到服务端预览

患者的数据也是通过客户端上传过来的

读取心电盒数据的读取和读取U盘数据一样 操作很简单

   //读取U盘ECG文件 并序列化为流
protected override void WndProc(ref Message m)
{
try
{
if (m.Msg == WM_DEVICECHANGE)
{
switch (m.WParam.ToInt32())
{
case WM_DEVICECHANGE:
break;
case DBT_DEVICEARRIVAL://U盘插入 bool result = false;
DriveInfo[] s = DriveInfo.GetDrives();
foreach (DriveInfo drive in s)
{
if (drive.DriveType == DriveType.Removable)
{
string path = Path.Combine(drive.Name.ToString(), "CCSDSM.ECG");
if (File.Exists(path))
{
result = true;
break;
}
}
} if (!result)
{
return;
}
if (this.WindowState == FormWindowState.Minimized)
{
this.Visible = true;//弹出MainForm this.WindowState = FormWindowState.Normal;//最大化 } if (!setRepeatOpenForm("frmMain"))
{
_frmBaseInfo = new frmMain();
_frmBaseInfo.Show(dockPanel1);
} if (DialogResult.OK == MessageBox.Show("发现ECG心电数据,是否进行上传?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{ _frmBaseInfo.btnReadXD.Enabled = true;
object t=null;
EventArgs e=new EventArgs ();
_frmBaseInfo.btnReadXD_Click(t, e);
}
else
{
_frmBaseInfo.btnReadXD.Enabled = false;
} break;
case DBT_CONFIGCHANGECANCELED:
break;
case DBT_CONFIGCHANGED:
break;
case DBT_CUSTOMEVENT:
break;
case DBT_DEVICEQUERYREMOVE:
break;
case DBT_DEVICEQUERYREMOVEFAILED:
break;
case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
break;
case DBT_DEVICEREMOVEPENDING:
break;
case DBT_DEVICETYPESPECIFIC:
break;
case DBT_DEVNODES_CHANGED:
break;
case DBT_QUERYCHANGECONFIG:
break;
case DBT_USERDEFINED:
break;
default:
break;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
base.WndProc(ref m);
}

ecg解析和滤波文件的生成用的是这两个DLL dll应该是用delphi开的 如果有的朋友能给反编译出代码 记得共享一下哈

由于每种心电盒调用的DLL不一样 所以这种DLL不适用其它产品 这也是行业所欠缺的吧 我觉得 要是能统一一下就好了 共享链接

http://files.cnblogs.com/wangnannan/GifDll.rar

http://files.cnblogs.com/wangnannan/FilterFile.rar

最近开发的ECG项目的更多相关文章

  1. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  2. ASP.NET MVC5 网站开发实践(一) - 项目框架

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过"摸着石头过河"吧.这段时间看了一些博主的文章收获很大,特别是 ...

  3. ASP.NET Core WebAPI 开发-新建WebAPI项目

    ASP.NET Core WebAPI 开发-新建WebAPI项目, ASP.NET Core 1.0 RC2 即将发布,我们现在来学习一下 ASP.NET Core WebAPI开发. 网上已经有泄 ...

  4. ASP.NET MVC5 网站开发实践(一) - 项目框架(转)

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过“摸着石头过河”吧.这段时间看了一些博主的文章收获很大,特别是@kencery,依 ...

  5. Entity Framwork(EF) 7——在现在数据库的甚而上开发MVC 新项目

    一.开发背景: 由于老系统已经无法满足实际业务需求,需在现有数据库的甚而上开发新的项目. 二.困难点: 而EF默认情况下是要删除现有数据库表格后重新创建,这是不允许的.当你创建数据库对象时系统会提示“ ...

  6. VS2013开发Windows服务项目

    这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务 ...

  7. 采用apicloud开发移动端项目心得体会

    作为第一批吃螃蟹的,来说一说apicloud做移动端项目的一些体会. 刚开始接到项目,需要移动端开发两个项目,公司人员里面没有一个会原生android或者ios开发的,目前能出的技术也就是web,后端 ...

  8. express框架+jade+bootstrap+mysql开发用户注册登录项目

    完整的项目代码(github):https://github.com/suqinhui/express-demo express是基于Node.js平台的web应用开发框架,用express框架开发w ...

  9. 多人开发的git项目如何保持提交日志为一条直线?

    多人开发的git项目如何保持提交日志为一条直线? 一.Git的项目的git常用操作 a)Git clone 项目地址 从远程仓库克隆项目到本地 b)Git pull 从当前分支拉取更新代码 c)Git ...

随机推荐

  1. ComboxEdit实现二级联动

    private void cmbXPROVINCE_SelectedIndexChanged(object sender, EventArgs e) { DataBind(cmbXPROVINCE, ...

  2. [WebServer] Windows操作系统下 Tomcat 服务器运行 PHP 的环境配置

    前言: 由于本人在开发和学习过程中需要同时部署 JavaWeb 和 PHP 项目,于是整理了网上的一些相关资料,并结合自己的实际操作,记录于此,以供参考. 一.环境(64bit): 1.操作系统.To ...

  3. Codeforces Round #383 (Div. 1)

    A: 题目大意:给出一个有向图(n<=100),每个点的出度都为1,求最小的t,使得任意两点x,y,如果x走t步后能到y,那么y走t步后到x. 题解: 首先每个点应该都在一个环上,否则无解. 对 ...

  4. map 取值

    1>可以取出Map中所有的键所在的Set集合:再通过Set的迭代器获取到每一个键,之后再用get();方法获得对应的值. public static void main(String[] arg ...

  5. MicroERP软件更新记录2.1

    最新版本:2.1 更新内容:新增客户关系管理(CRM) 下载地址:http://60.2.39.130/microerp 因部分企业用户或个人(开发者)的实际应用水平或技术开发能力参差不齐,且软件开发 ...

  6. Unhandled exception at 0x........ in XXXX.exe: 0xC0000005:错误

    对于C++初学者或粗心者,很容易犯如下图所示错误:     那么该错误是由什么造成的呢?   答案无疑只有一个,即:读取了本该没有的值或者地址.   那么如何解决呢?   第一件事,检查下你传入的参数 ...

  7. Basic linux command

    1. useradd  解释:添加新用户,在/etc/password文件中添加一行记录. 参数: -g    用于添加账户时指定该账户的私有组,如果不指定-g参数,useradd命令会自动创建与该用 ...

  8. HTML中的select只读

    因为Select下拉框只支持disabled属性,不支持readOnly属性,而在提交时,disabled的控件,又是不提交值的.现提供以下几种解决方案: 1.在html中使用以下代码,在select ...

  9. Linux Shell脚本编程--Head/Tail命令详解

    head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾,看看下面的范例:## ( ...

  10. 使用jQuery,实现完美的表单异步提交

    jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...