付廷巖 孫亞平 梁 瑞 吳曉東 樊 婷 趙旺兄 張 可
寧夏回族自治區(qū)人民醫(yī)院 寧夏銀川 750002
隨著近年來(lái)腫瘤發(fā)病率越來(lái)越高、放療設(shè)備和工作人員數(shù)量不斷擴(kuò)大,接受放射治療的患者量迅速增多[1],醫(yī)院放療科產(chǎn)生和需要處理的醫(yī)學(xué)信息量呈幾何倍數(shù)增長(zhǎng),管理難度逐漸增大。若能及時(shí)、準(zhǔn)確、完好地處理和應(yīng)用這些信息,將是對(duì)醫(yī)院信息系統(tǒng)(hospital information system,HIS)的有力完善,也是提高放射治療信息管理水平的重要舉措[2-3]。
放射治療科是醫(yī)院信息化建設(shè)和應(yīng)用非常復(fù)雜的科室,所涉及的學(xué)科、角色、設(shè)備及數(shù)據(jù)眾多。據(jù)統(tǒng)計(jì),目前擁有多種計(jì)算機(jī)控制的大型設(shè)備(模擬機(jī)、后裝機(jī)、加速器等)的放療機(jī)構(gòu),放療信息系統(tǒng)(radiotherapy information system,RTIS)的應(yīng)用比例還不到30%[4-5]。大部分放療機(jī)構(gòu)通過(guò)線上-線下、紙質(zhì)-電子相結(jié)合的方式完成患者的放射治療及放療信息的管理。此管理模式需要HIS-放療局域網(wǎng)絡(luò)-紙質(zhì)單據(jù)三方配合完成。HIS負(fù)責(zé)患者的收費(fèi)、病歷及隨訪等;局域網(wǎng)絡(luò)負(fù)責(zé)患者定位、靶區(qū)勾畫(huà)、計(jì)劃制作及治療等;紙質(zhì)單據(jù)則起著銜接和記錄各流程的作用。此模式存在以下不足:
①除HIS和放療局域網(wǎng)絡(luò)(如ARIA)外,還需要填寫以下表格:模擬定位CT申請(qǐng)單、放射治療定位及首次擺位記錄單、放射治療CT模擬定位-復(fù)位登記表、計(jì)劃申請(qǐng)單、放射治療記錄單、放射治療安全核查單、乳腺托架參數(shù)記錄單(限乳腺癌患者)。此模式不能滿足三甲醫(yī)院全流程電子化、無(wú)紙化的管理要求;同時(shí)隨著患者數(shù)量的增多,紙質(zhì)單據(jù)的保存將是一件耗時(shí)、耗力的事情,也會(huì)造成資源的浪費(fèi)。②以上網(wǎng)絡(luò)、單據(jù)分布在不同場(chǎng)所及不同時(shí)間,大部分信息屬于重復(fù)錄入;另一些信息屬于繼承關(guān)系,錄入前需查找核對(duì)。這都存在手工錄入效率低,因書(shū)寫或字跡難以辨認(rèn)導(dǎo)致的出錯(cuò)率高的問(wèn)題。③紙質(zhì)單據(jù)只有一份,使用時(shí)必須通過(guò)借閱或電話詢問(wèn)等方式實(shí)現(xiàn);資料經(jīng)過(guò)頻繁查閱容易造成存放混亂、缺損或丟失;這都使得信息傳遞不流暢、不快捷,無(wú)法做到高效的管理。
為了解決我院放療流程管理信息化程度低、患者信息出錯(cuò)率高的問(wèn)題,運(yùn)用信息化手段管理放療信息勢(shì)在必行。根據(jù)我院放療流程及信息化需求,確定的系統(tǒng)功能模塊如下:
①患者基本信息管理功能,信息按需錄入并保存在服務(wù)器,使用時(shí)自動(dòng)讀取;每個(gè)信息有格式要求,錄入、調(diào)取時(shí)自動(dòng)核對(duì),保證信息的一致性。②流程管理功能。包含患者定位、靶區(qū)勾畫(huà)、物理計(jì)劃、患者治療等流程的時(shí)間、進(jìn)度、責(zé)任人等相關(guān)信息的管理。
放射治療工作流程見(jiàn)圖1:首先主治醫(yī)生根據(jù)腫瘤患者的病情制定個(gè)體化的放療方案;隨后預(yù)約并進(jìn)行體位固定膜等的制作;接著預(yù)約并在大孔徑CT的引導(dǎo)下行放療前的定位,確定放療病變部位以及放療等中心點(diǎn)的位置;同步上傳患者CT影像資料至放射治療計(jì)劃系統(tǒng)(treatment planning system,TPS);然后由醫(yī)師根據(jù)病變部位確定并勾畫(huà)放療靶區(qū),制定放療劑量并填寫處方劑量及危及器官劑量限值;物理師根據(jù)計(jì)劃申請(qǐng)單設(shè)計(jì)放療計(jì)劃方案,完成后提交放療主任醫(yī)師評(píng)估;如果計(jì)劃評(píng)估未通過(guò),需要繼續(xù)優(yōu)化或者重新設(shè)計(jì);若評(píng)估通過(guò),則可進(jìn)行計(jì)劃驗(yàn)證以及預(yù)約放療機(jī)房;最后按序進(jìn)行患者的放射治療。本系統(tǒng)需要對(duì)以上各流程進(jìn)行管理,以及對(duì)各流程產(chǎn)生時(shí)間、責(zé)任人等關(guān)鍵信息進(jìn)行記錄。③報(bào)表自動(dòng)生成:能自動(dòng)生成并導(dǎo)出相關(guān)報(bào)表,如設(shè)備使用情況、工作量統(tǒng)計(jì)及病種統(tǒng)計(jì)等。
圖1 放射治療流程
自主研發(fā)既可以充分利用現(xiàn)有設(shè)備和系統(tǒng),又可以解決放療信息系統(tǒng)通用性差、價(jià)格昂貴的問(wèn)題。目前國(guó)內(nèi)多家有技術(shù)能力的醫(yī)院進(jìn)行了放療信息系統(tǒng)RTIS的自主研發(fā)[6],類似國(guó)外大型企業(yè)管理軟件的發(fā)展趨勢(shì),它們已經(jīng)使用了瀏覽器/服務(wù)器(browser/server,B/S)結(jié)構(gòu),或者正在經(jīng)歷從服務(wù)器-客戶機(jī)(client-server,C/S)結(jié)構(gòu)到B/S的轉(zhuǎn)變,RTIS系統(tǒng)結(jié)構(gòu)以前也是以C/S結(jié)構(gòu)為主[3,7-11],近年來(lái)出現(xiàn)了B/S結(jié)構(gòu)的使用[12-16]。B/S模式是WEB興起后的一種網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)使用瀏覽器的方式統(tǒng)一了客戶端,并將實(shí)現(xiàn)系統(tǒng)功能的核心部分集中到服務(wù)器上,顯著簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)、使用和維護(hù)。B/S結(jié)構(gòu)下的軟件分布性強(qiáng),通過(guò)頁(yè)面的增加即可實(shí)現(xiàn)功能的增加,具有業(yè)務(wù)處理便捷、擴(kuò)展簡(jiǎn)單方便的特點(diǎn);同時(shí)還具有共享性強(qiáng)、升級(jí)方便、維護(hù)方便的特點(diǎn)。本文根據(jù)各個(gè)模塊特點(diǎn),和系統(tǒng)的操作響應(yīng)速度、軟件維護(hù)量和安全等多方面需求,基于B/S結(jié)構(gòu)開(kāi)發(fā)了放療流程信息管理系統(tǒng),用戶可以直接通過(guò)安裝在客戶端的瀏覽器與安裝在服務(wù)器上的數(shù)據(jù)庫(kù)進(jìn)行交互,能更好地應(yīng)對(duì)放療科日益增長(zhǎng)的業(yè)務(wù)需求。
RTIS所使用數(shù)據(jù)庫(kù)服務(wù)器以SQL類型為主,包括SQL SERVERA[3]、SQL Server 2000[7]、SQL Server 2005[8]、SQL Server 2008[9]、MySQL[10-14]。本文選擇開(kāi)放源代碼的MySQL作數(shù)據(jù)庫(kù),其具有使用簡(jiǎn)便、功能強(qiáng)、運(yùn)行速度快、管理方便、安全可靠性強(qiáng)等優(yōu)點(diǎn)。
目前RTIS編程語(yǔ)言框呈現(xiàn)多樣性,如Visual Foxpro[3]、Delphi[7]、Visual C#.NET[8]、JavaScript[9]、PHP[10;12]、C++Qt[11]、Nutz[13]、python+Django[14]、ASP[16]、Power-Builder 9i[17]等。本文使用Python語(yǔ)言編寫的一套開(kāi)放源代碼的Web框架-Django框架作為開(kāi)發(fā)框架。Django具有很強(qiáng)的可擴(kuò)展性,本身集成了ORM、模板引擎、模型綁定、Session、緩存等組件,這些組件以“插件”的形式很方便地服務(wù)于整個(gè)框架。如將ORM框架嵌入Django,開(kāi)發(fā)人員可通過(guò)操作模型類和對(duì)象完成數(shù)據(jù)庫(kù)表的增、刪、改、查,而不需要直接面向數(shù)據(jù)庫(kù)編程。同時(shí),Django強(qiáng)調(diào)快速開(kāi)發(fā)和代碼復(fù)用(或者稱為Do Not Repeat Yourself,DRY)原則,可以簡(jiǎn)便、快速地開(kāi)發(fā)數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站[18]。本系統(tǒng)設(shè)計(jì)采用的Django版本是2.2.12。
根據(jù)Python語(yǔ)言的運(yùn)行需要以及系統(tǒng)的調(diào)試需求,需滿足以下要求:
①軟硬件需要操作系統(tǒng)為Windows 2000及以上版本;CPU 2.4 GHz以上;內(nèi)存512以上;硬盤80 GB以上;VGA顯示器或更高。②當(dāng)信息數(shù)據(jù)錄入、修改和刪除等操作時(shí),應(yīng)盡量縮短系統(tǒng)的響應(yīng)時(shí)間與更新時(shí)間;盡量避免由于用戶的誤操作所引起的系統(tǒng)宕機(jī)。③系統(tǒng)應(yīng)該具有可擴(kuò)展性,當(dāng)有新的信息管理?xiàng)l件添加時(shí),能方便地對(duì)系統(tǒng)進(jìn)行擴(kuò)充。
根據(jù)需求,對(duì)系統(tǒng)進(jìn)行模塊化設(shè)計(jì),具體結(jié)合圖1,設(shè)計(jì)為患者總覽、患者定位/復(fù)位、物理計(jì)劃、患者治療、系統(tǒng)管理等模塊。
患者總覽模塊包含患者信息登記、待定位、計(jì)劃制作、待加新、治療中、治療暫停、在科、已出院患者等8個(gè)子信息模塊。
①患者信息登記子模塊。根據(jù)單位實(shí)際放療工作情況,對(duì)所有的患者信息包括姓名、性別、身份證號(hào)、年齡、聯(lián)系方式、身高、體質(zhì)量、住址、主管醫(yī)生、診斷病種、部位等進(jìn)行統(tǒng)一管理。主治醫(yī)師有創(chuàng)建、刪除、修改的權(quán)限,其他工作人員可以查看。后續(xù)各模塊信息的創(chuàng)建都依賴于患者基礎(chǔ)信息部分。②各治療狀態(tài)子信息模塊。醫(yī)務(wù)人員可以直觀查看每個(gè)狀態(tài)的患者量、病種、主管醫(yī)生等關(guān)鍵信息。更詳細(xì)的信息可以通過(guò)點(diǎn)擊姓名上的超鏈接進(jìn)行查看。系統(tǒng)模塊中的所有報(bào)表都可以批量篩選、一鍵導(dǎo)出、一鍵打印。
放療流程管理模塊包括定位/復(fù)位、物理計(jì)劃、患者治療部分。各子模塊設(shè)計(jì)邏輯相似,均包含流程相應(yīng)表單的創(chuàng)建與查詢管理。醫(yī)務(wù)人員的權(quán)限根據(jù)崗位不同而不同,分不可見(jiàn)、可見(jiàn)不可編輯、可編輯等多種。每個(gè)模塊都有一鍵表單推薦創(chuàng)建或特定模板選擇功能。本系統(tǒng)還設(shè)計(jì)了任務(wù)推送功能,自患者放療流程信息建立,系統(tǒng)可根據(jù)進(jìn)度自動(dòng)推送任務(wù)或提醒給醫(yī)務(wù)人員處理。這也是本系統(tǒng)的一個(gè)特點(diǎn):基于模塊化思路,開(kāi)發(fā)任務(wù)驅(qū)動(dòng)模式的應(yīng)用軟件,可以很好地推動(dòng)任務(wù)的執(zhí)行,使各崗位間以及各流程間的任務(wù)實(shí)現(xiàn)無(wú)縫對(duì)接,有利于信息管理以及放療工作效率的提升。
①患者定位模塊。包括待定位、定位申請(qǐng)、定位進(jìn)行、已定位子模塊。其中待定位管理包括對(duì)患者定位要求,模具制作等關(guān)鍵部分的創(chuàng)建、修改、刪除(見(jiàn)圖2);定位申請(qǐng)為定位時(shí)間的預(yù)約;定位進(jìn)行為圖像傳輸目標(biāo)等定位信息、定位技師、定位日期的記錄;已定位部分管理為只完成定位未進(jìn)入治療的患者報(bào)表。一鍵推薦的患者定位要求見(jiàn)圖3。②物理計(jì)劃模塊。包含靶區(qū)勾畫(huà)(見(jiàn)圖4)、計(jì)劃制作、計(jì)劃評(píng)估中的患者報(bào)表顯示,以及指定條件的計(jì)劃統(tǒng)計(jì)子模塊。其中靶區(qū)勾畫(huà)子模塊顯示此狀態(tài)的患者,靶區(qū)勾畫(huà)完成后醫(yī)師需填寫計(jì)劃申請(qǐng)單并點(diǎn)擊“待提交”按鈕,便跳轉(zhuǎn)至制作計(jì)劃子模塊;物理師計(jì)劃制作完成時(shí),點(diǎn)擊此子模塊中“提交”按鈕,跳轉(zhuǎn)至計(jì)劃評(píng)估子模塊;若計(jì)劃通過(guò),醫(yī)師點(diǎn)擊“通過(guò)并簽字”按鈕,自動(dòng)鏈接到計(jì)劃申請(qǐng)單中的簽字部分并按需簽字、補(bǔ)充治療信息,完成后將跳轉(zhuǎn)至患者治療模塊中的待加新子模塊中;若計(jì)劃不滿足要求,點(diǎn)擊“評(píng)估不通過(guò)”按鈕,將返回上一子模塊。③患者治療模塊。包括待加新、放療中、放療暫停、當(dāng)日待放療、已完成治療患者子模塊。待加新子模塊中需要醫(yī)師完善處方、治療野數(shù)、是否加急、有無(wú)增敏劑、擬治療日期等信息,技師確認(rèn)后便進(jìn)入放療中子模塊;放療開(kāi)始、結(jié)束、暫停、每日治療日期都將自動(dòng)記錄到表單中,見(jiàn)圖5。④護(hù)理/費(fèi)用模塊。由于收費(fèi)及護(hù)理相關(guān)管理由HIS實(shí)現(xiàn),而此流程管理系統(tǒng)與HIS及ARIA物理隔離,故此子模塊留待擴(kuò)展。
圖2 患者定位模塊中待定位界面
圖3 一鍵推薦的患者定位要求
圖4 患者物理計(jì)劃模塊中靶區(qū)勾畫(huà)界面
圖5 放射治療記錄單
⑤統(tǒng)計(jì)分析模塊。用戶可以根據(jù)實(shí)際情況,以單一條件或復(fù)合條件查詢相關(guān)患者的放療信息、醫(yī)務(wù)人員工作量、設(shè)備使用情況等記錄。對(duì)于查詢到的記錄,根據(jù)用戶權(quán)限,可以進(jìn)行修改和刪除等處理,也可以通過(guò)報(bào)表導(dǎo)出。
系統(tǒng)管理模塊包括醫(yī)務(wù)人員/用戶管理、設(shè)備/材料管理兩個(gè)子模塊。
①醫(yī)務(wù)人員信息管理子模塊。根據(jù)各崗位工種和放療流程,對(duì)放療工作人員的信息進(jìn)行統(tǒng)一管理,包括記錄和查看人員姓名、工種,聯(lián)系方式等關(guān)鍵信息。使用該系統(tǒng)前,用戶需要注冊(cè),填寫以上信息。同時(shí),用戶可以在此模塊進(jìn)行用戶名與密碼的修改,以及賬戶的注銷。②材料/設(shè)備信息管理子模塊。放療科室的設(shè)備種類較多,主要包括定位設(shè)備和治療設(shè)備。目前占據(jù)主流地位的治療設(shè)備主要為醫(yī)用直線加速器,還有TOMO、伽馬刀、射波刀、陀螺刀、質(zhì)子加速器等;放療中使用的材料則更多,如各種擋鉛、體位固定架、熱塑膜、發(fā)泡膠等。為了方便管理,對(duì)患者進(jìn)行信息管理時(shí),需要添加所使用設(shè)備和材料的分類、屬性、名稱、規(guī)格、供應(yīng)商等信息;同時(shí),還需要對(duì)以上信息實(shí)現(xiàn)創(chuàng)建、修改、刪除等處理的功能。
本文在數(shù)據(jù)庫(kù)設(shè)計(jì)時(shí),以保證系統(tǒng)業(yè)務(wù)需求為前提,以具有較好的數(shù)據(jù)一致性和系統(tǒng)擴(kuò)展性,以及高效的數(shù)據(jù)查詢效率為導(dǎo)向,采用開(kāi)放性跨平臺(tái)的開(kāi)源型關(guān)系數(shù)據(jù)庫(kù)MySQL作為數(shù)據(jù)庫(kù),通過(guò)主鍵、唯一索引、外鍵以及分表等方法實(shí)現(xiàn)表單的建立。根據(jù)放療流程系統(tǒng)的模塊設(shè)計(jì),在數(shù)據(jù)庫(kù)中分別建立用戶表、患者信息表、模擬定位CT申請(qǐng)單、放射治療定位及首次擺位記錄單、放射治療CT模擬定位-復(fù)位登記表、計(jì)劃申請(qǐng)單、放射治療記錄單、放射治療安全核查單、乳腺托架參數(shù)記錄單(限乳腺癌患者)等。為了保證數(shù)據(jù)的完整性,該系統(tǒng)對(duì)數(shù)據(jù)庫(kù)中一些關(guān)鍵的字段(如患者姓名、主治醫(yī)生、放療設(shè)備型號(hào)等)設(shè)置為非空字段,即必須需要用戶在前端填寫。
本系統(tǒng)前端首頁(yè)使用了基于layui的輕量級(jí)前端后臺(tái)管理框架layuimini,它是一款簡(jiǎn)潔、易用的后臺(tái)框架模板,面向所有層次的前后端程序,無(wú)需復(fù)雜操作,只需提供一個(gè)接口就直接初始化整個(gè)框架。本文稍微修改layuimini源代碼后的首頁(yè)見(jiàn)圖6。
圖6 系統(tǒng)首頁(yè)界面
本系統(tǒng)需要實(shí)現(xiàn)的功能包括數(shù)據(jù)導(dǎo)入與展示、數(shù)據(jù)查詢以及報(bào)表打印等,其中數(shù)據(jù)的導(dǎo)入與展示是最基本也是最重要的功能。這些功能的實(shí)現(xiàn)原理參見(jiàn)文獻(xiàn)[18],也可以用Django的MVT(model-view-template)模式來(lái)說(shuō)明:Model層即數(shù)據(jù)存取層,負(fù)責(zé)處理與數(shù)據(jù)相關(guān)的所有事務(wù),包括數(shù)據(jù)實(shí)體的定義及對(duì)數(shù)據(jù)的CRUD(增刪改查)操作,數(shù)據(jù)模型以Python類的形式定義;Template層即表現(xiàn)層,處理與表現(xiàn)相關(guān)的決定,如在頁(yè)面或其他類型文檔中如何顯示,前端框架代碼也放置于此;View層即業(yè)務(wù)邏輯層,該層包含存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯,相當(dāng)于模型與模板之間的橋梁。
經(jīng)過(guò)測(cè)試,該系統(tǒng)運(yùn)行穩(wěn)定;基本達(dá)到了預(yù)期效果,實(shí)現(xiàn)了以下功能:信息一次性錄入、全程通用的功能,信息的全流程電子化處理和管理功能,相關(guān)資料一鍵生成電子表單并打印功能及電子化歸檔、電子化保存以及智能統(tǒng)計(jì)分析功能。
本文針對(duì)放療流程管理時(shí)大多數(shù)機(jī)構(gòu)采用人工全流程紙質(zhì)化管理,信息化水平低、出錯(cuò)率高、管理效率低的現(xiàn)狀,通過(guò)對(duì)當(dāng)前放療流程信息化的需求作詳盡分析,結(jié)合信息管理技術(shù)的發(fā)展趨勢(shì),基于B/S結(jié)構(gòu)設(shè)計(jì)并開(kāi)發(fā)了一個(gè)放療流程管理系統(tǒng)。該系統(tǒng)采用前后端不分離技術(shù),以PyCharm為開(kāi)發(fā)平臺(tái),以MySQL作為服務(wù)器的數(shù)據(jù)庫(kù),利用Python語(yǔ)言及其Django開(kāi)發(fā)框架實(shí)現(xiàn)各模塊的功能。
該系統(tǒng)在一定程度上滿足了放療管理事務(wù)的規(guī)范化、無(wú)紙化辦公要求,為各流程間建立了及時(shí)有效的溝通機(jī)制,可以快捷、準(zhǔn)確地查詢患者信息,同時(shí)為患者治療過(guò)程和療效的科學(xué)評(píng)價(jià)提供工具。