仇云龍
(南京中醫藥大學,江蘇 南京 210023)
中醫學屬于一級學科,根據教育部最新公布的學科專業目錄,中醫學學科有13 個二級學科,這13 個二級學科在中醫院校學院設置中一般分布在不同的學院和研究所中,以筆者所在單位——南京中醫藥大學為例,這些二級學科分散在第一臨床醫學院、第二臨床醫學院、基礎醫學院、護理學院、中醫文獻研究所中,從中醫學一級學科建設和管理的層面出發,需要及時了解學科的現狀,不斷收集中醫學各學科、各專業的建設成果信息。本文針對此現狀,設計并開發了基于J2EE 和MVC 的中醫學學科信息瀏覽登記系統,基于學科信息的梳理,本系統在設計時充分考慮系統的易用性、可移植性和擴展性。
B/S 是Brower/Server 的英文首字母的縮寫,在這種結構下,用戶界面完全通過瀏覽器由Web 頁面呈現,不需要C/S(Client/Server)結構在用戶端安裝客戶端的要求,通過瀏覽器可以很好地支持系統在多終端(PC,Phone,Pad 等)下的應用,實現跨平臺的運行(見圖1)。B/S 結構的系統軟件只部署在服務器端,系統的維護和升級更為方便,系統也只要開發服務器端軟件,因此具有開發效率高、開發時間短、開發成本低的特點。

圖1 B/S 系統運行
1.2.1 Web 頁面的設計
為了適應目前多終端普及的狀況,提高系統的易用性,支持多終端下的用戶端界面自動適應顯示,系統開發時采用CSS+DIV 布局方式,力求避免絕對寬度的使用,采用流動布局,系統開發在主要考慮PC 端應用的同時兼顧其他終端下的使用,并為以后針對移動端的定制打下了基礎。
1.2.2 Ajax 技術的使用
本系統中核心功能之一就是學科信息的收集,信息數據在收集時都有其具體要求,為了讓用戶在填寫數據時及時提醒其數據要求,避免用戶在數據提交后才驗證數據是否符合要求帶來的不良使用體驗感,系統應用Ajax 技術,采用jQuery 框架,運用jQuery validate 插件完成大量數據的前端驗證,提高了系統的易用性,保證了數據收集的準確性。
1.3.1 J2EE 平臺
J2EE 是旨在為支持Java 語言服務器端部署而提供平臺無關的、可移植的、多用戶的、安全的、標準的企業級平臺[1],J2EE 平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基于Web 的多層應用提供了功能支持,本系統主要涉及JDBC,EJB,JSP,Java Servlet 技術。
1.3.2 MVC 模式
MVC 模式包括3 個部分:模型(Model)、視圖(View)和控制器(Controller),分別對應于內部數據、數據表示和輸入輸出控制部分[2]。MVC 設計模式分離了程序的表現、控制和數據,具有設計清晰、易于擴展、運用可分布的特點,因此在構建Web 應用中具有顯著的優勢,可適用于多用戶的、可擴展的、可維護的、具有很高交互性的系統[3]。本系統中的視圖即呈現給用戶的Web 頁面,核心業務模型即學科信息的提交、瀏覽、修改、刪除,控制器接受用戶Web 頁面中輸入的數據,通過調用相應的模型組件去處理請求并通過相對應的視圖來顯示模型返回的數據。
本系統采用IntelliJ IDEA 開發集成環境,基于Struts 框架實現MVC 模式下的系統開發,Struts 采用EJB 作為模型,JSP和Struts Tag Library 配合作為View,使用Servlet 作為控制器,提供了對開發MVC 系統的底層支持[4-6]。
中醫學學科信息主要包含個人學科信息和團隊學科信息,經過對學科信息的梳理,學科信息主要包括相關人員的個人信息以及團隊信息。其中,個人信息包括學術兼職、榮譽稱號、科研項目、教學研究項目、學術論文、論著、教材、科研及教學獲獎(精品課程)、專利、指導研究生、優碩優博畢業論文、學術交流,團隊信息包括重點學科(重點專科、重點專病)、重點實驗室、重點研究室(工作室)、教學團隊、科技創新團隊、示范教學中心、研究基地。
系統結構根據用戶角色區分為管理員和普通用戶2 大部分,系統的功能模塊主要有用戶信息管理模塊、學科信息的添加、修改及刪除模塊、學科信息的查詢管理模塊、學科信息的批量操作模塊。其中,學科信息添加和修改中實現對上傳文件類型、大小的限制,學科信息的查詢管理模塊要實現多重檢索,以方便學科信息管理者能獲得所需要的學科信息。
系統最主要的功能——學科信息登記的流程為:用戶登錄后,系統判斷用戶角色,進入普通用戶界面或管理員界面,普通用戶首次登陸時需要完善個人相關材料,然后完成學科信息的提交,管理員用戶對普通用戶提交的學科信息進行審查,審查通過后學科信息入庫,普通用戶提交的學科信息如有問題則打回給用戶修改或者直接刪除。
在中醫學學科瀏覽登記系統中面向的用戶是中醫學學科的師生以及學校附屬醫院中承擔教學和科研任務的醫生,這些用戶在提交科研項目、教學研究項目、論著、教材等信息時存在著提交數據重復的問題,如教師甲在某科研項目中排名第1,教師乙在該科研項目中排名第2,兩位教師都提交了數據,系統要能識別出重復提交的信息并進行有效的管理。針對該信息重復提交的問題,在系統開發過程中采取了在管理員端對重復信息進行管理的策略,降低普通用戶在學科信息登記過程中的難度,提高了該系統的易用性。
系統需要收集的一些學科信息只是名稱不同,但基礎數據字段都一致,如何降低系統開發過程中的開發量,提升系統的易維護性也是本系統在開發過程中重視的一個環節。如科研項目和教學研究項目、重點實驗室和重點研究室(工作室)等,這些需要登記的信息字段基本一致,在系統開發過程中,通過增加JAVA 類中方法參數的方式實現對具有重復字段的不同類別的學科信息的收集。另外,在學科信息瀏覽和管理過程中需要實現學科不同類別信息的批量導出,也需要實現帶參數性的適用于各類別學科信息批量導出的實現類和方法,本系統在實現批量導出數據過程中通過直接傳入數據庫名稱參數的形式將學科類別信息導出,減少了批量導出數據過程中需要設置較多參數的情況,讓用戶在導出的excel 表中在再進行其他操作。
中醫學學科瀏覽登記系統基于J2EE 和MVC 實現系統的開發,系統采用了B/S 結構,系統構建基于在J2EE 平臺上,因此系統具有跨平臺性和很好的可移植性,系統在開發過程中采取的網頁前端技術路線以及編寫的服務端程序都有較好的可維護性、可擴展性和可復用性。其次,由于采用MVC 設計模式,使業務邏輯和界面顯示界限清晰,降低了后期維護的難度。
基于J2EE 平臺和MVC 模式開發的中醫學科瀏覽登記系統采用J2EE 平臺帶來的跨平臺性、可移植性和MVC 模式帶來的系統易維護在當前被越來越多的開發者所推崇,筆者在系統維護中深刻體驗到這種架構帶來的益處,通過對系統的不斷完善,發揮著中學學科瀏覽登記系統在學科建設中的作用。
[1]劉洋,高連生,王斌.基于J2EE 和MVC 設計模式分銷系統的研究與實現[J].計算機工程與設計,2007(7):1655-1658.
[2]任中方,張華,閆明松,等.MVC 模式研究的綜述[J].計算機應用研究,2004(10):1-3.
[3]董占球,范新弼.按模式記憶[J].計算機學報,1991(4):316-318.
[4]陳苒,董占球.按模式記憶理論的記憶結構刻畫[J].計算機研究與發展,2000(5):634-640.
[5]陸舟.Struts2 技術內幕:深入解析Struts 架構設計與實現原理[M].北京:機械工業出版社,2012.
[6]張桂元.Struts 開發入門與項目實踐[M].北京:人民郵電出版社,2005.