殷麗麗 王紹宇 易利容 舒文婷 陽國華
Abstract: Under the tide of Internet+, the public is increasingly concerned about popular science related to health care. In order to facilitate public access to science-related knowledge such as medical treatment and medical big data processing, the paper designs and implements a medical science App for the public in Shanghai's Songjiang District, combining the advantages of Internet + and mobile App.The system uses MVP as the framework model. The View layer uses the Material Design interface design language to provide a simple and beautiful operation interface. The data update and operation requests of this layer are implemented indirectly by referencing the Presenter object. Presenter prevents users from directly contacting the medical science database.The Model layer combines RxJava and Retrofit technologies to implement various asynchronous operations in the process of science data transmission, and to implement function modules such as page caching and message push services.The system test results show that the popular science APP performance is highly efficient and stable, meanwhile has good user experience and application promotion value.
引言
根據(jù)2016年中國網(wǎng)民科普需求搜索行為報(bào)告顯示,網(wǎng)民搜索熱詞排名前10位中,絕大多數(shù)的內(nèi)容都與醫(yī)學(xué)相關(guān)。可以看出,在互聯(lián)網(wǎng)+浪潮下,公眾已經(jīng)全面提升了對以健康和醫(yī)療為主題的科普內(nèi)容的關(guān)注與重視。因此,有必要充分利用互聯(lián)網(wǎng)在科普資源配置中的集成作用,抓住互聯(lián)網(wǎng)+大數(shù)據(jù)和以大數(shù)據(jù)分析為基礎(chǔ)的智慧醫(yī)療技術(shù)蓬勃發(fā)展的有利契機(jī),加大對各種疾病的認(rèn)知、處理和預(yù)防等科普知識(shí)的普及和傳播力度。
在智能移動(dòng)設(shè)備日趨常見的移動(dòng)互聯(lián)網(wǎng)時(shí)代,科普工作除了現(xiàn)有線下科普場館和傳統(tǒng)的科普讀物等手段外,用戶還可以利用手機(jī)App實(shí)現(xiàn)科普新聞推送、科普信息和科普視頻內(nèi)容展示等功能。通過科普知識(shí)的網(wǎng)絡(luò)化和手機(jī)移動(dòng)化,科普用戶能夠不再受到時(shí)間和空間的限制,從而使科普受眾收獲到最佳體驗(yàn)滿意度。因此創(chuàng)意借助現(xiàn)代互聯(lián)網(wǎng)的傳播和手機(jī)的可攜帶優(yōu)勢,研究構(gòu)建醫(yī)療大數(shù)據(jù)科普知識(shí)移動(dòng)傳播App即已尤顯其現(xiàn)實(shí)、必要和關(guān)鍵實(shí)用價(jià)值。系統(tǒng)采用目前較為流行MVP設(shè)計(jì)模型作為開發(fā)框架,融合RxJava異步傳輸技術(shù)和Retrofit網(wǎng)絡(luò)請求框架,實(shí)現(xiàn)了客戶端與服務(wù)器的通訊,使得用戶可以通過手機(jī)客戶端訪問和查詢調(diào)閱各種相關(guān)疾病的認(rèn)知、處理和預(yù)防等知識(shí),有效地?cái)U(kuò)大了醫(yī)療科普類知識(shí)的受眾范圍。
1醫(yī)療科普App總體功能設(shè)計(jì)
1.1開發(fā)工具及功能結(jié)構(gòu)設(shè)計(jì)
項(xiàng)目開發(fā)工具使用Android Studio 3.0,手機(jī)使用終端為Android 5.0及以上,開發(fā)過程中采用MVP設(shè)計(jì)模式,程序設(shè)計(jì)采用面向?qū)ο驤ava語言。本地?cái)?shù)據(jù)庫采用SQLite,連接遠(yuǎn)程服務(wù)器,通過JavaAPI來設(shè)計(jì)定制手機(jī)醫(yī)療科普數(shù)據(jù)的管理和加載,從而實(shí)現(xiàn)手機(jī)移動(dòng)端的智慧科普功能。App系統(tǒng)整體功能結(jié)構(gòu)則如圖1所示。由圖1可知,對系統(tǒng)功能進(jìn)行模塊分類,網(wǎng)絡(luò)通信和數(shù)據(jù)管理作為底層支持,給上層核心功能和用戶功能提供醫(yī)療大數(shù)據(jù)資源,用戶可通過UI界面隨意瀏覽閱讀等。
1.2醫(yī)療科普App功能模塊設(shè)計(jì)
項(xiàng)目平臺(tái)功能主要包括:
(1)登錄與注冊。提供安全驗(yàn)證,如短信驗(yàn)證及語音驗(yàn)證,保障用戶信息安全。
(2)大數(shù)據(jù)及智慧醫(yī)療知識(shí)科普模塊。用戶可以查閱包含醫(yī)療科普新聞、醫(yī)療大數(shù)據(jù)等內(nèi)容的文章、視頻和圖片,而且利用主流社交平臺(tái)進(jìn)行一鍵分享,如微信、微博等,可有效拓展科普知識(shí)覆蓋范圍。
(3)科普新聞信息智能推送服務(wù)。服務(wù)器系統(tǒng)通過分析用戶瀏覽記錄及檢索記錄進(jìn)行相關(guān)內(nèi)容推送。
(4)機(jī)器人互動(dòng)社交。用戶能夠以對話框形式與機(jī)器人助手互動(dòng)聊天,主要用于解答用戶發(fā)送的有關(guān)醫(yī)療大數(shù)據(jù)的科普知識(shí),可增加App的趣味性。
(5)個(gè)人信息中心。包括用戶基本信息、歷史瀏覽記錄、賬戶管理以及App個(gè)性化設(shè)置等。
2醫(yī)療科普App系統(tǒng)設(shè)計(jì)
2.1設(shè)計(jì)模型
醫(yī)療科普App平臺(tái)前端設(shè)計(jì)模式采用MVP架構(gòu),該設(shè)計(jì)模型如圖2所示,與MVC框架較為相似,圖2中視圖層面向用戶來設(shè)計(jì)交流界面,用于呈現(xiàn)醫(yī)療大數(shù)據(jù)內(nèi)容及用戶的操作界面??紤]到科普類數(shù)據(jù)必須兼具科學(xué)性和準(zhǔn)確性,因此代理層(Presenter)作為中間層將視圖和模型巧妙地分開[1],避免了視圖層和數(shù)據(jù)資源的直接交互,使得用戶無法直接操作數(shù)據(jù)庫資源,確保數(shù)據(jù)安全性,該層還將視圖層交付的命令進(jìn)行相關(guān)校驗(yàn),判斷用戶輸入是否合法,繼而選擇合適的代理人(Controller)通過調(diào)用數(shù)據(jù)層模型接口維護(hù)處理數(shù)據(jù)。模型層向上承接代理人命令、向下對接醫(yī)療大數(shù)據(jù)服務(wù)器,既可作為網(wǎng)絡(luò)層的技術(shù)基礎(chǔ),又負(fù)責(zé)解析、包裝服務(wù)器回調(diào)的科普數(shù)據(jù)和加載本地?cái)?shù)據(jù)信息。分析指出,MVP的分層結(jié)構(gòu)高度類似于網(wǎng)絡(luò)的7層協(xié)議,每層只知道自己依賴層的細(xì)節(jié)[2]。該種設(shè)計(jì)模式的突出優(yōu)勢便是業(yè)務(wù)邏輯簡明清晰,層與層之間的耦合性低,模塊復(fù)用性高,可維護(hù)性好,降低了測試的復(fù)雜度,并且UI設(shè)計(jì)擴(kuò)展性頗為出眾,可支持實(shí)現(xiàn)較為復(fù)雜的動(dòng)態(tài)效果,拓展了數(shù)據(jù)延展性,因而能向用戶展示更多的醫(yī)療大數(shù)據(jù)科普信息。
2.2文件結(jié)構(gòu)
系統(tǒng)按照界面功能主要可劃定為3個(gè)部分,對此要點(diǎn)分述如下。
(1)數(shù)據(jù)文件。其主體構(gòu)成就是本地或者遠(yuǎn)程數(shù)據(jù)。此外,還有數(shù)據(jù)緩存、數(shù)據(jù)模型、網(wǎng)絡(luò)接口包裝等。
(2)配置文件。包括系統(tǒng)常量、全局異常處理和App基本配置等。
(3)模塊文件。包含每個(gè)模塊的契約接口以及本模塊Activity、Fragment、Presenter設(shè)計(jì)類等,若功能復(fù)雜再根據(jù)功能繼續(xù)細(xì)分。
2.3開發(fā)框架
研究可知,MVP設(shè)計(jì)模式層與層之間耦合度低,因此可以針對每個(gè)層進(jìn)行有效的優(yōu)化,總體改善用戶滿意度。其中,視圖層面向用戶,會(huì)直接影響用戶對產(chǎn)品的喜愛程度,友好美觀的界面會(huì)帶來舒適的視覺享受,拉近人與機(jī)器的距離。作為醫(yī)療科普App,需要直接呈現(xiàn)關(guān)鍵數(shù)據(jù),UI設(shè)計(jì)應(yīng)該實(shí)現(xiàn)信息扁平化服務(wù)。因此科普App平臺(tái)使用C/S系統(tǒng)架構(gòu)模型,采用Native App開發(fā)模式[3],交互體驗(yàn)優(yōu)良,操作系統(tǒng)使用Android5.0及以上,高度兼合Material Design 頁面設(shè)計(jì)語言,界面簡潔規(guī)范、且統(tǒng)一,提高了用戶體驗(yàn)效果。
模型層作為基底向代理層開放設(shè)計(jì)接口,主要處理用戶的網(wǎng)絡(luò)通信請求及管理醫(yī)療大數(shù)據(jù)相關(guān)內(nèi)容。該層結(jié)合RxJava+Retrofit框架能大幅提升醫(yī)療大數(shù)據(jù)流動(dòng)效率及用戶響應(yīng)時(shí)間。Retrofit是一個(gè)基于Okhttp的RESTful的HTTP網(wǎng)絡(luò)請求框架,用于封裝用戶網(wǎng)絡(luò)請求接口,同時(shí)通過擴(kuò)展的觀察者模式來實(shí)現(xiàn)異步的RxJava結(jié)合,可以更高效解決醫(yī)療大數(shù)據(jù)視頻加載、網(wǎng)絡(luò)連接、圖片解析、App首頁緩存加載等問題,進(jìn)一步優(yōu)化系統(tǒng)性能。
3科普App系統(tǒng)實(shí)現(xiàn)
科普App平臺(tái)主要通過文本、圖片、視頻3種媒體形式展示醫(yī)療大數(shù)據(jù)信息,具體界面功能設(shè)計(jì)則如圖3所示。
由圖3可知,“首頁”與“視頻”是閱讀版塊,支持自動(dòng)刷新與手動(dòng)刷新。程序首次開啟進(jìn)程時(shí)會(huì)自動(dòng)刷新,客戶端與服務(wù)器選用了TPC長連接設(shè)計(jì),從而搭建了同步首頁科普數(shù)據(jù)的橋梁。為了填補(bǔ)用戶刷新導(dǎo)致的空白頁面,利用LruCache和DiskLruCache策略將首頁科普新聞列表儲(chǔ)存到本地?cái)?shù)據(jù)庫。LruCache和DiskLruCache分別基于內(nèi)存緩存和硬盤儲(chǔ)存,都采用Least Recently Used算法。LruCache使得用戶切換欄目時(shí),達(dá)到無縫瀏覽狀態(tài),而DiskLruCache則重點(diǎn)解決在無網(wǎng)絡(luò)情況下仍可以瀏覽離線科普數(shù)據(jù),使首頁離線閱讀設(shè)計(jì)具備良好的技術(shù)可行性。
完成本地加載后,服務(wù)器根據(jù)數(shù)據(jù)庫變化使用基于XML可擴(kuò)展語言的XMPP協(xié)議的百度推送技術(shù)向用戶發(fā)送通知,提示用戶更新科普數(shù)據(jù)。綜上即為消息推送服務(wù)的含義內(nèi)容。該服務(wù)具有通知推送和自動(dòng)推送2種方式,其單服務(wù)、單通道的特點(diǎn)能夠?yàn)榻K端節(jié)約資源。文章和視頻均可以啟用評論收藏功能,這就強(qiáng)勢助力了科普知識(shí)普及程度的提升。利用主流社交平臺(tái)進(jìn)行分享,使用shareSDK提供的集成接口可直接做到一鍵分享。
用戶還可以通過“我的”了解其它功能,如機(jī)器人互動(dòng)、科普新聞推送、App界面設(shè)置、賬號管理等,增進(jìn)個(gè)性化服務(wù)。
4結(jié)束語
論文利用高可拓展MVP模型作為框架設(shè)計(jì),并實(shí)現(xiàn)了面向手機(jī)用戶的醫(yī)療科普App。系統(tǒng)具有閱讀科普新聞、觀看視頻、一鍵分享、社交互動(dòng)、機(jī)器人助手、系統(tǒng)設(shè)置、歷史緩存等功能。測試結(jié)果表明該系統(tǒng)運(yùn)行穩(wěn)定、可靠,具有較好的擴(kuò)展性和實(shí)用性。
參考文獻(xiàn)
[1] 王念橋. 應(yīng)用MVP模式改進(jìn)軟件架構(gòu)[J]. 計(jì)算機(jī)時(shí)代,2012(4):37-38,40.
[2] 曾露. MVP模式在Android中的應(yīng)用研究[J]. 軟件,2016,37(6):75-78.
[3] 閆璐璐. 基于Android的防震減災(zāi)科普宣傳移動(dòng)APP設(shè)計(jì)與開發(fā)[D]. 成都:成都理工大學(xué),2015.
[4] 晏勇智. 基于HTTP長連接的服務(wù)器推送技術(shù)研究[D]. 長沙:湖南大學(xué),2010.
[5] 馬景祥,師文慶. 基于Android系統(tǒng)的遠(yuǎn)程多人監(jiān)控智能家居系統(tǒng)[J]. 機(jī)電工程技術(shù),2017,46(10):17-19,105.
[6] 張高禎,劉淵博,張賢坤. 基于Android的科普食道軟件[J]. 計(jì)算機(jī)與現(xiàn)代化,2017(2):113-116.
[7] 周興社,楊亞磊,楊剛. 信息-物理融合系統(tǒng)動(dòng)態(tài)行為模型構(gòu)建方法[J]. 計(jì)算機(jī)學(xué)報(bào),2014,37(6):1411-1423.
[8] 周興社,韓兆軒,王毅. 分布式計(jì)算機(jī)控制系統(tǒng)頂層設(shè)計(jì)方法論[J]. 微電子學(xué)與計(jì)算機(jī),1992(10):12-15.
[9] CORNELIU P V, MIHAILESCU M I,STANESCU O. Model view presenter design pattern[J]. Journal of Computer Science and Control Systems,2010,3(1):173.
[10]MAGLIE A. RxJava and Android[M]//Reactive Java Programming. Berkeley, CA: Apress, 2016: 95-105.