基于關(guān)聯(lián)規(guī)則的醫(yī)生診療數(shù)據(jù)挖掘系統(tǒng)的實(shí)現(xiàn)
ARFDW 系統(tǒng)架構(gòu)模型如圖1 所示。首先,對(duì)被挖掘?qū)ο筮M(jìn)行充分分析,確定挖掘主題及數(shù)據(jù)來源,通過挖掘主題配置工具創(chuàng)建挖掘主題及關(guān)聯(lián)維度,并生成相應(yīng)數(shù)據(jù)庫表及數(shù)據(jù)記錄映射對(duì)象;其次,通過數(shù)據(jù)源配置工具對(duì)等待抽取的數(shù)據(jù)源數(shù)據(jù)的相關(guān)連接格式參數(shù)進(jìn)行配置,數(shù)據(jù)源配置好后系統(tǒng)會(huì)將輸入的數(shù)據(jù)通過數(shù)據(jù)對(duì)象化工具轉(zhuǎn)換為統(tǒng)一的XML 描述數(shù)據(jù)格式,并根據(jù)映射在基礎(chǔ)數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)保存表記錄;再次,通過轉(zhuǎn)換任務(wù)元數(shù)據(jù)配置工具生成數(shù)據(jù)轉(zhuǎn)換規(guī)則及對(duì)應(yīng)目標(biāo)主題,該部分實(shí)現(xiàn)需要用到功能節(jié)點(diǎn)以及設(shè)定任務(wù)中各個(gè)功能節(jié)點(diǎn)的執(zhí)行流程。配置好的任務(wù)將在任務(wù)列表中列出,可以手動(dòng)執(zhí)行,也可以通過總控調(diào)度配置自動(dòng)執(zhí)行。數(shù)據(jù)經(jīng)過ETL處理后會(huì)加載到挖掘庫對(duì)應(yīng)的主題中去。最后,通過基于關(guān)聯(lián)規(guī)則的挖掘算法對(duì)目標(biāo)數(shù)據(jù)進(jìn)行挖掘,并將條件的規(guī)則保存到規(guī)則庫。
2.3 ARFDW框架實(shí)現(xiàn)
整個(gè)系統(tǒng)框架結(jié)構(gòu)按照分層設(shè)計(jì)、實(shí)現(xiàn)?,F(xiàn)對(duì)關(guān)鍵層的實(shí)現(xiàn)進(jìn)行逐一描述。
數(shù)據(jù)持久層采用Hibernate,負(fù)責(zé)存儲(chǔ)、更新、刪除數(shù)據(jù)庫記錄等。Hibernate是一個(gè)用來處理O/R Mapping的持久層框架。技術(shù)本質(zhì)上是一個(gè)提供數(shù)據(jù)庫服務(wù)的中間件,該中間件屏蔽了不同數(shù)據(jù)庫之間的差異。它的工作原理是通過文件把值對(duì)象和數(shù)據(jù)庫表之間建立起一個(gè)映射關(guān)系,這樣,只需要通過操作這些值對(duì)象和Hibernate提供的一些基本類,就可以達(dá)到使用數(shù)據(jù)庫的目的。
Hibernate 使用數(shù)據(jù)庫和配置信息來為應(yīng)用程序提供持久化服務(wù)(以及持久的對(duì)象)。在這里,創(chuàng)建了接口IdaoSupport,該接口定義了所有對(duì)數(shù)據(jù)庫進(jìn)行的原子操作,DaoSupportHibernate3Imp 是其實(shí)現(xiàn)類,該類繼承了HibernateDaoSupport類,通過調(diào)用該類提供的方法來完成對(duì)數(shù)據(jù)庫的操作。
業(yè)務(wù)邏輯層采用Spring.Spring框架是一個(gè)分層架構(gòu),它的核心提供了一個(gè)管理業(yè)務(wù)對(duì)象以及它們之間依賴關(guān)系的方法。例如,應(yīng)用控制反轉(zhuǎn)(IOC),它可以特定一個(gè)數(shù)據(jù)訪問對(duì)象(DAO)去依賴于某一個(gè)數(shù)據(jù)源。
同時(shí),它允許開發(fā)者實(shí)現(xiàn)接口并在XML 文件中去定義其實(shí)現(xiàn)類。同時(shí)為了避免EJB的高度侵入性,實(shí)現(xiàn)無侵入性的目標(biāo),Spring 大量引入了JAVA 的Reflection 機(jī)制,通過動(dòng)態(tài)調(diào)用的方式避免硬編碼方式的約束,并在此基礎(chǔ)上建立了其核心組件BeanFactory,以此作為其依賴注入機(jī)制的實(shí)現(xiàn)基礎(chǔ)。
表示層采用基于MVC模式的Struts框架。MVC(模型-視圖-控制)設(shè)計(jì)模式將WEB層分為三類對(duì)象:代表數(shù)據(jù)的模型(Model)對(duì)象,顯示模型的視圖(View)對(duì)象以及響應(yīng)用戶輸入、處理業(yè)務(wù)流程的控制器(Controller)對(duì)象。
整個(gè)系統(tǒng)處理流程如下:
(1)當(dāng)系統(tǒng)第一次啟動(dòng)時(shí),應(yīng)用會(huì)根據(jù)部署描述文件Web.xml指向的applicationContext.xml中定義的內(nèi)容初始化數(shù)據(jù)庫連接池、進(jìn)行O-R Mapping映射、根據(jù)IoC實(shí)例化業(yè)務(wù)邏輯類。
(2)操作員登陸時(shí),進(jìn)行相應(yīng)的權(quán)限驗(yàn)證,如果驗(yàn)證通過,則初始化單例對(duì)象(InitSingleton),該對(duì)象保存了一些全局實(shí)例,用戶信息、角色信息、權(quán)限信息等。
(3)操作員通過系統(tǒng)界面(JSP)提交業(yè)務(wù)請求(業(yè)務(wù)信息保存在FormBean中),并通過struts-config.xml中的描述定位到控制器(Action),業(yè)務(wù)請求包括:業(yè)務(wù)編號(hào)、當(dāng)前步驟、執(zhí)行動(dòng)作等。
(4)控制器接收用戶請求,將FormBean中的信息傳遞到BO中,同時(shí)調(diào)用權(quán)限驗(yàn)證模塊(RightControl)進(jìn)行操作員權(quán)限驗(yàn)證。權(quán)限驗(yàn)證接口判斷當(dāng)前用戶對(duì)于請求的業(yè)務(wù)是否具有權(quán)限(只讀、可寫),將結(jié)果反饋給控制器。
(5)如果驗(yàn)證通過,控制器將根據(jù)用戶請求信息,調(diào)用系統(tǒng)啟動(dòng)時(shí)實(shí)例化的業(yè)務(wù)邏輯類進(jìn)行相應(yīng)業(yè)務(wù)處理。
(6)業(yè)務(wù)處理邏輯對(duì)象處理特定業(yè)務(wù)邏輯,當(dāng)需要CRUD(即Create、Read、Update、Delete)時(shí),會(huì)根據(jù)appli-cationContext.xml中通過set方法注入的DAO實(shí)例,執(zhí)行相應(yīng)的CRUD操作。
(7)業(yè)務(wù)處理完成后,控制器根據(jù)返回結(jié)果,將用戶頁面導(dǎo)向特定JSP,如果有需要,將返回的結(jié)果封裝成FormBean(與用戶界面相對(duì)應(yīng)的JavaBean,其屬性與用戶界面元素相對(duì)應(yīng))一并返回特定JSP.
3 結(jié)語
課題根據(jù)目前國內(nèi)外數(shù)據(jù)集成工具暴露出的問題,及目前醫(yī)生診療數(shù)據(jù)挖掘的現(xiàn)狀、技術(shù)及特點(diǎn)提出了ARFDW 自適應(yīng)模型框架的概念。該框架使用JAVA語言、對(duì)象持久化技術(shù)和XML技術(shù)構(gòu)建出跨平臺(tái)、多線程并發(fā)運(yùn)行、支持增量數(shù)據(jù)更新、靈活的數(shù)據(jù)挖掘系統(tǒng)架構(gòu)模型,并給出了設(shè)計(jì)和實(shí)現(xiàn)方案。
評(píng)論