闕佳凱
(復(fù)旦大學(xué)附屬中山醫(yī)院廈門醫(yī)院,廈門 361015)
醫(yī)院值班工作是保障醫(yī)院正常、有序運(yùn)轉(zhuǎn)不可或缺的重要環(huán)節(jié)。由于行業(yè)特殊性,醫(yī)院除了法定工作時(shí)間以外還需要安排大量醫(yī)務(wù)人員值班以應(yīng)對(duì)各種突發(fā)狀況。值班人員通常要處理醫(yī)療應(yīng)急、資源協(xié)調(diào)、指示接收、通知下達(dá)等一系列重要事務(wù)。因此醫(yī)院值班工作的是確保醫(yī)院醫(yī)療服務(wù)平穩(wěn)、有序進(jìn)行的重要保證,而科學(xué)、合理的值班安排則是值班工作高效完成的前提[1-2]。傳統(tǒng)醫(yī)院值班計(jì)劃是先由科室內(nèi)部安排,然后統(tǒng)一上報(bào)匯總,隨著醫(yī)院的發(fā)展,職工數(shù)量的增加,這種方式顯然存在諸多問題,上報(bào)流程繁瑣,數(shù)據(jù)易丟失或出現(xiàn)差錯(cuò),查詢不方便,無(wú)法電子化做進(jìn)一步處理[3-4]。隨著醫(yī)院信息化水平的提升,對(duì)值班排班信息化、智能化的需求與日俱增,智能化值班管理系統(tǒng)能夠滿足復(fù)雜值班排班的需要,實(shí)時(shí)查詢值班排計(jì)劃,實(shí)現(xiàn)排班數(shù)據(jù)跨部門、跨系統(tǒng)共享,是提升醫(yī)院精細(xì)化運(yùn)營(yíng)能力的重要手段[5]。
值班管理系統(tǒng)的用戶為全院?jiǎn)T工,日常使用院內(nèi)辦公電腦登錄,移動(dòng)端使用阿里釘釘應(yīng)用。系統(tǒng)采用B/S架構(gòu)設(shè)計(jì),聚焦于值班管理這一核心需求,深入挖掘用戶配置、模板設(shè)置、值班查詢、值班提醒等功能需求,采用MVC三層架構(gòu)理念,運(yùn)用模塊化思想設(shè)計(jì),使用敏捷開發(fā)策略,并借鑒了多款優(yōu)秀的開源框架進(jìn)行開發(fā),界面美觀,功能豐富,擴(kuò)展靈活,維護(hù)方便。系統(tǒng)整體架構(gòu)設(shè)計(jì)如圖1所示。

圖1 系統(tǒng)架構(gòu)設(shè)計(jì)圖
根據(jù)需求劃分了四大功能模塊,包括基礎(chǔ)配置、值班管理、值班查詢、報(bào)表統(tǒng)計(jì),具體如圖2所示。

圖2 系統(tǒng)功能設(shè)計(jì)
字典管理:維護(hù)系統(tǒng)中各類字典,例如值班類型、人員類型等,通過讀取字典映射,減少了代碼的改動(dòng)。
部門管理:醫(yī)院部門信息維護(hù),包括創(chuàng)建、刪除、修改以及查詢。
用戶管理:?jiǎn)T工賬號(hào)維護(hù),包括創(chuàng)建、刪除、修改、查詢以及和用戶角色的關(guān)聯(lián)。可以通過關(guān)聯(lián)用戶與角色進(jìn)行用戶權(quán)限的配置。
角色管理:用戶角色維護(hù),包括創(chuàng)建、刪除、修改、查詢以及角色對(duì)應(yīng)菜單權(quán)限的配置。比如信息科賬號(hào)關(guān)聯(lián)超級(jí)管理員角色,擁有系統(tǒng)所有權(quán)限,醫(yī)務(wù)部管理員賬號(hào)關(guān)聯(lián)值班管理員角色,擁有關(guān)于值班管理的所有權(quán)限,而每個(gè)科室只有本科室值班數(shù)據(jù)的增刪改查權(quán)限,普通賬號(hào)只有查詢的權(quán)限。
菜單管理:系統(tǒng)側(cè)邊欄菜單目錄以及頁(yè)面按鈕管理。可配置菜單或按鈕的名稱、屬性、鏈接以及所需的權(quán)限等。
增刪改查:點(diǎn)擊添加按鈕,可以選擇部門、人員、日期、值班類型然后添加完成一條值班錄入。擁有修改權(quán)限的用戶可以刪除和修改明天后值班數(shù)據(jù),而歷史包含當(dāng)日排班數(shù)據(jù)只有管理員才可以修改。
模板管理:為了方便批量生成排班計(jì)劃,免去人工多次錄入的耗時(shí)操作,系統(tǒng)提供了模板配置功能,用戶只需要先在系統(tǒng)中創(chuàng)建周一至周日的值班模板,同時(shí)預(yù)置值班人員、類型,即可使用模板快速生成指定時(shí)間范圍內(nèi)的值班計(jì)劃。
消息管理:院職工使用阿里釘釘應(yīng)用移動(dòng)辦公,值班管理系統(tǒng)將根據(jù)系統(tǒng)中配置的推送時(shí)間把值班計(jì)劃通過釘釘移動(dòng)應(yīng)用推送至指定值班人員,提醒員工關(guān)注值班安排,避免遺忘而導(dǎo)致缺勤。
條件查詢:通過輸入值班日期、部門、姓名、工號(hào)等條件可以查詢符合條件的值班信息,查詢將返回值班日期、值班科室、值班人員、人員工號(hào)、值班類型、聯(lián)系電話以及備注。
值班日歷:為了用戶使用方便,系統(tǒng)提供了值班日歷視圖,將值班計(jì)劃嵌入日歷中在頁(yè)面上呈現(xiàn),簡(jiǎn)明直觀,一目了然。
數(shù)據(jù)導(dǎo)出:可以將查詢出的值班數(shù)據(jù)導(dǎo)出Excel下載到本地,便于數(shù)據(jù)統(tǒng)計(jì)。
頁(yè)面打印:系統(tǒng)提供了頁(yè)面打印功能,可以直接從網(wǎng)頁(yè)上預(yù)覽和打印值班安排表。
個(gè)人統(tǒng)計(jì):匯總個(gè)人值班情況,可以按天、月、年度進(jìn)行統(tǒng),便于考勤和績(jī)效考評(píng)。
部門統(tǒng)計(jì):匯總部門排班情況,可以按天、月、年度進(jìn)行統(tǒng),方便統(tǒng)計(jì)部門工作量。
日志統(tǒng)計(jì):匯總操作日志,可以用作問題定位、回溯。
值班管理系統(tǒng)使用Java開發(fā),采用MVC三層架構(gòu)設(shè)計(jì),即持久層、視圖層、邏輯控制層,具體見圖3。其中視圖層使用的框架主要有Bootstrap、Bootstrap-table、layer、select2、laydate、jQuery。Bootstrap-table 為表格框架,layer為模態(tài)組件,select2為下拉框組件,laydate為日歷組件,jQuery提供了JavaScript特效以及AJAX異步請(qǐng)求等函數(shù)。邏輯控制層使用的框架主要有Spring-boot、shiro、logback、spring-framework、thymeleaf、quartz以及dingtalk-sdk等。其中spring-boot作為核心框架集成系統(tǒng)所需的一系列開源組件,shiro提供了權(quán)限配置模塊,logback為日志框架,thymeleaf為頁(yè)面渲染引擎,quartz是一個(gè)任務(wù)作業(yè)調(diào)度框架主要用于執(zhí)行一些定時(shí)任務(wù),而dingtalk-sdk則是阿里釘釘服務(wù)的開發(fā)套件,實(shí)現(xiàn)值班信息推送等功能。持久層使用的框架主要有MyBatis和druid,druid是一款廣受歡迎且性能強(qiáng)大的數(shù)據(jù)庫(kù)連接池框架,MyBatis同樣也是一個(gè)使用廣泛的持久化框架。

圖3 系統(tǒng)技術(shù)框架
以下是系統(tǒng)中使用的幾個(gè)主要框架:
Spring-boot:Spring-boot項(xiàng)目始于 2013 年,是 Pivotal團(tuán)隊(duì)開發(fā)的一個(gè)全新開源的輕量級(jí)框架。它不僅集成spring框架的優(yōu)秀特性,同時(shí)大大簡(jiǎn)化了配置,使得開發(fā)環(huán)境的搭建和開發(fā)過程變得簡(jiǎn)單高效。Springboot程序可以獨(dú)立作為一個(gè)體運(yùn)行,支持jar或war打包,支持內(nèi)嵌Tomcat服務(wù)器,無(wú)需額外部署Tomcat即可運(yùn)行Web程序。因此,值班管理系統(tǒng)選擇基于Spring-boot框架進(jìn)行開發(fā),利用Spring-boot組件豐富,開發(fā)簡(jiǎn)單,部署方便的優(yōu)點(diǎn),快速完成項(xiàng)目開發(fā)并部署上線。
Bootstrap:Bootstrap是一款功能強(qiáng)悍的前端開發(fā)框架,包含了豐富的web組件和js特效,例如系統(tǒng)中用到的Bootstrap-table表格框架以及bootstrap-datepicker日歷選擇框架等,利用這些組件可以快速組合的開發(fā)出一個(gè)美觀且功能強(qiáng)大的前端系統(tǒng)。不僅如此,Bootstrap還支持響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì),能夠自動(dòng)識(shí)別設(shè)備屏幕分辨從而優(yōu)化頁(yè)面布局,在PC瀏覽器、手機(jī)、平板電腦上都能有較好的用戶體驗(yàn)。值班系統(tǒng)前端框架主要基于Bootstrap進(jìn)行開發(fā),同時(shí)也使用了layer、select2等一些優(yōu)秀的開源組件,目的是為用戶提供一個(gè)風(fēng)格統(tǒng)一、簡(jiǎn)潔美觀的用戶界面。
Apache-shiro:Shiro是一個(gè)輕量級(jí)的安全框架,可以實(shí)現(xiàn)用戶驗(yàn)證、授權(quán)、密碼和會(huì)話管理。Shiro包含Subject、SecurityManager和 Realm幾個(gè)組件。其中Subject可當(dāng)成是與應(yīng)用交互的用戶,而SecurityManager則是Shiro的核心,通過SecurityManager實(shí)現(xiàn)各種安全管理功能,Realm則是應(yīng)用程序與安全數(shù)據(jù)之前間的“橋梁”或“連接器”,用于用戶認(rèn)證和授權(quán)驗(yàn)證。通過配置ShiroConfig類,在類中實(shí)現(xiàn)SessionManager、SecurityManager、ShiroFilter EhCacheManager等類完成Shiro的配置。在接口處添加注解@RequiresPermissions為了接口配置權(quán)限,減少了冗余代碼。以下是項(xiàng)目中使用注解@RequiresPermissions配置接口使用權(quán)限的示例:

值班系統(tǒng)部署架構(gòu)如圖4,服務(wù)器系統(tǒng)為Windows Server 2016,數(shù)據(jù)庫(kù)使用SQL Server 2016。系統(tǒng)部署于院內(nèi)網(wǎng)區(qū)域,與院內(nèi)辦公機(jī)網(wǎng)絡(luò)、服務(wù)器網(wǎng)絡(luò)互通,但與公共網(wǎng)絡(luò)完全隔離,與院外網(wǎng)DMZ區(qū)域有防火墻隔離。為了滿足院內(nèi)員工能同時(shí)使用辦公機(jī)和手機(jī)訪問,并且可以通過阿里釘釘應(yīng)用推送值班消息提醒,在院外網(wǎng)DMZ區(qū)域部署了一臺(tái)Nginx代理前置機(jī),配置防火墻IP端口規(guī)則放通這臺(tái)Nginx服務(wù)器的外向訪問阿里釘釘服務(wù)以及內(nèi)向訪問內(nèi)網(wǎng)值班管理系統(tǒng),并且對(duì)外開放一個(gè)使用手機(jī)查詢值班的端口。在保證服務(wù)器數(shù)據(jù)安全的前提下,實(shí)現(xiàn)所有設(shè)計(jì)的功能。
值班管理頁(yè)面是值班配置的主要頁(yè)面,如圖5所示。頁(yè)面左邊欄是導(dǎo)航菜單,點(diǎn)擊菜單可以進(jìn)入對(duì)應(yīng)功能頁(yè)面,管理員可以為不同用戶配置對(duì)應(yīng)的菜單訪問權(quán)限。值班管理頁(yè)面設(shè)計(jì)分為上中下三個(gè)部分,上部是搜索欄,包括值班科室、人員姓名、人員工號(hào)、值班類型、聯(lián)系電話以及日期范圍。中部是一組按鈕,包括創(chuàng)建、刪除、刪除和導(dǎo)出,提供值班管理的基本操作。下部為查詢得到的值班記錄列表,包括了值班日期、值班科室、值班人員、人員工號(hào)、值班類型、聯(lián)系電話以及備注。

圖4 系統(tǒng)部署架構(gòu)

圖5 值班管理頁(yè)面
為了更加簡(jiǎn)明直觀地展示值班計(jì)劃,值班日歷頁(yè)面參照了傳統(tǒng)日歷格式進(jìn)行設(shè)計(jì),將值班信息嵌入到日歷當(dāng)中。如圖6所示,用戶可以根據(jù)科室,值班類型,值班月份查詢值班計(jì)劃,返回的值班信息將會(huì)嵌入日歷中顯示,并且支持頁(yè)面打印功能。

圖6 值班日歷頁(yè)面
智能化醫(yī)院值班管理系統(tǒng)的上線應(yīng)用,是智慧醫(yī)院建設(shè)的又一重要成果,成為醫(yī)院信息系統(tǒng)的重要組成部分,在促進(jìn)醫(yī)院效能提升方面有著重要意義。系統(tǒng)不僅實(shí)現(xiàn)了智能化排班功能,而且提供了豐富多樣的值班視圖,同時(shí)利用互聯(lián)網(wǎng)接入阿里釘釘應(yīng)用實(shí)現(xiàn)了值班智能提醒功能。在提高部門排班效率的同時(shí),為醫(yī)院科學(xué)合理調(diào)配資源、高效運(yùn)營(yíng)決策提供了數(shù)據(jù)和系統(tǒng)支持。