<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

          作者: 時(shí)間:2017-10-11 來源:網(wǎng)絡(luò) 收藏

          需求分析

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

          本文引用地址:http://www.ex-cimer.com/article/201710/365526.htm

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

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

          協(xié)議解釋

          HL7

          HL7標(biāo)準(zhǔn)是建立在ISO標(biāo)準(zhǔn)組織之制定的OSI模型的最高層的應(yīng)用標(biāo)準(zhǔn),如下圖所示:

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

          ASTM

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

          1、鋼鐵產(chǎn)品

          2、有色金屬產(chǎn)品

          3、金屬試驗(yàn)和分析方法。

          4、建筑

          5、石油與化工

          6、染料和涂料

          7、紡織

          8、塑料

          9、橡膠

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

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

          12、核能、太陽能與地?zé)崮?/p>

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

          14、通用方法和儀器。

          15、通用產(chǎn)品和專用化學(xué)品

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

          ASTM E1394 等等

          目前現(xiàn)狀

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

          用Dragonboard 410c的方案

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

          410c的外觀很小巧,用來代替龐大的pc ,會(huì)給醫(yī)院節(jié)省開支,而且未來 410c可以集成到儀器里面,成為儀器的一部分。

          開始動(dòng)手

          首先安裝

          先下載img文件,這里我們選擇debian,大家可以直接去linaro的網(wǎng)站下載

          dragonboard410c_sdcard_install_debian-36.zip這個(gè)文件,不過這個(gè)網(wǎng)站經(jīng)常斷線,為了大家操作方便我就下載了并且共享了

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

          把tf卡通過usb讀卡器插入電腦,推薦使用class 10 的tf卡,8G以上。

          使用sdformatter 格式化卡

          然后使用win32diskimager把鏡像燒錄到tf卡。

          把tf卡插入板子,啟動(dòng) ,并把跳線位置設(shè)成如下模式

          根據(jù)屏幕提示,選擇intall ,然后等待幾分鐘 系統(tǒng)就安裝好了,這時(shí)候去掉TF卡

          (如果不去掉TF卡,下次啟動(dòng)還是從TF卡啟動(dòng),或者你可以設(shè)置跳線,選擇從EMMC啟動(dòng),我為了圖省事就拔掉了TF卡)重新啟動(dòng)

          顯示linaro登陸界面

          密碼和用戶名都是linaro

          為了以后操作方便,使用passwd建立root賬號(hào)

          用root登陸,然后在操作指令 就不需要輸入煩人的sudo了

          安裝nodejs

          因?yàn)?10c板子我已經(jīng)裝好了nodejs 我在另外一個(gè)板子上演示一下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 運(yùn)行node -v 就可以看到已經(jīng)裝好

          安裝相應(yīng)的模塊

          因?yàn)槲覀冏龅尼t(yī)療網(wǎng)關(guān)需要支持HL7和ASTM協(xié)議,因此需要安裝相應(yīng)的模塊

          node-serialport和hl7模塊

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

          npm install hl7 因?yàn)槊糠N儀器只會(huì)選擇其中之一,因此我們裝在不同的工作目錄

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

          本來打算直接連接我們的ASTM仿真器的,但是Dragonboard 410c的IO是1.8v的,我怕直接接上我們?cè)O(shè)備的3.3v TTL 會(huì)燒掉,所以決定使用USB口轉(zhuǎn)出來的串口解決這個(gè)問題。

          我們使用一個(gè)MICO開發(fā)板作為串口輸入源,通過一個(gè)USB HUB接入410c主板。

          在/dev/ 下可以看到一個(gè)設(shè)備ttyUSB1,編寫一個(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”);

          });

          說明串口可以正常工作,實(shí)際接入我們的儀器通信程序也可以通信的

          測試HL7

          接下來我們測試HL7功能,在drgonboard 安裝hl7測試包

          npm install simple-hl7

          然后進(jìn)去到node_modules/simple-hl7/examples,可以看到有4個(gè)例子,我們運(yùn)行tcp-server這個(gè)

          node tcp-server.js

          然后在pc上運(yùn)行hl7模擬器

          可以看到模擬器模擬發(fā)送的HL7 結(jié)果已經(jīng)被龍版上運(yùn)行的hl7 server接受到

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

          實(shí)際模擬

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

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

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

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

          后記

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();