謝曉玲,梁 寧
(廣東藥科大學 醫(yī)藥信息工程學院,廣東 廣州 510006)
對兒童的成長信息進行科學管理,有利于追蹤兒童的成長軌跡,實現(xiàn)兒童生理和心理健康的實時監(jiān)控,及時發(fā)現(xiàn)兒童成長過程中存在的問題并加以解決[1]。
隨著計算機技術和信息管理技術的發(fā)展,兒童成長管理系統(tǒng)發(fā)展迅速,提出了各種類型的兒童成長管理系統(tǒng)。如基于互聯(lián)網(wǎng)+的兒童健康管理平臺[2]、基于Android的兒童成長發(fā)育管理系統(tǒng)[3]、56Baby成長記錄系統(tǒng)[4]、兒童青少年成長發(fā)育評價與管理系統(tǒng)[5]和基于iOS的兒童成長參數(shù)管理系統(tǒng)[6]等。
針對兒童成長管理系統(tǒng)的需求和發(fā)展趨勢,該文設計了一種基于SSH的兒童成長管理系統(tǒng)。該系統(tǒng)基于SSH(Struts+Spring+ Hibernate)集成框架開發(fā),具有結構清晰、便于擴展和維護等優(yōu)點。系統(tǒng)采用B/S架構,具有注冊模塊、登錄模塊、成長指標模塊、記事本記錄模塊、照片記錄模塊、視頻記錄模塊、病歷模塊、疫苗接種模塊、健康知識模塊、兒童管理模塊、個人信息模塊和系統(tǒng)介紹模塊共12個功能模塊。用戶可通過瀏覽器遠程連接兒童成長管理系統(tǒng)進行兒童成長管理的各種操作。
根據(jù)兒童成長管理系統(tǒng)的使用方式,確定系統(tǒng)的架構,如圖1所示。

圖1 系統(tǒng)架構
系統(tǒng)采用B/S架構,由數(shù)據(jù)庫服務器、Web服務器和客戶端三部分組成[7]。數(shù)據(jù)庫服務器安裝數(shù)據(jù)庫管理系統(tǒng),在其中建立和維護兒童成長管理系統(tǒng)數(shù)據(jù)庫,提供數(shù)據(jù)服務。而在Web服務器中部署兒童成長管理系統(tǒng)程序,提供各種功能服務。客戶端通過瀏覽器遠程連接兒童成長管理系統(tǒng)程序進行兒童成長管理的各種操作。
經(jīng)分析和調(diào)研,確定兒童成長管理系統(tǒng)具有的功能模塊,如圖2所示[8]。整個系統(tǒng)包含注冊模塊、登錄模塊、成長指標模塊、記事本記錄模塊、照片記錄模塊、視頻記錄模塊、病歷模塊、疫苗接種模塊、健康知識模塊、兒童管理模塊、個人信息模塊和系統(tǒng)介紹模塊共12個功能模塊。

圖2 系統(tǒng)功能模塊
表1為各功能模塊的說明。

表1 系統(tǒng)功能模塊說明

續(xù)表1
根據(jù)系統(tǒng)架構,采用Java Web方式開發(fā)系統(tǒng)[9]。數(shù)據(jù)庫管理系統(tǒng)使用MySQL 8.0。MySQL是一種廣泛流行的免費開源關系型數(shù)據(jù)庫管理系統(tǒng)。系統(tǒng)程序使用MyEclipse 10開發(fā),采用開發(fā)框架SSH。MyEclipse是主要用于Java開發(fā)的企業(yè)級集成開發(fā)環(huán)境。SSH是Struts+Spring+Hibernate的一個集成框架[10]。Struts的MVC(Model+View+Controller)設計模式使程序結構變得清晰,模型(Model)是作為數(shù)據(jù)庫表的映射,控制器(Controller)是視圖與模型之間交互的橋梁,視圖(View)則負責客戶端的顯示。Spring是一個輕量級控制反轉(zhuǎn)(inversion of control,IoC)和面向切面(aspect oriented programming,AOP)的容器框架,其有效組織了中間層對象。Hibernate是一個開源的對象關系映射框架,它將簡單Java對象(plain ordinary java object,POJO)與數(shù)據(jù)庫表建立映射關系,可以自動生成SQL語句,自動執(zhí)行,簡化了數(shù)據(jù)庫操作。
根據(jù)設計的兒童成長管理系統(tǒng)功能,在系統(tǒng)數(shù)據(jù)庫中設計用戶表、成長記錄表、記事表、照片表、視頻表、疫苗信息表、疫苗提醒表、疫苗狀態(tài)表、病歷表、常見病知識表和急救知識表共12個表。各表的字段組成如表2所示。

表2 系統(tǒng)數(shù)據(jù)庫設計

續(xù)表2
其中:
(1)用戶表用于存儲用戶的詳細信息,用戶一般為兒童監(jiān)護人,以賬號為主鍵;
(2)兒童信息表用于存儲兒童的基本信息,以編號為主鍵,以賬號為外鍵,關聯(lián)主表用戶表,賬號表示某個兒童屬于哪個用戶管理;
(3)成長指標表用于存儲兒童的成長指標數(shù)據(jù),以編號為主鍵,以兒童編號為外鍵,關聯(lián)主表兒童信息表,兒童編號表示某條成長記錄屬于哪個兒童;
(4)記事表、照片表、視頻表和病歷表分別用于存儲兒童的日常事件、照片、視頻和病歷,它們的設計與成長記錄表類似;
(5)疫苗信息表用于存儲疫苗信息,以編號為主鍵;疫苗提醒表用于存儲疫苗提醒信息,以編號為主鍵,以疫苗編號為外鍵,關聯(lián)主表疫苗信息表;疫苗狀態(tài)表用于存儲兒童疫苗注射情況,其設計與疫苗提醒表類似;
(6)常見病表用于存儲兒童常見病知識,以編號為主鍵,以賬號為外鍵,關聯(lián)主表用戶表,賬號表示某個常見病知識記錄屬于哪個用戶添加;急救知識表用于存儲急救知識,其設計與常見病表類似。
系統(tǒng)程序采用SSH集成框架開發(fā)。在設計時,需要配置web.xml、struts.xml和applicationContext.xml三個文件[11]。其中:
(1)web.xml為項目配置文件,添加的配置內(nèi)容主要為:Spring核心監(jiān)聽器、Struts過濾器以及防亂碼過濾器;
(2)struts.xml為Struts配置文件,添加的配置內(nèi)容主要為:各種功能的用戶請求和Action之間的對應關系;
(3)applicationContext.xml為Spring配置文件,添加的配置內(nèi)容主要為:數(shù)據(jù)源、sessionFactory、hibernateTemplate、service等。
系統(tǒng)程序采用DAO訪問數(shù)據(jù)庫。方法是設計數(shù)據(jù)庫操作類,將數(shù)據(jù)庫的各個表映射成對象,封裝數(shù)據(jù)的增刪查改操作。在Spring配置文件中,對DAO注入sessionFactory,DAO負責與數(shù)據(jù)庫操作類的對象交互。
在系統(tǒng)中,共設計了user、child、growthrecord、notepad、photo、video、medicalrecord、vaccine、vaccineremind、vaccinestate、commonill、firstaid共12個類,分別對應數(shù)據(jù)表用戶表、兒童信息表、成長指標表、記事表、照片表、視頻表、病歷表、疫苗信息表、疫苗提醒表、疫苗狀態(tài)表、常見病表和急救知識表。
圖3為成長記錄表操作類growthrecord,其對應成長記錄表的字段編號、身高、體重、測量時間、上傳時間、備注、賬號分別設計了屬性recordID、height、weight、measureTime、reUptime、recordRemarks、userNum,并設計了該表的操作方法查看記錄列表()、添加記錄列表()、刪除記錄列表()和修改記錄列表()。

圖3 成長記錄表操作類
3.3.1 成長指標模塊設計
成長指標模塊主要完成兒童成長指標值記錄和身高體重曲線展示兩個功能。該功能操作的數(shù)據(jù)表主要為成長記錄表。

圖4 身高體重曲線繪制實現(xiàn)流程
兒童成長指標值記錄功能包括兒童成長指標值的顯示、添加、修改和刪除等操作。其實現(xiàn)方法為設計GrowthRecordAction類,在前端頁面?zhèn)鬟f參數(shù)與GrowthRecordAction類交互,GrowthRecordAction類操作數(shù)據(jù)庫中的成長記錄表并返回結果在前端顯示。
身高體重曲線展示兒童身高和體重隨時間變化的曲線。該曲線使用開源可視化庫ECharts繪制。ECharts是一個使用JavaScript 實現(xiàn)的開源可視化庫,底層依賴輕量級的矢量圖形庫ZRender,提供直觀、交互豐富、可高度個性化定制的可視化圖表,兼容大部分的瀏覽器,可流暢運行在個人電腦和移動設備上。身高體重曲線繪制實現(xiàn)流程如圖4所示。
3.3.2 疫苗接種模塊設計
疫苗接種模塊主要完成兒童疫苗接種記錄和提醒兩個功能。該功能操作的數(shù)據(jù)表主要為疫苗信息表、疫苗提醒表和疫苗狀態(tài)表。
兒童疫苗接種記錄功能包括兒童疫苗接種記錄的顯示、添加、修改和刪除等操作。其實現(xiàn)方法為設計VaccineAction類,在前端頁面?zhèn)鬟f參數(shù)與VaccineAction類交互,VaccineAction類操作數(shù)據(jù)庫中的疫苗信息表和疫苗狀態(tài)表并返回結果在前端顯示。
兒童疫苗接種提醒功能包括設置提醒時間和提醒內(nèi)容顯示兩個操作。提醒內(nèi)容在系統(tǒng)主界面頂部以紅色字體顯示。設置提醒時間操作的實現(xiàn)方法如算法1所示。
算法1:設置兒童疫苗接種提醒時間實現(xiàn)算法。
//獲取用戶設置的疫苗接種提醒內(nèi)容
Integer vacId=request.getParameter("vacId");
String remind=request.getParameter("remind");
String rDate=request.getParameter("rDate");
User user=(User) request.getSession().getAttribute("user");
//根據(jù)疫苗編號獲取接種疫苗信息
Vaccine vaccine=
vService.getVaccine(Vaccine.class, vacId);
//設置疫苗接種提醒內(nèi)容
vaccineremind.setUser(user);
vaccineremind.setVaccine(vaccine);
vaccineremind.setRemind (remind);
vaccineremind.setRDate(sdf.parse(rDate));
//設置疫苗接種提醒內(nèi)容進服務隊列
第四,應站在動態(tài)、發(fā)展的立場,而非采用機械、固化的眼光去審視民法基本原則。基本原則是民法基本理念的立法確認,而民法基本理念是其所處特定時代特色的法律展現(xiàn)。“綠色原則”作為《民法典》對日益嚴峻的自然資源、生態(tài)環(huán)境危機的有力回應,統(tǒng)領民事立法和民事裁判的實踐面向,引導著民事主體選擇低能耗、環(huán)境友好的生產(chǎn)、生活方式,彰顯了立法者對當前自然資源、環(huán)境問題的價值取向。
vService.addVaccineRemind(vaccineremind);
3.3.3 病歷模塊設計
病歷模塊主要完成兒童病歷存檔功能,包括兒童病歷信息的顯示、添加、修改和刪除等操作[12]。該功能模塊操作的數(shù)據(jù)庫表為病歷表。
兒童病歷信息包括病名、生病開始時間、生病結束時間、使用藥物、就診醫(yī)院、備注、病歷上傳時間以及病歷照片等[13]。圖5為病歷信息顯示實現(xiàn)流程。

圖5 病歷信息顯示實現(xiàn)流程
3.3.4 視頻記錄模塊設計
視頻記錄模塊主要完成兒童視頻記錄功能,包括兒童視頻記錄的查看、添加、修改、刪除和搜索等操作。其實現(xiàn)方法為設計VideoAction類,在前端頁面?zhèn)鬟f參數(shù)與VideoAction類交互,VideoAction類操作數(shù)據(jù)庫中的視頻表返回結果在前端顯示。
兒童視頻添加的實現(xiàn)方法如算法2所示。
算法2:兒童視頻添加實現(xiàn)算法。
//設置文件名
String newName=thisTime+random+picFileName.substring(picFileName.lastIndexOf("."));
//設置文件保存路徑
String realPath=ServletActionContext.getServletContext().getRealPath("/img/uploadVideo");
//保存文件
File file=new File(realPath,newName);
FileUtils.copyFile(pic, file);
//設置視頻記錄信息,包括上傳用戶、鏈接地址、時間和描述等信息
User user=(User) request.getSession().getAttribute("user");
video.setUser(user);
video.setVideoUrl(newName);
video.setVideoUptime(accessTime);
video.setVRemarks(video.getVRemarks());
//在數(shù)據(jù)庫中寫入視頻記錄
videoService.addVideo(video);
為了測試設計的系統(tǒng)是否滿足要求,對系統(tǒng)進行了集成測試[14]。集成測試采用黑盒測試的方法,采用10個分布于不同位置的客戶端訪問系統(tǒng),從注冊模塊開始,逐個測試系統(tǒng)的11個功能模塊是否滿足要求[15]。
圖6為測試時系統(tǒng)運行截圖,圖6(a)為兒童身高體重曲線圖,(b)為疫苗顯示列表。

(a)身高體重曲線
表3為系統(tǒng)測試結果。由表3所示,分布在不同地方的10個客戶端的10次測試都取得了符合要求的運行結果,符合要求的比例為100%。

表3 系統(tǒng)測試結果
系統(tǒng)測試完善后,對系統(tǒng)進行了推廣應用,并通過調(diào)查問卷的形式回收應用反饋情況,收到了良好的反饋效果。
針對兒童成長信息管理的需求,設計了一種基于SSH的兒童成長管理系統(tǒng)。系統(tǒng)使用SSH框架開發(fā),具有結構清晰、便于擴展和維護等優(yōu)點。整個系統(tǒng)包含注冊模塊、登錄模塊、成長指標模塊、記事本記錄模塊、照片記錄模塊、視頻記錄模塊、病歷模塊、疫苗接種模塊、健康知識模塊、兒童管理模塊、個人信息模塊和系統(tǒng)介紹模塊共12個功能模塊,滿足了兒童成長信息管理的各種需求。詳細介紹了系統(tǒng)的總體設計、數(shù)據(jù)庫設計和程序設計,并對系統(tǒng)進行了測試與應用。測試與應用結果表明,該系統(tǒng)很好地實現(xiàn)了相應的功能,應用反饋效果良好。