啟用Dragonboard 410c開(kāi)發(fā)醫療業(yè)物聯(lián)網(wǎng)
需求分析
隨著(zhù)社會(huì )事業(yè)的發(fā)展,醫療行業(yè)對各種儀器的需求越來(lái)越大,如生化儀,心電監護儀,呼吸機等等,這些設備目前使用兩種通信方式和lis/pacs/中心監護系統接口
本文引用地址:http://dyxdggzs.com/article/201710/365526.htm- 大多數采用串口作為數據接口,使用ASTM作為通信協(xié)議
- 使用以太網(wǎng)網(wǎng)絡(luò )接口,以HL7作為通信協(xié)議
協(xié)議解釋
HL7
HL7標準是建立在ISO標準組織之制定的OSI模型的最高層的應用標準,如下圖所示:
HL7標準包含256個(gè)事件、116個(gè)消息類(lèi)型,139個(gè)段,55種數據類(lèi)型,408個(gè)數據字典,涉及79種編碼系統。但在應用HL7標準時(shí),并不一定需要涉及標準全部?jì)热?,可以選擇自己需要應用的相關(guān)事件、消息類(lèi)型和段就可以了。而在數據字典和編碼系統方面HL7標準并沒(méi)有進(jìn)行強制的規定,可以允許用戶(hù)選擇。標準的內容作為推薦。由于HL7涉及非常廣泛,且在開(kāi)發(fā)過(guò)程中廣泛接納了最終用戶(hù)、開(kāi)發(fā)商、研究機構的各方面的意見(jiàn),從另一個(gè)方面也可以將HL7標準理解為醫學(xué)信息中的其他編碼標準的一個(gè)總綱性質(zhì)的索引。
ASTM
ASTM的全稱(chēng)是American Society for TesTIng and Materials,美國材料與試驗協(xié)會(huì )。它規定十幾個(gè)類(lèi)別,用途非常廣泛,包含以下門(mén)類(lèi):
1、鋼鐵產(chǎn)品
2、有色金屬產(chǎn)品
3、金屬試驗和分析方法。
4、建筑
5、石油與化工
6、染料和涂料
7、紡織
8、塑料
9、橡膠
10、電氣與電子工業(yè)
11、水和環(huán)保技術(shù)
12、核能、太陽(yáng)能與地熱能
13、醫療器械和服務(wù)
14、通用方法和儀器。
15、通用產(chǎn)品和專(zhuān)用化學(xué)品
醫療行業(yè)用的是第13類(lèi) ,比如
ASTM E1394 等等
目前現狀
傳統醫院系統都是使用PC作為儀器服務(wù)器來(lái)接入的,體積大,價(jià)格貴,功耗也大,而且很不靈活,不同的儀器要不同的接口程序,這些接口程序使用Powerbuilder,delphi,C#編寫(xiě),每次不同儀器參數和協(xié)議接口都需要重新編譯部署實(shí)施調試,成本高,工期長(cháng)。
用Dragonboard 410c的方案
有鑒于此,我們決定采用Dragonboard代替PC來(lái)實(shí)現各種儀器接入,使用nodejs開(kāi)發(fā),帶來(lái)的好處是明顯的,價(jià)格遠低于pc,而且靈活 不需要編譯,而且nodejs本身在www.npmjs.org上提供了海量的模塊庫,其中就包括HL7的解析庫,使用nodejs可以極大的降低開(kāi)發(fā)工作難度,動(dòng)態(tài)配置js腳本就可以對接相應的儀器,因此可以遠程配置調試儀器,節省昂貴的差旅費。
410c的外觀(guān)很小巧,用來(lái)代替龐大的pc ,會(huì )給醫院節省開(kāi)支,而且未來(lái) 410c可以集成到儀器里面,成為儀器的一部分。
開(kāi)始動(dòng)手
首先安裝
先下載img文件,這里我們選擇debian,大家可以直接去linaro的網(wǎng)站下載
dragonboard410c_sdcard_install_debian-36.zip這個(gè)文件,不過(guò)這個(gè)網(wǎng)站經(jīng)常斷線(xiàn),為了大家操作方便我就下載了并且共享了
http://pan.baidu.com/s/1migYRiC
把tf卡通過(guò)usb讀卡器插入電腦,推薦使用class 10 的tf卡,8G以上。
使用sdformatter 格式化卡
然后使用win32diskimager把鏡像燒錄到tf卡。
把tf卡插入板子,啟動(dòng) ,并把跳線(xiàn)位置設成如下模式
根據屏幕提示,選擇intall ,然后等待幾分鐘 系統就安裝好了,這時(shí)候去掉TF卡
(如果不去掉TF卡,下次啟動(dòng)還是從TF卡啟動(dòng),或者你可以設置跳線(xiàn),選擇從EMMC啟動(dòng),我為了圖省事就拔掉了TF卡)重新啟動(dòng)
顯示linaro登陸界面
密碼和用戶(hù)名都是linaro
為了以后操作方便,使用passwd建立root賬號
用root登陸,然后在操作指令 就不需要輸入煩人的sudo了
安裝nodejs
因為410c板子我已經(jīng)裝好了nodejs 我在另外一個(gè)板子上演示一下nodejs的安裝過(guò)程
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
如果發(fā)現沒(méi)有curl 可以用apt-get install curl 安裝
安裝完nodejs 運行node -v 就可以看到已經(jīng)裝好
安裝相應的模塊
因為我們做的醫療網(wǎng)關(guān)需要支持HL7和ASTM協(xié)議,因此需要安裝相應的模塊
node-serialport和hl7模塊
使用npm直接安裝 npm install node-serialport
npm install hl7 因為每種儀器只會(huì )選擇其中之一,因此我們裝在不同的工作目錄
測試串口和ASTM協(xié)議
本來(lái)打算直接連接我們的ASTM仿真器的,但是Dragonboard 410c的IO是1.8v的,我怕直接接上我們設備的3.3v TTL 會(huì )燒掉,所以決定使用USB口轉出來(lái)的串口解決這個(gè)問(wèn)題。
我們使用一個(gè)MICO開(kāi)發(fā)板作為串口輸入源,通過(guò)一個(gè)USB HUB接入410c主板。
在/dev/ 下可以看到一個(gè)設備ttyUSB1,編寫(xiě)一個(gè)測試程序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”);
});
說(shuō)明串口可以正常工作,實(shí)際接入我們的儀器通信程序也可以通信的
測試HL7
接下來(lái)我們測試HL7功能,在drgonboard 安裝hl7測試包
npm install simple-hl7
然后進(jìn)去到node_modules/simple-hl7/examples,可以看到有4個(gè)例子,我們運行tcp-server這個(gè)
node tcp-server.js
然后在pc上運行hl7模擬器
可以看到模擬器模擬發(fā)送的HL7 結果已經(jīng)被龍版上運行的hl7 server接受到
稍微修改這個(gè)hl7 程序,把hl7轉成json ,轉換功能都是這個(gè)hl7包里面提供的,就可以直接保存到rest界面的數據庫后端。
實(shí)際模擬
使用我們自己的儀器數據和模擬器 ,真實(shí)連接我們自己的模擬器,數據保存到couchdb
可以看到數據被完整的保存進(jìn)去了,使用nodejs 也可以方便的通過(guò)webhdfs等模塊把iot數據保存進(jìn)Hadoop 或者通過(guò)其他相關(guān)的模塊把心電監護數據保存到openTSDB或者infuxdb 等等,而這些代碼加起來(lái)也不過(guò)千行,而且可以運行在嵌入式ARM板如龍板上,這是傳統醫療軟件開(kāi)發(fā)手段如PB,C#,Java都很難做到的。
接下來(lái)我還會(huì )嘗試octoprint控制3d打印等項目,本次測試dragonboard還有一個(gè)很重要的事,是希望能拿到dragonboard配套的那個(gè)HDMI轉CSI的板子,很遺憾一直沒(méi)有機會(huì )測試這個(gè),這個(gè)可以用于超聲內鏡的采集,代替昂貴的采集工作站和笨重的采集卡。
接下來(lái)我還會(huì )嘗試octoprint控制3d打印等項目,本次測試dragonboard還有一個(gè)很重要的事,是希望能拿到dragonboard配套的那個(gè)HDMI轉CSI的板子,很遺憾一直沒(méi)有機會(huì )測試這個(gè),這個(gè)可以用于超聲內鏡的采集,代替昂貴的采集工作站和笨重的采集卡。
后記
這次測試準備的很不充分,1.8v的IO我沒(méi)有準備好,本來(lái)可以直接使用低速插座的UART接口來(lái)對接串口設備的,另外也可以使用Python開(kāi)發(fā),效果也很好,一樣可以在pc和arm板上移植,也可以支持串口也有HL7的庫。
評論