不知不觉上位机开发已经做了一年有余,现在将我自己的经验跟大家分享。项目规模不大,但在做项目的过程中还是花费了心思,并且解决客户中的软件存在痛点(具体不方便详述),软件设计合理了其实用到的技术都不难,闲话不多说进入正题
xxxx医院智能采血管理系统主要是包含四部分
1、医院HIS/LIS的WebService接口
2、数据采集软件(采血软件,主要是护士操作软件)
3、上位机软件(读取采血软件推送过来的数据,同时发送指令给下位机)
4、下位机及自动化设备
具体的框架图如下
这个流程就是为了解决采血护士采集血的速度而提供的一款自动化设备,使用简单,逼格高大上每家医院值得拥有哈哈,因为整套数据采集软件和上位机系统设计是我做的,嗯哼,有点飘哈但还是值得拿出来说。
虽然公司重硬件而且卖产品的时候软件都是免费送,但是任何高逼格自动化设备没有数据支撑都是废铁,大家认可不,所以采血贴标自动化设备的软件不能随意,已经安排了你在这个岗位就要谋其职解其忧啊,我们自己内心也要知道一件事那是软件自动化设备也是缺一不可啊,这里讲了讲软件在硬件产品公司的地位不知道大家是否有一样的感受哈,下面我分块讲讲是如何设计实现的一个系统。
1、数据采集软件(采血软件,护士操作的界面)不多说上图,图只能看个大概哈,不能查看具体的信息
采集软件采用的是CS架构,主要功能有:条码打印,设备管理,仓位管理,用户管理,数据统计。UI是找了一个商业授权的来搞,搞Devpress和DonetBar也有用过但是不需要太笨重的UI,咋要的美观扁平化,且要用起来方便,数据采集我是借用了HttpClient去请求WebService的接口,接口数据返回信息模型是规划好然后找HIS/LIS厂家提供即可,抓到数据后就将咋们要的数据插入到本地数据库中,当数据全部插入完成后就通过Socket客户端Send一个消息给打印监控Socket服务端,此时采集软件的工作就基本完成,因为采集软件是护士操作的界面,所以要将设备返回回来的错误信息推送到采集软件中,当监控软件把设备的状态和错误信息推送给采集软件时,采集软件的工作就完成了。
用的技术:HttpClient,Mysql数据库存储,Socket通讯,UI布局,事件,委托,多线程
2、打印监控软件(直接跟设备通讯-Modbus-rtu协议)
软件设计思路:CS架构,接收采集软件推送过来的指令然后去查询Mysql数据,在循环数据打印和发送指令给下位机自动出试管,将打印好的标签贴在试管上 ,当设备出错时要解析错误同时将错误和状态信息推送到采集软件告诉护士设备的状况。一个自动化设备下位机工程师把寄存器定义好,那么上位机定时发送询问指令给下位机,或者将对应的参数写入到设备中,设备从而自动做某个动作
用的技术:SerialPort,FastReport,Socket通讯,事件,委托,多线程
FastReport.Net如何模板实现打印请点击 【C# winform 使用FastReport.Net自动打印一维码条码和二维码的解决方法】
3、现场具体的使用场景图和采血软件、上位机软件与设备之间的关系
大家会不会觉得很奇怪一套业务系统为何要设计两款软件来完成任务,主要的原因是一台设备负责两台电脑,一个设备的串口线只有一条,主机和从机只能借助主机的监控软件将信息推送给主机和从机的采血软件上面才能完成整套业务系统的运作。