新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 啟用Dragonboard 410c開發(fā)醫(yī)療業(yè)物聯(lián)網

        啟用Dragonboard 410c開發(fā)醫(yī)療業(yè)物聯(lián)網

        作者: 時間:2017-10-11 來源:網絡 收藏

        需求分析

        隨著社會事業(yè)的發(fā)展,醫(yī)療行業(yè)對各種儀器的需求越來越大,如生化儀,心電監(jiān)護儀,呼吸機等等,這些設備目前使用兩種通信方式和lis/pacs/中心監(jiān)護系統(tǒng)接口

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

        - 大多數(shù)采用串口作為數(shù)據(jù)接口,使用ASTM作為通信協(xié)議

        - 使用以太網網絡接口,以HL7作為通信協(xié)議

        協(xié)議解釋

        HL7

        HL7標準是建立在ISO標準組織之制定的OSI模型的最高層的應用標準,如下圖所示:

        HL7標準包含256個事件、116個消息類型,139個段,55種數(shù)據(jù)類型,408個數(shù)據(jù)字典,涉及79種編碼系統(tǒng)。但在應用HL7標準時,并不一定需要涉及標準全部內容,可以選擇自己需要應用的相關事件、消息類型和段就可以了。而在數(shù)據(jù)字典和編碼系統(tǒng)方面HL7標準并沒有進行強制的規(guī)定,可以允許用戶選擇。標準的內容作為推薦。由于HL7涉及非常廣泛,且在開發(fā)過程中廣泛接納了最終用戶、開發(fā)商、研究機構的各方面的意見,從另一個方面也可以將HL7標準理解為醫(yī)學信息中的其他編碼標準的一個總綱性質的索引。

        ASTM

        ASTM的全稱是American Society for TesTIng and Materials,美國材料與試驗協(xié)會。它規(guī)定十幾個類別,用途非常廣泛,包含以下門類:

        1、鋼鐵產品

        2、有色金屬產品

        3、金屬試驗和分析方法。

        4、建筑

        5、石油與化工

        6、染料和涂料

        7、紡織

        8、塑料

        9、橡膠

        10、電氣與電子工業(yè)

        11、水和環(huán)保技術

        12、核能、太陽能與地熱能

        13、醫(yī)療器械和服務

        14、通用方法和儀器。

        15、通用產品和專用化學品

        醫(yī)療行業(yè)用的是第13類 ,比如

        ASTM E1394 等等

        目前現(xiàn)狀

        傳統(tǒng)醫(yī)院系統(tǒng)都是使用PC作為儀器服務器來接入的,體積大,價格貴,功耗也大,而且很不靈活,不同的儀器要不同的接口程序,這些接口程序使用Powerbuilder,delphi,C#編寫,每次不同儀器參數(shù)和協(xié)議接口都需要重新編譯部署實施調試,成本高,工期長。

        用Dragonboard 410c的方案

        有鑒于此,我們決定采用Dragonboard代替PC來實現(xiàn)各種儀器接入,使用nodejs開發(fā),帶來的好處是明顯的,價格遠低于pc,而且靈活 不需要編譯,而且nodejs本身在www.npmjs.org上提供了海量的模塊庫,其中就包括HL7的解析庫,使用nodejs可以極大的降低開發(fā)工作難度,動態(tài)配置js腳本就可以對接相應的儀器,因此可以遠程配置調試儀器,節(jié)省昂貴的差旅費。

        410c的外觀很小巧,用來代替龐大的pc ,會給醫(yī)院節(jié)省開支,而且未來 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卡插入板子,啟動 ,并把跳線位置設成如下模式

        根據(jù)屏幕提示,選擇intall ,然后等待幾分鐘 系統(tǒng)就安裝好了,這時候去掉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

        如果發(fā)現(xiàn)沒有curl 可以用apt-get install curl 安裝

        安裝完nodejs 運行node -v 就可以看到已經裝好

        安裝相應的模塊

        因為我們做的醫(yī)療網關需要支持HL7和ASTM協(xié)議,因此需要安裝相應的模塊

        node-serialport和hl7模塊

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

        npm install hl7 因為每種儀器只會選擇其中之一,因此我們裝在不同的工作目錄

        測試串口和ASTM協(xié)議

        本來打算直接連接我們的ASTM仿真器的,但是Dragonboard 410c的IO是1.8v的,我怕直接接上我們設備的3.3v TTL 會燒掉,所以決定使用USB口轉出來的串口解決這個問題。

        我們使用一個MICO開發(fā)板作為串口輸入源,通過一個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模擬器

        可以看到模擬器模擬發(fā)送的HL7 結果已經被龍版上運行的hl7 server接受到

        稍微修改這個hl7 程序,把hl7轉成json ,轉換功能都是這個hl7包里面提供的,就可以直接保存到rest界面的數(shù)據(jù)庫后端。

        實際模擬

        使用我們自己的儀器數(shù)據(jù)和模擬器 ,真實連接我們自己的模擬器,數(shù)據(jù)保存到couchdb

        可以看到數(shù)據(jù)被完整的保存進去了,使用nodejs 也可以方便的通過webhdfs等模塊把iot數(shù)據(jù)保存進Hadoop 或者通過其他相關的模塊把心電監(jiān)護數(shù)據(jù)保存到openTSDB或者infuxdb 等等,而這些代碼加起來也不過千行,而且可以運行在嵌入式ARM板如龍板上,這是傳統(tǒng)醫(yī)療軟件開發(fā)手段如PB,C#,Java都很難做到的。

        接下來我還會嘗試octoprint控制3d打印等項目,本次測試dragonboard還有一個很重要的事,是希望能拿到dragonboard配套的那個HDMI轉CSI的板子,很遺憾一直沒有機會測試這個,這個可以用于超聲內鏡的采集,代替昂貴的采集工作站和笨重的采集卡。

        接下來我還會嘗試octoprint控制3d打印等項目,本次測試dragonboard還有一個很重要的事,是希望能拿到dragonboard配套的那個HDMI轉CSI的板子,很遺憾一直沒有機會測試這個,這個可以用于超聲內鏡的采集,代替昂貴的采集工作站和笨重的采集卡。

        后記

        這次測試準備的很不充分,1.8v的IO我沒有準備好,本來可以直接使用低速插座的UART接口來對接串口設備的,另外也可以使用Python開發(fā),效果也很好,一樣可以在pc和arm板上移植,也可以支持串口也有HL7的庫。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 沾化县| 洛宁县| 台前县| 保德县| 永年县| 岚皋县| 常州市| 始兴县| 昭觉县| 山阴县| 郴州市| 永靖县| 临西县| 阜阳市| 汝城县| 衡东县| 宿州市| 永修县| 定陶县| 五寨县| 江城| 宣汉县| 新乡县| 邯郸县| 安顺市| 黄冈市| 澎湖县| 双流县| 徐汇区| 仁怀市| 大同市| 渝中区| 克山县| 白河县| 阳高县| 大连市| 东明县| 阳朔县| 鲁甸县| 瓮安县| 宁陕县|