白世坤 邵立洋 楊磊
(1.中國電子科技集團公司第三十研究所,四川 成都 610041;2.電子科技大學醫學院,四川 成都 610054)
醫院科研工作是我國醫療行業發展中的重要組成內容,是進一步完善醫療救助、提高疾病治理成效,從而保障人民群眾身體健康的關鍵,也是推動醫院便民惠民服務的有力支撐[1]。科研數據(research data)是指數字形式的研究數據,包括在研究過程中產生的能存貯在計算機上的任何數據,也包括能轉換成數字形式的非數字形式數據[2]。科研數據的樣本量和準確性對科研結果有決定性作用,所以科研數據的收集與分析在科研過程中十分重要。在醫學科研過程的數據收集階段,科研人員(如醫護人員)經常需要手動記錄數據到紙質表格,后期再手動錄入電腦電子表格(如Excel表)。因為數據收集繁瑣、電子化程度低,容易漏錄、錯錄;在數據分析階段,又經常需要從紙質表單(如化驗單)或其他醫療系統收集關聯數據,錄入Excel表進行數據篩選以及各個維度的分析。因為數據的存儲與分析自動化程度低,為科研人員增加了巨大的數據分析工作負擔。
微信小程序是微信(一款用戶量達11億的國民級手機APP)的一個功能組件,它可以實現像手機APP一樣的優秀交互操作效果。但用戶無需安裝具體APP,只需要掃碼或搜索即可使用。用戶也無需關注APP的安裝和卸載,做到了隨時隨地可用,實現了“用之即來,用完即走”的理念[3]。
微服務是目前主流的分布式軟件架構技術。系統架構師可按照業務功能將龐大的信息系統劃分為具體的原子服務,每個服務足夠內聚、足夠小,代碼容易理解、開發效率高;服務之間可以獨立部署,并支持開發和部署持續集成;每個服務可以各自進行負載均衡擴展和數據庫擴展,而且每個服務可以根據自己的需要部署到合適的硬件服務器上;一個服務宕機并不會讓整個系統癱瘓[4]。
使用微信小程序作為人機交互客戶端,免安裝、方便快捷;使用微服務進行后臺服務端軟件架構和部署,可以提供分布式的、高容錯的、穩定可靠的后臺服務能力。
針對上述數據收集與分析過程中的痛點,可建立圖1所示的使用場景模型。

圖1 場景模型
根據數據準備、數據收集、數據分析三個階段,結合使用者的工作業務職能,可劃分三種用戶類型,即分別為系統管理員、超級用戶和普通用戶。
系統管理員一般為醫院或者科研院所信息技術中心的技術人員,負責系統的運行維護,在系統部署階段進行初始化數據的導入。初始化數據包括用戶基礎信息、科研數據模板和數據分析模板。用戶基礎信息,即用戶(科研人員)的姓名、編號、角色等基礎信息;科研數據模板,即科研數據分析使用的模板模型,如調查研究型、實驗研究型、新技術、新材料、新方法的開發應用等類型的模板;數據分析模板,即科研數據分析使用的分析模板,如指標走勢分析、元素統計分析、公式計算分析等模板。系統管理員還在科研的數據收集和分析階段進行系統的日常運行維護。
超級用戶一般為科研課題的組長,如課題負責人。在課題的準備階段,進行課題項目創建、數據模板的選擇、課題成員的添加以及樣本來源的基礎信息錄入等。在數據收集階段,也可以進行樣本來源的基本信息錄入,包含患者的姓名、床號、身體基本體征等以及實驗數據采集錄入。在數據分析階段進行數據分析模板的選擇,根據不同的模板進行數據分析。
普通用戶一般為課題成員,如醫護人員,在數據收集階段進行每日的數據采集錄入,在數據分析階段根據不同的分析模板進行數據分析。
(1)根據使用場景,系統有以下的基本功能需求。
①用戶管理:用戶的信息錄入,支持Excel表批量導入;用戶權限控制;用戶登陸鑒權等;
②科研數據模板管理:模板的創建、修改、刪除和導入等;
③數據分析模板管理:模板的創建、修改、刪除和導入等;
④課題流程管理:課題創建、階段控制、成員添加等;
⑤樣本源管理:支持小程序掃碼錄入、填寫錄入、批量錄入等;
⑥樣本數據錄入:支持小程序填寫錄入、同步測量儀器錄入等;
⑦數據分析管理:支持小程序選擇模板、開始分析、結果查看和下載等;
⑧審計日志管理:支持操作審計記錄;
⑨數據備份恢復:支持數據自動或手動備份和恢復。
(2)根據使用場景,系統有以下的基本性能需求。
①服務端:支持并發操作,支持動態擴容;
②客戶端:支持多用戶同時使用。
醫學科研數據收集與分析系統定位為科研數據收集和分析平臺。采用平臺化設計,可根據不同類型不同科研課題的使用需求進行動態擴展。平臺分為人機交互層、統一服務路由層、服務基礎平臺層、業務基礎平臺層和服務運行環境等(圖2)。

圖2 架構設計
人機交互層提供系統的操作入口和界面呈現。微信小程序按功能需求可劃分為三個功能模塊:設置配置模塊、數據收集模塊和數據分析模塊。
統一路由服務層對請求進行負載均衡以及過載熔斷控制等。
服務基礎平臺層進行微服務的注冊、治理監控、服務配置等基礎服務,為提高系統的穩定性和容錯性,可采用微服務集群模式搭建,即每個基礎服務部署1到n個服務到正式部署環境。服務注冊中心群包含服務的注冊與發現,服務治理監控群包含服務分布式追蹤、分布式日志、任務管理等,服務配置中心群包含服務配置、容錯配置和安全配置等。
業務基礎平臺提供具體的業務功能服務。按照上章節分析的業務需求,可劃分為用戶管理服務群、科研數據錄入服務群、科研數據分析服務群、科研模板管理服務群、分析模板管理服務群以及操作審計服務群等。
服務運行環境提供整體服務的運行環境,如操作系統、數據庫、網絡服務等。
整個系統架構采用服務端-客戶端模式。用戶通過人機交互層(微信小程序)操作界面發送數據請求到統一服務路由層,由路由層對請求進行負載均衡,并請求將具體某個微服務后的反饋結果數據返回人機交互層展示。整個系統架構根據業務請求量可動態擴展服務集群,來保證服務的穩定性。
單個服務可使用Spring Boot技術實現。Spring Boot是Java企業開發里最流行的框架,它為各種第三方框架的快速整合提供了自動配置,讓開發者只需要關注應用中業務邏輯功能的實現[5]。
單個服務使用三層架構設計,即數據庫層、服務層、業務控制層。數據庫層提供對數據庫增刪改查等數據原子操作服務;服務層實現具體的功能原子服務;業務控制層組合調用服務層從而實現具體的業務功能需求。采用分層設計,可降低系統的復雜度,使得復雜問題分層簡單化解決,也利于軟件代碼解耦,便于開發和功能擴展。
微信小程序使用模塊化設計,即小程序基礎功能模塊和業務功能模塊。基礎功能模塊可分為框架界面模塊、框架全局配置模塊、工具類模塊;業務功能模塊可分為用戶登陸模塊、模板管理模塊、數據采集模塊、數據分析模塊和備份恢復模塊等。

圖3 系統部署設計
醫學科研數據收集與分析系統服務端可部署在互聯網云服務中,如阿里云、騰訊云、華為云等主流云服務提供商。課題組客戶端無需安裝部署,使用智能手機中的微信APP掃碼使用即可。系統管理員可以使用微信小程序或者瀏覽器進行系統管理配置。
整套系統的部署基于公有云和互聯網,部署簡單便捷,系統隨時隨地可用。
本文針對臨床醫學科研實踐過程中數據收集繁瑣、電子化程度低以及數據的存儲與分析過程中自動化與智能化程度低等實際問題,對使用場景進行了軟件需求分析,利用微服務架構和小程序技術為醫學科研過程中數據收集與分析設計了IT軟件系統并提出了部署設計。本團隊將根據該架構設計框架,繼續深入挖掘科研數據收集與分析的模板模型,并通過IT技術,打造醫學科研數據收集與智能化分析平臺。