高笛煙 黃澤豪 陳志聰
(福州大學(xué) 福建省福州市 350108)
基于人口老齡化和慢性病患者基數(shù)逐年增長的社會(huì)現(xiàn)狀,需要長期服藥的人群數(shù)量不斷增長,并且隨著醫(yī)療質(zhì)量與醫(yī)療服務(wù)水平地快速發(fā)展,人們?cè)絹碓街匾暼粘5慕】禒顩r、身體數(shù)據(jù)等。因此人們對(duì)于日常用藥的記錄和體驗(yàn)也有了更多的需求,傳統(tǒng)藥盒的單一的功能和設(shè)計(jì)已經(jīng)難以滿足客戶的需求。針對(duì)此情況,研究一款針對(duì)慢性病患者的多功能智能藥盒將擁有極大的發(fā)展空間和生產(chǎn)前景。該項(xiàng)目基于嵌入式系統(tǒng),通過模塊化設(shè)計(jì)讓藥盒實(shí)現(xiàn)完備的功能,使藥盒不再是只簡單作為儲(chǔ)物工具,而是成為能夠幫助患者記錄日常身體數(shù)據(jù)、健康狀況和幫助醫(yī)患交流的智能工具。
本項(xiàng)目以搭建患者與醫(yī)生間的溝通平臺(tái)為基礎(chǔ),以減少雙方溝通交流為雙方提供便利為目的,以智能家居藥盒和微信小程序?yàn)檩d體,設(shè)計(jì)出一款面向慢性病患者的智能家居藥盒,目的是解決醫(yī)患交流互動(dòng)困難的問題。設(shè)計(jì)開發(fā)初期,我們對(duì)傳統(tǒng)的家用藥盒進(jìn)行了一系列的調(diào)研,發(fā)現(xiàn)傳統(tǒng)的普通藥盒會(huì)存在以下一些問題:
(1)藥盒結(jié)構(gòu)功能單一,只有基礎(chǔ)的存放藥物的作用;
(2)藥盒沒有提醒功能,對(duì)于一些忙綠的或者是老年病患,容易產(chǎn)生忘記定時(shí)服藥的問題;
(3)慢性病是一個(gè)需要長期服藥的療程,對(duì)于醫(yī)患之間的溝通十分重要,醫(yī)患之間缺乏穩(wěn)定方便的交流平臺(tái)來進(jìn)行定期反饋。
因此針對(duì)以上問題,結(jié)合對(duì)于用戶需求的分析,本項(xiàng)目的主要設(shè)計(jì)思路如下:
(1)收集調(diào)查慢性病患者的用藥習(xí)慣,經(jīng)過溝通交流后了解慢性病患者平日的實(shí)際問題和痛楚所在,對(duì)信息進(jìn)行整合和分析;
(2)制定功能模塊,選擇合適的設(shè)計(jì)語言并設(shè)計(jì)小程序;
(3)對(duì)硬件結(jié)構(gòu)進(jìn)行設(shè)計(jì)模型,實(shí)現(xiàn)軟硬件結(jié)合;
(4)對(duì)設(shè)計(jì)代碼進(jìn)行調(diào)試修改,進(jìn)行測(cè)試和運(yùn)行
該面向慢性病患者的智能家居藥盒目標(biāo)設(shè)計(jì)如下:本APP是基于微信小程序的服務(wù)型平臺(tái),服務(wù)對(duì)象為使用本產(chǎn)品智能家居藥盒的患者和醫(yī)生。利用本小程序收集整合歷史服藥數(shù)據(jù),建立自己獨(dú)有的近期服藥狀況數(shù)據(jù)庫,為醫(yī)生查看近期服藥情況及身體是否有異常提供數(shù)據(jù)支持?;跉v史服藥情況和身體數(shù)據(jù)提取藥物的影響因子,結(jié)合算法建立對(duì)接下來是否繼續(xù)服用該藥物和需要使用的量建議預(yù)測(cè)模型,對(duì)未來的身體狀況和服藥情況進(jìn)行判斷和預(yù)測(cè),以此幫助需要服藥的人群按時(shí)服藥,以及幫助人們更好及時(shí)的關(guān)注用戶的身體健康。
Solidworks軟件是一款基于Windows操作系統(tǒng)開發(fā)的三維設(shè)計(jì)軟件,具有較高的易學(xué)性、操作性和創(chuàng)新性等優(yōu)秀性能。利用其設(shè)計(jì)功能可實(shí)現(xiàn)繪制草圖、零件建模以及虛擬裝配等工作??蓪㈩A(yù)期的效果設(shè)計(jì)制成實(shí)物進(jìn)行功能驗(yàn)證便可獲得設(shè)計(jì)參數(shù),即可以利用Solidworks軟件的檢測(cè)功能對(duì)結(jié)構(gòu)設(shè)計(jì)與組裝進(jìn)行干涉檢查,能夠方便地顯示零部件的不同的位置,驗(yàn)證各結(jié)構(gòu)單體構(gòu)件組合在一起后能否發(fā)揮結(jié)構(gòu)整體的功能效益,使得用戶能在比較短的時(shí)間內(nèi)完成更多的工作。
主控制器決定選擇 STM32F103。該芯片內(nèi)置 ARM 型Cortex?-M3。內(nèi)核使用的是 32 位數(shù)據(jù)處理數(shù)據(jù),整合增強(qiáng)的技術(shù)和功能,瞄準(zhǔn)超低成本預(yù)算的應(yīng)用,低功耗的內(nèi)核使得在經(jīng)濟(jì)型用戶終端產(chǎn)品上實(shí)現(xiàn)先進(jìn)且復(fù)雜的功能。芯片的最高速度可達(dá)72MHz。芯片搭配了512K 的存儲(chǔ)空間保證程序的存儲(chǔ)。同樣帶有上電和掉電復(fù)位功能。為了保證系統(tǒng)的功耗,芯片內(nèi)部有三種模式,休眠,停止,待機(jī)模式。帶有兩個(gè)12位的轉(zhuǎn)換范圍為0-3.6V的數(shù)模轉(zhuǎn)化器,和兩個(gè)DMA控制器。能夠?qū)崿F(xiàn)串行單線調(diào)試(SWD)和JTAG接口。
系統(tǒng)的語音模塊部分由LD3320芯片完成,它是一個(gè)基于非特定語音識(shí)別技術(shù)的語音鑒別芯片。該芯片集成了語音識(shí)別處理器和一些外部電路,包括高精度的A/D,D/A轉(zhuǎn)化器,麥克風(fēng)接口,聲音輸出接口等等。因此,它可以實(shí)現(xiàn)不需要任何外接輔助芯片、Flash 或者 RAM,直接集成在現(xiàn)有產(chǎn)品中即可實(shí)現(xiàn)語音識(shí)別、人機(jī)對(duì)話等等功能。該LD3320語音識(shí)別芯片圖如圖1所示。
圖1:LD3320芯片圖
SpringBoot基于Spring4.0設(shè)計(jì),不僅繼承了Spring框架原有的優(yōu)秀特性,而且還通過簡化配置來進(jìn)一步簡化了Spring應(yīng)用的整個(gè)搭建和開發(fā)過程。另外SpringBoot通過集成大量的框架,內(nèi)嵌 Servlet、Tomcat、Jetty等,使得依賴包的版本沖突,以及引用的不穩(wěn)定性等問題得到了很好的解決。它可直接運(yùn)用 java-jar指令對(duì)項(xiàng)目打包為jar,同時(shí)進(jìn)行自動(dòng)依賴與版本控制,幫助開發(fā)者導(dǎo)入所用到的全部依賴,并自動(dòng)控制版本,文中所有的配置都由SpringBoot完成,提高了開發(fā)效率。
MySQL是開源數(shù)據(jù)庫管理系統(tǒng)。它是一個(gè)多用戶、多線程的數(shù)據(jù)庫管理系統(tǒng),主要是通過表和表之間,行和列之間的關(guān)系進(jìn)行數(shù)據(jù)的存儲(chǔ)。它具有事務(wù)安全性、按需可擴(kuò)展性、高可用性、高可靠性、快速啟動(dòng)功能等等優(yōu)點(diǎn)。在使用 MySQL來即時(shí)開發(fā)和啟動(dòng)應(yīng)用程序,大部分的工作由DBMS自動(dòng)完成,大大降低總體擁有成本的同時(shí)又提高了運(yùn)行的效率。
RocketMQ提供事務(wù)消息、定時(shí)消息、順序消息、同步請(qǐng)求等各種各樣的消息類型,可以 幫助開發(fā)者快速解決業(yè)務(wù)開發(fā)中遇到的各種問題。相比于其他的消息產(chǎn)品來說,一方面,RocketMQ沒有任何的外部依賴,它由兩部分組成:一部分是用于服務(wù)發(fā)現(xiàn)的NameServer,另一部分是用于消息、數(shù)據(jù)中轉(zhuǎn)、流轉(zhuǎn)和存儲(chǔ)的Broker??梢哉f,RocketMQ擁有極簡架構(gòu),因此,它對(duì)運(yùn)維成本的要求非常低。另一方面,RocketMQ在高可靠、高吞吐和低延遲方面具有明顯的優(yōu)勢(shì)。
該系統(tǒng)設(shè)計(jì)了三種角色:患者、監(jiān)護(hù)人、醫(yī)生和管理員。詳細(xì)用例圖內(nèi)容如圖2所示:
圖2:系統(tǒng)用例圖
患者可以進(jìn)行以下操作:登錄、注冊(cè)、查看用藥記錄、聯(lián)系醫(yī)生、查看健康咨詢和我的。
(1)如果沒有注冊(cè)則進(jìn)入注冊(cè)頁面,如果已有賬號(hào)則微信一鍵登錄。
(2)患者和監(jiān)護(hù)人一進(jìn)入登錄頁便可查看今日用藥情況:已服用、未服用(超時(shí)/未超時(shí))。當(dāng)?shù)接盟帟r(shí)間,會(huì)有鬧鐘提醒;若某種藥品超時(shí)還未服用,則會(huì)有鬧鈴提醒,并且將消息告知監(jiān)護(hù)端,讓監(jiān)護(hù)人提醒患者用藥。
(3)患者和監(jiān)護(hù)人可個(gè)性化添加藥品,可變動(dòng)性高,添加方便。
(4)患者可查看用藥記錄:健康記錄(記錄血壓、血糖、體重等各類身體狀況)和生成用藥反饋,讓醫(yī)生、監(jiān)護(hù)人查看數(shù)據(jù),也反饋給管理端,生成大數(shù)據(jù),以此改進(jìn)打造更人性化的產(chǎn)品。
(5)患者可以線上聯(lián)系開藥的醫(yī)生,詢問病情和查看醫(yī)囑,為醫(yī)生和患者的后續(xù)聯(lián)系搭建平臺(tái)。醫(yī)生可后續(xù)跟進(jìn)患者的相關(guān)情況,添加醫(yī)囑和用藥。
(6)可以查看相關(guān)的健康資訊,提升關(guān)于健康的小知識(shí)。
在參考了藥片生產(chǎn)的數(shù)據(jù),以直徑分別為:0.7cm、0.9cm、1.3cm,以及一個(gè)長為1.5cm,寬為0.8cm的膠囊槽作為藥盒裝口的尺寸。在藥槽下方加上能控制開合的擋板,利用簡易機(jī)械裝置的推出結(jié)構(gòu),在放藥槽下方側(cè)面開一個(gè)與藥品側(cè)面大小一致的洞,在后方用機(jī)械結(jié)構(gòu)從洞中推出最下方的藥品。藥盒最終設(shè)計(jì)圖和藥盒內(nèi)部構(gòu)造圖如圖3和圖4所示。
圖3:藥盒設(shè)計(jì)圖
圖4:藥盒內(nèi)部構(gòu)造圖
先預(yù)設(shè)指令,將LD3320模塊與STM32F103的串口4相連,初始化TIM4,設(shè)置初始定器時(shí)間為10MS,從接收到第一個(gè)字符開始啟動(dòng)定時(shí)器,當(dāng)收到一個(gè)新字符時(shí),計(jì)數(shù)器清空,直到定時(shí)器產(chǎn)生中斷,如若不在接受到新數(shù)據(jù),即為接收到一個(gè)完成的數(shù)據(jù)包。在中斷函數(shù)中,用變量USART_RX_STA進(jìn)行標(biāo)記數(shù)據(jù)是否接受完成,再用CJSON解析收到的串口數(shù)據(jù)并用舵機(jī)顯示動(dòng)作代表藥盒推出或者關(guān)上。
本項(xiàng)目微信小程序開發(fā)的主基調(diào)為簡單與舒適。所以將APP的主色調(diào)效果以綠色#17B68A和白色為主。綠色是健康的標(biāo)志,象征著生機(jī)與希望,與設(shè)計(jì)面向慢性病患者的智能家居藥盒的目標(biāo)理念相符。而文字主要以黑色和灰色#797979搭配,使其看起來既簡單而又舒適。
智能藥盒需要能夠?yàn)橛脩籼峁┫⑻崾荆瑫r(shí)讓用戶能夠?qū)崿F(xiàn)數(shù)據(jù)的輸入,這也是我們研究的重要部分。首先應(yīng)該實(shí)現(xiàn)用戶在按鍵模塊能夠進(jìn)行一些簡單設(shè)置和數(shù)據(jù)傳輸?shù)墓δ?,語音輸入功能的實(shí)現(xiàn)也將在這部分通過Microsoft、Speech和API實(shí)現(xiàn)。剩余更加具體詳細(xì)的數(shù)據(jù)傳輸和查詢和設(shè)置選項(xiàng)將通過軟件部分實(shí)現(xiàn)。同時(shí)藥盒也需要能夠接收多個(gè)設(shè)備的數(shù)據(jù)例如手表手環(huán)、電子體重秤、血壓儀等等。消息提示反饋也需要可以鏈接多個(gè)設(shè)備讓藥盒、手機(jī)、手環(huán)等都可以收到提示和反饋,使用戶隨時(shí)可以接收到消息,提示這部分將使用。
今日提醒模塊作為APP的首頁,其作用是顯示每日服藥的時(shí)間、藥品名和服藥數(shù)量,讓患者第一時(shí)間了解到今日的情況。如圖5(a)今日提醒模塊頁面所示,在首頁,APP主要界面向患者展示今日服藥情況,并且能在相應(yīng)的時(shí)間點(diǎn)顯示藥品名稱和數(shù)量,提醒用戶及時(shí)進(jìn)行服藥。患者可以一目了然地獲取今日的服藥情況,包括藥品名稱,服用的計(jì)量和時(shí)間,還有醫(yī)囑。點(diǎn)擊添加,患者還能夠自主新增所需要服用的新藥品名稱和計(jì)量等等信息,同時(shí)可以設(shè)置提醒鬧鐘時(shí)間,防止自己忘記服用。左上角的虛擬按鍵為返回首頁,點(diǎn)擊快速返回主頁面。藥品添加頁面如圖5(b)所示。
圖5:首頁
用藥記錄模塊主要記錄今日用藥情況是否完成,檢測(cè)體重、心率、體溫、血壓和睡眠質(zhì)量等等身體狀態(tài)。因?yàn)獒t(yī)生咨詢患者近期情況時(shí),有些患者會(huì)因?yàn)橛洃洸磺寤蛘弑硎霾幻鞯膯栴},不能很好地將自己的情況展現(xiàn)給醫(yī)生,造成了醫(yī)患溝通方面的障礙。為了避免這種情況的發(fā)生,本微信小程序可以直接記錄每天相關(guān)的身體信息,基于此些數(shù)值,生成近期的身體狀況曲線記錄圖。這能夠使得在定期會(huì)面醫(yī)生溝通近期病情和身體情況的時(shí)候,極大地提高了溝通交流的效率,使得醫(yī)生能夠?qū)Σ∏樽龀龈玫呐袛?。用藥記錄模塊頁面如圖6所示。
圖6:用藥記錄頁面
聯(lián)系醫(yī)生頁面如圖7所示,APP的聯(lián)系醫(yī)生是實(shí)現(xiàn)APP主要功能的最重要的界面之一。聯(lián)系醫(yī)生模塊的主要功能是可以提供醫(yī)患之間的一個(gè)交流平臺(tái)?;颊呖梢酝ㄟ^手機(jī)在微信小程序線上向醫(yī)生咨詢一些比較小的身體問題,醫(yī)生也能夠及時(shí)給出意見反饋和用藥建議。它可以根據(jù)患者的病情,選擇不同醫(yī)院的不同醫(yī)生進(jìn)行基于微信小程序平臺(tái)交流的線上溝通,讓患者可以更方便快捷的了解到自己的情況,與醫(yī)生進(jìn)行溝通反饋并即時(shí)調(diào)整用藥情況。它不僅能夠減少了路上通勤和醫(yī)院排隊(duì)等等過程時(shí)間,還使得醫(yī)患之間的交流變得更加方便快捷。
圖7:聯(lián)系醫(yī)生頁面
健康咨詢頁面如圖8所示,健康資訊模塊將會(huì)展示近期醫(yī)生發(fā)布的資訊。通過由醫(yī)生或平臺(tái)定期推送相關(guān)健康資訊,患者日常可以點(diǎn)擊查看推送資訊,瀏覽相關(guān)健康資訊,不僅可以增加患者對(duì)于健康知識(shí)的了解,在平時(shí)生活中也能夠多注意自己的身體狀態(tài),留意飲食和者運(yùn)動(dòng)相關(guān)方面的知識(shí),及時(shí)地發(fā)現(xiàn)自身是否有出現(xiàn)異常情況。這種提高患者自身對(duì)于相關(guān)的健康知識(shí)的了解的方式,從根本上降低患者生病的概率和風(fēng)險(xiǎn),提高身體素質(zhì)和免疫能力。
圖8:健康資訊頁面
設(shè)置模塊頁面如圖9所示,在設(shè)置模塊中,患者可以查看或修改設(shè)置、查看醫(yī)生的反饋、可以選擇監(jiān)護(hù)人、查看歷史健康報(bào)告、收藏重要文章等等操作。
圖9:設(shè)置頁面
面向慢性病患者的智能家居藥盒突破傳統(tǒng)對(duì)于藥盒的定義,意在打造更符合慢性病患者需求的智能家居藥盒。項(xiàng)目針對(duì)慢性病患者對(duì)于日常服藥過程中的一些問題,緊密結(jié)合患者對(duì)于藥盒功能的需求,通過設(shè)計(jì)微信小程序,實(shí)現(xiàn)醫(yī)患更密切方便的交流,通過藥盒來對(duì)患者進(jìn)行長期服藥習(xí)慣進(jìn)行有效干預(yù)和培養(yǎng)。在市場(chǎng)需求分析和調(diào)研后,小程序針對(duì)患者的平時(shí)服藥過程中的一些體驗(yàn),設(shè)計(jì)了對(duì)應(yīng)的功能模塊,不僅可以隨時(shí)查看每日的服藥提醒,更搭建了一個(gè)醫(yī)患之間日常交流溝通的平臺(tái)橋梁,實(shí)現(xiàn)患者與醫(yī)生之間的溝通便利。該系統(tǒng)將對(duì)日常身體情況的記錄曲線合成反饋算法優(yōu)化,形成更加準(zhǔn)確和合理的身體情況預(yù)測(cè),對(duì)于患者未來身體的康復(fù)起到關(guān)鍵的作用。