新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 启用Dragonboard 410c开发医疗业物联网

启用Dragonboard 410c开发医疗业物联网

作者:时间:2017-10-11来源:网络收藏

需求分析

随着社会事业的发展,医疗行业对各种仪器的需求越来越大,如生化仪,心电监护仪,呼吸机等等,这些设备目前使用两种通信方式和lis/pacs/中心监护系统接口

本文引用地址:http://www.eepw.com.cn/article/201710/365526.htm

- 大多数采用串口作为数据接口,使用ASTM作为通信协议

- 使用以太网网络接口,以HL7作为通信协议

协议解释

HL7

HL7标准是建立在ISO标准组织之制定的OSI模型的最高层的应用标准,如下图所示:

HL7标准包含256个事件、116个消息类型,139个段,55种数据类型,408个数据字典,涉及79种编码系统。但在应用HL7标准时,并不一定需要涉及标准全部内容,可以选择自己需要应用的相关事件、消息类型和段就可以了。而在数据字典和编码系统方面HL7标准并没有进行强制的规定,可以允许用户选择。标准的内容作为推荐。由于HL7涉及非常广泛,且在开发过程中广泛接纳了最终用户、开发商、研究机构的各方面的意见,从另一个方面也可以将HL7标准理解为医学信息中的其他编码标准的一个总纲性质的索引。

ASTM

ASTM的全称是American Society for TesTIng and Materials,美国材料与试验协会。它规定十几个类别,用途非常广泛,包含以下门类:

1、钢铁产品

2、有色金属产品

3、金属试验和分析方法。

4、建筑

5、石油与化工

6、染料和涂料

7、纺织

8、塑料

9、橡胶

10、电气与电子工业

11、水和环保技术

12、核能、太阳能与地热能

13、医疗器械和服务

14、通用方法和仪器。

15、通用产品和专用化学品

医疗行业用的是第13类 ,比如

ASTM E1394 等等

目前现状

传统医院系统都是使用PC作为仪器服务器来接入的,体积大,价格贵,功耗也大,而且很不灵活,不同的仪器要不同的接口程序,这些接口程序使用Powerbuilder,delphi,C#编写,每次不同仪器参数和协议接口都需要重新编译部署实施调试,成本高,工期长。

用Dragonboard 410c的方案

有鉴于此,我们决定采用Dragonboard代替PC来实现各种仪器接入,使用nodejs开发,带来的好处是明显的,价格远低于pc,而且灵活 不需要编译,而且nodejs本身在www.npmjs.org上提供了海量的模块库,其中就包括HL7的解析库,使用nodejs可以极大的降低开发工作难度,动态配置js脚本就可以对接相应的仪器,因此可以远程配置调试仪器,节省昂贵的差旅费。

410c的外观很小巧,用来代替庞大的pc ,会给医院节省开支,而且未来 410c可以集成到仪器里面,成为仪器的一部分。

开始动手

首先安装

先下载img文件,这里我们选择debian,大家可以直接去linaro的网站下载

dragonboard410c_sdcard_install_debian-36.zip这个文件,不过这个网站经常断线,为了大家操作方便我就下载了并且共享了

http://pan.baidu.com/s/1migYRiC

把tf卡通过usb读卡器插入电脑,推荐使用class 10 的tf卡,8G以上。

使用sdformatter 格式化卡

然后使用win32diskimager把镜像烧录到tf卡。

把tf卡插入板子,启动 ,并把跳线位置设成如下模式

根据屏幕提示,选择intall ,然后等待几分钟 系统就安装好了,这时候去掉TF卡

(如果不去掉TF卡,下次启动还是从TF卡启动,或者你可以设置跳线,选择从EMMC启动,我为了图省事就拔掉了TF卡)重新启动

显示linaro登陆界面

密码和用户名都是linaro

为了以后操作方便,使用passwd建立root账号

用root登陆,然后在操作指令 就不需要输入烦人的sudo了

安装nodejs

因为410c板子我已经装好了nodejs 我在另外一个板子上演示一下nodejs的安装过程

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -

sudo apt-get install -y nodejs

如果发现没有curl 可以用apt-get install curl 安装

安装完nodejs 运行node -v 就可以看到已经装好

安装相应的模块

因为我们做的医疗网关需要支持HL7和ASTM协议,因此需要安装相应的模块

node-serialport和hl7模块

使用npm直接安装 npm install node-serialport

npm install hl7 因为每种仪器只会选择其中之一,因此我们装在不同的工作目录

测试串口和ASTM协议

本来打算直接连接我们的ASTM仿真器的,但是Dragonboard 410c的IO是1.8v的,我怕直接接上我们设备的3.3v TTL 会烧掉,所以决定使用USB口转出来的串口解决这个问题。

我们使用一个MICO开发板作为串口输入源,通过一个USB HUB接入410c主板。

在/dev/ 下可以看到一个设备ttyUSB1,编写一个测试程序lis.js

var SerialPort = require(“serialport”).SerialPort,

sp = new SerialPort(“/dev/ttyUSB1”, {

baudrate: 115200

}, false);

sp.open(funcTIon (error) {

if (error) {

console.log(‘failed to open: ’ + error);

return;

} else {

console.log(‘open’);

}

});

sp.on(‘data’, funcTIon (data) {

console.log(data.toString());

//sp.write(“hello/r/n”);

});

说明串口可以正常工作,实际接入我们的仪器通信程序也可以通信的

测试HL7

接下来我们测试HL7功能,在drgonboard 安装hl7测试包

npm install simple-hl7

然后进去到node_modules/simple-hl7/examples,可以看到有4个例子,我们运行tcp-server这个

node tcp-server.js

然后在pc上运行hl7模拟器

可以看到模拟器模拟发送的HL7 结果已经被龙版上运行的hl7 server接受到

稍微修改这个hl7 程序,把hl7转成json ,转换功能都是这个hl7包里面提供的,就可以直接保存到rest界面的数据库后端。

实际模拟

使用我们自己的仪器数据和模拟器 ,真实连接我们自己的模拟器,数据保存到couchdb

可以看到数据被完整的保存进去了,使用nodejs 也可以方便的通过webhdfs等模块把iot数据保存进Hadoop 或者通过其他相关的模块把心电监护数据保存到openTSDB或者infuxdb 等等,而这些代码加起来也不过千行,而且可以运行在嵌入式ARM板如龙板上,这是传统医疗软件开发手段如PB,C#,Java都很难做到的。

接下来我还会尝试octoprint控制3d打印等项目,本次测试dragonboard还有一个很重要的事,是希望能拿到dragonboard配套的那个HDMI转CSI的板子,很遗憾一直没有机会测试这个,这个可以用于超声内镜的采集,代替昂贵的采集工作站和笨重的采集卡。

接下来我还会尝试octoprint控制3d打印等项目,本次测试dragonboard还有一个很重要的事,是希望能拿到dragonboard配套的那个HDMI转CSI的板子,很遗憾一直没有机会测试这个,这个可以用于超声内镜的采集,代替昂贵的采集工作站和笨重的采集卡。

后记

这次测试准备的很不充分,1.8v的IO我没有准备好,本来可以直接使用低速插座的UART接口来对接串口设备的,另外也可以使用Python开发,效果也很好,一样可以在pc和arm板上移植,也可以支持串口也有HL7的库。



评论


相关推荐

技术专区

关闭