最近参与公司开发了一款读取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不适用其它产品 这也是行业所欠缺的吧 我觉得 要是能统一一下就好了 共享链接
https://files.cnblogs.com/wangnannan/GifDll.rar
https://files.cnblogs.com/wangnannan/FilterFile.rar