湯福南,劉亞文,汪纓
南京醫(yī)科大學(xué)第一附屬醫(yī)院江蘇省人民醫(yī)院 臨床醫(yī)學(xué)工程處,江蘇 南京 210029
試管嬰兒預(yù)約周期長、價(jià)格昂貴,在體外受精-胚胎移植技術(shù)(In Vitro Fertilization-Embryo Transfer,IVF-ET)獲得較為長足進(jìn)步的情況下,胚胎移植后的臨床妊娠率約為33%[1],成功率有限。因此,試管嬰兒培養(yǎng)流程里的每個(gè)環(huán)節(jié)都至關(guān)重要。作為生殖醫(yī)學(xué)界的共識(shí)——“胚胎培養(yǎng)室是生殖中心的‘心臟’”,卵子和胚胎將在胚胎培養(yǎng)室度過形成生命最初的重要的幾天[2]。而胚胎實(shí)驗(yàn)室內(nèi),CO2培養(yǎng)箱是用于進(jìn)行胚胎培養(yǎng)的關(guān)鍵醫(yī)療設(shè)備,其重要程度可想而知。
CO2培養(yǎng)箱的重要參數(shù)包括CO2濃度、O2濃度以及溫度等,當(dāng)以上參數(shù)出現(xiàn)與設(shè)定值有偏差時(shí),如CO2濃度過低或者溫度過高,培養(yǎng)箱就會(huì)發(fā)出聲音報(bào)警[3]。為保證高質(zhì)量的胚胎培養(yǎng),培養(yǎng)箱內(nèi)的實(shí)時(shí)狀態(tài)以及報(bào)警信息應(yīng)該更高效地傳遞到相關(guān)負(fù)責(zé)人。
傳統(tǒng)的CO2培養(yǎng)箱監(jiān)測方式依賴于設(shè)備自身的聲光報(bào)警,當(dāng)處于夜間或負(fù)責(zé)人員不在實(shí)驗(yàn)室現(xiàn)場則無法接收到報(bào)警信息和查看CO2培養(yǎng)箱內(nèi)部具體參數(shù),從而使得胚胎培養(yǎng)實(shí)驗(yàn)面臨失敗的風(fēng)險(xiǎn),容易造成患者重大損失。另外,在培養(yǎng)箱故障維修方面,根據(jù)趙安等[4]的研究,CO2培養(yǎng)箱的常見故障主要集中在氣體和溫度測控,這兩種故障在處理之后都需要進(jìn)行一段時(shí)間(如15 min)的觀察[5],避免重復(fù)進(jìn)行胚胎細(xì)胞轉(zhuǎn)移操作而造成的胚胎污染風(fēng)險(xiǎn),現(xiàn)有的監(jiān)測系統(tǒng)無法進(jìn)行CO2培養(yǎng)箱內(nèi)部參數(shù)的歷史數(shù)據(jù)追溯,需要人為地進(jìn)行重復(fù)觀測,這種方式效率較低。
基于上述情況,本文利用樹莓派結(jié)合物聯(lián)網(wǎng)技術(shù)專門用于醫(yī)院生殖中心實(shí)驗(yàn)室CO2培養(yǎng)箱的遠(yuǎn)程監(jiān)測,有助于CO2培養(yǎng)箱的預(yù)防性維護(hù)[6-7],降低實(shí)驗(yàn)室因設(shè)備故障、環(huán)境因素等造成的實(shí)驗(yàn)失敗的可能性,進(jìn)一步保障胚胎培養(yǎng)過程的安全穩(wěn)定。
本文設(shè)計(jì)的CO2培養(yǎng)箱監(jiān)測系統(tǒng)主要由主控制器、USB轉(zhuǎn)串口模塊和物聯(lián)網(wǎng)云平臺(tái)組成。本文所設(shè)計(jì)的系統(tǒng)中,樹莓派作為主控制器[8],通過串口發(fā)送請(qǐng)求指令[9],接收返回結(jié)果之后對(duì)其進(jìn)行數(shù)據(jù)分割、變量賦值和數(shù)據(jù)上傳等操作,最終可以將CO2濃度、O2濃度[10]、溫度以及報(bào)警代碼等通過WiFi上傳到物聯(lián)網(wǎng)——OneNET云平臺(tái)[11]。OneNET云平臺(tái)接收數(shù)據(jù),進(jìn)行實(shí)時(shí)數(shù)據(jù)顯示以及歷史數(shù)據(jù)波形繪制。系統(tǒng)總體框圖如1所示。
圖1 系統(tǒng)總體框圖
系統(tǒng)采用讀取培養(yǎng)箱設(shè)備串口的方式獲取數(shù)據(jù),其意義在于無需額外使用傳感器來獲取培養(yǎng)箱內(nèi)數(shù)據(jù),這種方式獲取的各種參數(shù)最為準(zhǔn)確;另一方面,通過USB轉(zhuǎn)串口模塊方便系統(tǒng)進(jìn)行擴(kuò)展,有利于同時(shí)多個(gè)CO2培養(yǎng)箱的數(shù)據(jù)監(jiān)測。
本系統(tǒng)設(shè)計(jì)采用樹莓派3B作為主控制器,樹莓派3B是一款基于ARM架構(gòu)的微型電腦主板,電源輸入為5 V/2 A,其外形只有信用卡片大小,尺寸為86 mm×56 mm×17 mm。樹莓派3B搭載1.2 GHz的64位四核處理器,內(nèi)存1 GB,采用Micro SD卡作為硬盤[12],操作系統(tǒng)映像文件版本為“2019-04-08-raspbian-stretch”。
本系統(tǒng)設(shè)計(jì)采用樹莓派3B作為主控制器的原因主要有:① 樹莓派3B板載BCM43438無線芯片集成了IEEE 802.11n無線網(wǎng)卡,可直接通過無線網(wǎng)連接OneNET云平臺(tái)進(jìn)行數(shù)據(jù)傳輸;② 樹莓派3B自帶4個(gè)USB 2.0接口,可通過USB轉(zhuǎn)串口線直接與培養(yǎng)箱設(shè)備進(jìn)行數(shù)據(jù)對(duì)接,方便快捷而且容易擴(kuò)展,見圖2。
圖2 樹莓派3B
本系統(tǒng)選用Z-TEK公司生產(chǎn)的USB轉(zhuǎn)RS232串口線,型號(hào)為ZE658,可實(shí)現(xiàn)樹莓派對(duì)CO2培養(yǎng)箱的數(shù)據(jù)采集監(jiān)測。內(nèi)部集成PL2303芯片,支持RS232協(xié)議,支持Win10、MacOS、Linux等多種操作系統(tǒng),波特率300-1 Mbps,數(shù)據(jù)位7/8,停止位1/2。
通常情況下,如果選用單片機(jī)作為主控制器,TXD、RXD使用的是TTL電平,需要轉(zhuǎn)換成TTL電平才能進(jìn)行通信,而且單片機(jī)自帶USB數(shù)量有限,擴(kuò)展能力相對(duì)較低[13],因此使用樹莓派結(jié)合USB轉(zhuǎn)串口模塊連接CO2培養(yǎng)箱的方式優(yōu)勢十分明顯。本文設(shè)計(jì)的監(jiān)測系統(tǒng)以日本ASTEC APM-30D型號(hào)CO2培養(yǎng)箱為例,實(shí)物如圖3所示,其背部自帶串口數(shù)據(jù)接口。
圖3 CO2培養(yǎng)箱實(shí)物圖
系統(tǒng)軟件設(shè)計(jì)由樹莓派軟件設(shè)計(jì)以及物聯(lián)網(wǎng)云平臺(tái)端軟件設(shè)計(jì)兩部分組成。其中樹莓派使用Python語言開發(fā)[14],控制串口向CO2培養(yǎng)箱發(fā)送數(shù)據(jù)請(qǐng)求指令,接收返回?cái)?shù)據(jù)之后進(jìn)行數(shù)據(jù)解析,最后將溫度、CO2濃度、O2濃度、報(bào)警代碼等關(guān)鍵數(shù)據(jù)上傳至OneNET云平臺(tái),樹莓派端軟件流程如圖4所示。使用Python語言開發(fā)是因?yàn)榭梢允褂帽姸喙δ軓?qiáng)大的開源函數(shù)庫,更為重要的是其程序可直接在樹莓派的操作系統(tǒng)上執(zhí)行。
圖4 軟件流程圖
OneNET云平臺(tái)端接收到主控制器發(fā)送的數(shù)據(jù),根據(jù)不同數(shù)據(jù)流接收對(duì)應(yīng)數(shù)據(jù)設(shè)置觸發(fā)器[15],判斷相關(guān)數(shù)值是否在正常范圍,當(dāng)達(dá)到觸發(fā)條件時(shí),OneNET云平臺(tái)將自動(dòng)發(fā)送報(bào)警提示信息到預(yù)先設(shè)置的電子郵箱中,實(shí)現(xiàn)郵件報(bào)警功能。
3.1.1 查看串口相關(guān)信息
(1)首先通過運(yùn)行指令 dmesg | grep ttyS* 查看樹莓派串口相關(guān)信息[16],見圖5,當(dāng)前有三個(gè)CO2培養(yǎng)箱設(shè)備通過USB轉(zhuǎn)串口線連接到樹莓派,分別對(duì)應(yīng)串口號(hào)ttyUSB0、ttyUSB1、ttyUSB2。本文以ttyUSB0為例,介紹其中一臺(tái)CO2培養(yǎng)箱監(jiān)測設(shè)計(jì)。
圖5 樹莓派查詢串口設(shè)備圖
(2)通過以下指令安裝圖形化串口調(diào)試工具cutecom:sudo apt-get install cutecom
安裝成功之后,通過指令sudo cutecom打開串口調(diào)試工具,選擇ttyUSB0,設(shè)置波特率,發(fā)送數(shù)據(jù)請(qǐng)求指令并等待返回?cái)?shù)據(jù),即可確認(rèn)樹莓派與CO2培養(yǎng)箱可以正常通訊。
(3)為了實(shí)現(xiàn)串口通訊和數(shù)據(jù)上傳到物聯(lián)網(wǎng)等功能,Python程序中需要通過import語句先導(dǎo)入serial模塊、urllib.request、requests、json等相關(guān)模塊;
打開串口,設(shè)置波特率語句:
serial = serial.Serial(‘/dev/ttyUSB0’,19200,timeout =3600)
串口配置完成之后,通過向培養(yǎng)箱發(fā)送特定指令就可以得到回傳數(shù)據(jù)。以ASTEC APM-30D型號(hào)的培養(yǎng)箱為例,發(fā)送ASCII字符串“reqd”,即可得到返回?cái)?shù)據(jù),發(fā)送指令以及等待返回?cái)?shù)據(jù)的代碼如下:
send_data = ‘reqd’
send_data = send_data + ‘ ’
serial.write(send_data.encode(“utf-8”))
data=serial.read(1)
sleep(0.1)
data = (data + serial.read(serial.inWaiting())).decode()
3.1.2 數(shù)據(jù)處理及上傳程序
CO2培養(yǎng)箱串口收到“reqd”指令后,會(huì)返回三行數(shù)據(jù),舉例如下:
“reqd
0,370,38,208,-56,0
> ”
其中“reqd”和“>”分別代表回傳數(shù)據(jù)的開始和結(jié)尾,屬于固定不變的部分;“370”代表當(dāng)前培養(yǎng)箱內(nèi)部溫度為37.0 ℃;”38”代表當(dāng)前培養(yǎng)箱內(nèi)部CO2濃度為3.8%;”208”代表當(dāng)前培養(yǎng)箱內(nèi)部O2濃度為20.8%;最后一位數(shù)值的“0”代表當(dāng)前報(bào)警代碼為0,即無報(bào)警。在Python程序中分別使用find()和r find()函數(shù)通過查找逗號(hào)“,”即可定位到關(guān)鍵參數(shù)在返回?cái)?shù)據(jù)中的具體位置,然后再使用split()函數(shù)把Temp、CO2、O2以及AlarmCode等變量自動(dòng)分離出來,從而實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)讀取和相應(yīng)變量的賦值操作。報(bào)警代碼表如表1所示。
表1 報(bào)警代碼
OneNET云平臺(tái)是中國移動(dòng)通信集團(tuán)在物聯(lián)網(wǎng)應(yīng)用和真實(shí)設(shè)備之間搭建的一個(gè)應(yīng)用平臺(tái)。該平臺(tái)不僅適配多種網(wǎng)絡(luò)環(huán)境和常見傳輸協(xié)議,提供各類設(shè)備快速接入方案和管理服務(wù),而且在應(yīng)用層提供豐富的API和數(shù)據(jù)分發(fā)能力,從而縮短物聯(lián)網(wǎng)系統(tǒng)的形成周期,方便開發(fā)者進(jìn)行數(shù)據(jù)傳輸和管理。
3.2.1 設(shè)備接入
在正式使用OneNET云平臺(tái)物聯(lián)網(wǎng)服務(wù)之前,需要進(jìn)行賬戶注冊(cè)登陸等操作;然后在其基礎(chǔ)服務(wù)中選擇多協(xié)議接入,進(jìn)行創(chuàng)建產(chǎn)品、創(chuàng)建設(shè)備、生成數(shù)據(jù)流等操作[17];最后通過生成相應(yīng)的應(yīng)用,單個(gè)應(yīng)用下可以創(chuàng)建多個(gè)數(shù)據(jù)流,分別對(duì)應(yīng)CO2培養(yǎng)箱的CO2濃度、O2濃度、溫度以及報(bào)警代碼等參數(shù)。
3.2.2 傳輸協(xié)議
OneNET平臺(tái)支持包括HTTP、Modbus、EDP、TCP透傳、MQTT[18-19]等協(xié)議場景下的設(shè)備快速上云,本文設(shè)計(jì)的系統(tǒng)采用HTTP協(xié)議。本系統(tǒng)首先在OneNET平臺(tái)上創(chuàng)建產(chǎn)品時(shí)設(shè)備接入?yún)f(xié)議選擇HTTP協(xié)議,記錄下云平臺(tái)分配的產(chǎn)品ID、設(shè)備ID以及安全鑒權(quán)密鑰APIKey。樹莓派端通過在Python程序中利用APIurl和APIKey即可將獲取到的CO2培養(yǎng)箱CO2濃度等數(shù)據(jù)上傳到云平臺(tái)。
3.2.3 應(yīng)用編輯
通過OneNET應(yīng)用編輯器,開發(fā)者可以在云平臺(tái)端實(shí)現(xiàn)設(shè)備數(shù)據(jù)流的可視化:在應(yīng)用編輯頁面,可以通過組件庫進(jìn)行可視化元素的添加與刪除,可視化元素包括基礎(chǔ)元素與控制元素。本文設(shè)計(jì)的系統(tǒng)主要使用了基礎(chǔ)元素中的文本、折線圖以及儀表盤等控件,即可對(duì)CO2濃度、O2濃度、溫度以及報(bào)警代碼等數(shù)據(jù)流進(jìn)行圖形化展示,展示內(nèi)容包括當(dāng)前數(shù)據(jù)、歷史數(shù)據(jù)波形和數(shù)據(jù)最近更新時(shí)間,實(shí)際運(yùn)行效果如圖6所示。
圖6 物聯(lián)網(wǎng)云平臺(tái)數(shù)據(jù)顯示
使用本文設(shè)計(jì)的監(jiān)測系統(tǒng)之前,胚胎實(shí)驗(yàn)室的負(fù)責(zé)人員想要了解CO2培養(yǎng)箱是否處于正常運(yùn)行狀態(tài)通常只能通過以下兩種方式:① 親自到現(xiàn)場逐一查看CO2培養(yǎng)箱的面板,檢查是否存在Led燈閃爍報(bào)警和蜂鳴器報(bào)警;② 電話敦促實(shí)驗(yàn)室工作人員執(zhí)行以上操作。
針對(duì)傳統(tǒng)方法的不足,本文基于樹莓派和物聯(lián)網(wǎng)技術(shù)設(shè)計(jì)了CO2培養(yǎng)箱監(jiān)測系統(tǒng),本系統(tǒng)具有以下優(yōu)點(diǎn):① 可以讓相關(guān)負(fù)責(zé)人員隨時(shí)隨地從OneNET云平臺(tái)端登錄進(jìn)行遠(yuǎn)程查閱當(dāng)前數(shù)據(jù)信息,并且在云平臺(tái)端設(shè)置數(shù)據(jù)刷新頻率最快為3次/s,極大提高了當(dāng)前數(shù)據(jù)監(jiān)測的實(shí)時(shí)性;② 在進(jìn)行歷史數(shù)據(jù)追溯時(shí),每次查詢請(qǐng)求可以返回6000個(gè)數(shù)據(jù)點(diǎn)[20],相當(dāng)于最近5 h的數(shù)據(jù)長度;在此基礎(chǔ)之上,可以向前查閱30 d以內(nèi)的歷史數(shù)據(jù),這樣的追溯長度已經(jīng)可以完全涵蓋胚胎體外培養(yǎng)整個(gè)周期;③ 報(bào)警信息傳達(dá)的及時(shí)性。OneNET云平臺(tái)的觸發(fā)器功能,可以設(shè)置報(bào)警范圍以及數(shù)據(jù)異常實(shí)時(shí)觸發(fā)[21],即使在胚胎實(shí)驗(yàn)室無人值守時(shí)仍然能夠第一時(shí)間發(fā)現(xiàn)培養(yǎng)箱異常并報(bào)警。
因此,相比之下本系統(tǒng)在遠(yuǎn)程監(jiān)測的實(shí)時(shí)性、歷史數(shù)據(jù)追溯時(shí)間長度、報(bào)警信息及時(shí)性等方面要明顯優(yōu)于傳統(tǒng)方法,見表2。
表2 效果對(duì)比
CO2培養(yǎng)箱的監(jiān)測對(duì)胚胎質(zhì)量具有重要意義,等級(jí)越高、質(zhì)量越好的胚胎移植后其妊娠率越高[22]。本文設(shè)計(jì)的系統(tǒng)是基于樹莓派和物聯(lián)網(wǎng)平臺(tái)的遠(yuǎn)程監(jiān)測系統(tǒng),其創(chuàng)新性在于:① 使用物聯(lián)網(wǎng)技術(shù)將生殖中心實(shí)驗(yàn)室的CO2培養(yǎng)箱設(shè)備接入物聯(lián)網(wǎng)云端,可通過網(wǎng)絡(luò)遠(yuǎn)程隨時(shí)查看各種關(guān)鍵參數(shù)信息和遠(yuǎn)程接收?qǐng)?bào)警信息;而以往的研究主要是將培養(yǎng)箱報(bào)警接口進(jìn)行改造設(shè)計(jì),使得報(bào)警信息延長到相關(guān)負(fù)責(zé)人手中,不能做到真正意義上的遠(yuǎn)程監(jiān)測;② 在硬件設(shè)計(jì)方面,使用樹莓派微型電腦作為主控制器,其強(qiáng)大的處理能力和USB接口擴(kuò)展能力能夠?qū)崿F(xiàn)一對(duì)多的CO2培養(yǎng)箱檢測系統(tǒng);而以往的研究思路是每一臺(tái)CO2培養(yǎng)箱配備一個(gè)單片機(jī)對(duì)其分別進(jìn)行讀取控制,然后再進(jìn)行數(shù)據(jù)的處理,比較分散不方便管理。
樹莓派可以通過WiFi直接連入物聯(lián)網(wǎng)平臺(tái),獲取CO2培養(yǎng)箱的各項(xiàng)關(guān)鍵參數(shù)以及報(bào)警代碼之后即可上傳,相關(guān)負(fù)責(zé)人可以在物聯(lián)網(wǎng)平臺(tái)查看當(dāng)前及歷史數(shù)據(jù),實(shí)現(xiàn)真正的CO2培養(yǎng)箱遠(yuǎn)程監(jiān)測;不僅如此,對(duì)于擁有多臺(tái)CO2培養(yǎng)箱的生殖中心實(shí)驗(yàn)室來說,能夠以本系統(tǒng)為樣本,通過工業(yè)級(jí)的USB HUB對(duì)樹莓派USB口進(jìn)行擴(kuò)展,在物聯(lián)網(wǎng)平臺(tái)實(shí)現(xiàn)多臺(tái)CO2培養(yǎng)箱的關(guān)鍵參數(shù)以及報(bào)警信息的同時(shí)監(jiān)測,相對(duì)于傳統(tǒng)的聲光報(bào)警方式能夠很大程度上減少人力物力的投入。
我院生殖中心實(shí)驗(yàn)室有45臺(tái)CO2培養(yǎng)箱,本系統(tǒng)在我院生殖中心實(shí)驗(yàn)室已初步調(diào)試成功并計(jì)劃投入使用。對(duì)于醫(yī)院的臨床工程師來說,醫(yī)療設(shè)備的內(nèi)部傳感器一般都經(jīng)過定期校準(zhǔn)或計(jì)量,其重要參數(shù)監(jiān)測改進(jìn)設(shè)計(jì)應(yīng)盡可能利用設(shè)備本身傳感器的信息,既能夠高效準(zhǔn)確地獲取數(shù)據(jù),又可以降低系統(tǒng)設(shè)計(jì)成本。