賴佳路,鐘仁明
四川大學(xué)華西醫(yī)院 放療科,四川 成都 610041
瘢痕疙瘩是由成纖維細胞異常增殖和膠原蛋白過度沉積且超過原來正常范圍的一種纖維增生性疾病[1-2]。該病治療方法較多[3-5],研究發(fā)現(xiàn)術(shù)后即時聯(lián)合電子線放療是治療瘢痕疙瘩最有效、復(fù)發(fā)率最低的治療方案,治愈率高達80%以上[6-7]。瘢痕疙瘩術(shù)后24 h 內(nèi)病變處成纖維細胞占多數(shù)且對射線最敏感,是放療干預(yù)瘢痕疙瘩的最佳時期[8],最近的一些回顧性研究發(fā)現(xiàn)也表明,瘢痕疙瘩切除后7 h甚至更短時間進行放療復(fù)發(fā)率更低[9-10]。
根據(jù)我院放療科情況,瘢痕病人術(shù)后在行放療之前醫(yī)生需要對瘢痕病人進行簡單定位。醫(yī)生會根據(jù)瘢痕疙瘩大小設(shè)定照射野參數(shù),之后將填寫有照射野大小、照射野能量等信息的放療申請單交由物理師進行二維計劃設(shè)計。目前,我科室瘢痕二維計劃設(shè)計均在商用計劃系統(tǒng)Pinnacle 9.2(飛利浦)上設(shè)計,該計劃系統(tǒng)價格昂貴,由于科室資源緊缺無法隨時隨地提供Pinnacle 供物理師進行二維計劃設(shè)計。有時瘢痕病人手術(shù)較晚,物理師不能當天對瘢痕病人的二維計劃進行處理,這讓瘢痕病人錯過了最佳治療時間。根據(jù)我科室瘢痕二維計劃設(shè)計經(jīng)驗,所有二維計劃計算均是基于一個大小為50 cm×50 cm×50 cm 的水模體,且瘢痕二維計劃設(shè)計過程中很多參數(shù)都是固定不變的,如處方劑量為2000 cGy/4 次,源皮距SSD 為100 cm,能量為6 Mev 電子線,床角度、機架角度、準直器角度都為0°,處方歸一到劑量最大點Dmax。每個瘢痕病人計劃設(shè)計過程中唯一不同的是限光筒大小以及用電子擋鉛形成的射野大小。因此我們可以編寫一款程序,將事先通過Pinnacle 商用計劃系統(tǒng)計算好的數(shù)據(jù)錄入我們軟件中。這樣便能在瘢痕病人定位階段根據(jù)照射野大小借助我們編寫程序得到機器跳數(shù)。等病人定位完后便可以直接進入加速器機房進行治療。這樣極大節(jié)省了治療單送去計劃室路上花費的時間同時也避免了物理師計劃設(shè)計過程中的重復(fù)操作。目前在放療領(lǐng)域,商用的放療系統(tǒng)常常是封閉系統(tǒng),對于科研工作的使用多不方便[11],由于商用計劃系統(tǒng)價格昂貴,在定位室專門放一臺商用計劃系統(tǒng)用于瘢痕計劃設(shè)計也不實際。本文就介紹了一款基于Qt 平臺開發(fā)專門應(yīng)用于瘢痕二維放療計劃設(shè)計的軟件平臺。該軟件平臺解決了瘢痕二維放療計劃設(shè)計流程時間過長問題,對于瘢痕病人的即時治療具有重要的臨床意義。
該軟件平臺的開發(fā)基于Windows10 64 位操作系統(tǒng)(內(nèi)存8 G)和Qt creator 4.7.1 集成開發(fā)環(huán)境,采用C++語言進行開發(fā)。
圖形用戶界面(Graphical User Interface,GUI),又稱為圖形用戶接口,是采用圖形方式顯示的計算機操作用戶界面[12]。目前,人機GUI 界面大多采用微軟基礎(chǔ)類庫(Microsoft Foundation Classes, MFC)制作。但是大量的Windows API 和消息機制使得其較困難理解,而且模板設(shè)定了固定結(jié)構(gòu),不方便進行編程和維護。Qt 最大的不同就在于語法結(jié)構(gòu)簡單清晰,面向?qū)ο蟮奶卣黧w現(xiàn)比MFC 明顯[13]。
Qt 作為跨平臺的C++圖形用戶界面應(yīng)用程序開發(fā)框架,它封裝了端到端應(yīng)用程序開發(fā)所需的所有基礎(chǔ)結(jié)構(gòu),為程序員開發(fā)多平臺應(yīng)用程序提供了方便[14-16],Qt-Creator是Qt 編程的跨平臺開發(fā)環(huán)境(IDE),作為一款新的輕量級集成開發(fā)環(huán)境主要包括C++代碼編輯器、集成的GUI 外觀、圖像化調(diào)試器等。Qt Creator 極大方便了開發(fā)人員利用Qt 這個應(yīng)用程序框架更加快速、輕易地完成相關(guān)開發(fā)任務(wù)。該文將利用Qt“一處編寫,隨處編譯”的跨平臺解決方案[17]實現(xiàn)瘢痕二維計劃的快速設(shè)計,具體內(nèi)容將在下文介紹。
Qt 模塊之間相互獨立,并為用戶提供了良好的封裝庫[18],使用起來非常方便。為了極大地簡化編程工作,減輕維護負擔(dān),方便將來擴展,結(jié)合瘢痕疙瘩二維計劃設(shè)計的功能需求,該軟件平臺采用模塊化的編程方式開發(fā)(圖1)。該軟件平臺結(jié)合二維計劃功能需要主要分為4 個模塊:① 登錄界面模塊:對該軟件使用者進行身份信息驗證,保障病人信息和計劃設(shè)計的安全性;② 病人數(shù)據(jù)模塊:將病人基本信息登記、存儲起來,便于以后查找分析;③ 計劃設(shè)計模塊:根據(jù)病人瘢痕大小設(shè)置相關(guān)參數(shù)以便得到最終的機器跳數(shù);④ 計劃報告模塊:根據(jù)計劃設(shè)計模塊所給的相關(guān)參數(shù)信息計算出達到靶區(qū)處方劑量所需要的機器跳數(shù),同時顯示射野大小信息,以便再次確認計劃的準確性。4 個模塊涵蓋了二維瘢痕計劃設(shè)計基本流程,操作過程條理清晰。將來隨著軟件的功能需求改變和增加,可以擴展出新的模塊。
圖1 軟件平臺模塊化設(shè)計框架
登錄界面模塊的主要功能是幫助操作員可以正確登錄到瘢痕二維放療快速設(shè)計軟件平臺當中。打開軟件后系統(tǒng)會自動彈出登錄界面,用戶輸入正確用戶名和密碼后,即可進入主界面。該模塊具有控制用戶權(quán)限、保護操作安全的作用,用戶名或者密碼輸入錯誤登錄界面會進行提示,如圖2 所示。
圖2 軟件平臺登錄界面
當用戶輸入正確的用戶名和密碼后便能進入軟件平臺的主界面(圖3)。該界面工具欄涉及計劃設(shè)計流程的主要三要素,即病人數(shù)據(jù)錄入、計劃設(shè)計、計劃報告。信號與槽機制是Qt 的核心機制,用于完成界面操作的響應(yīng),是完成任意兩個Qt 對象之間的通信機制。信號會在某個特定情況或動作下被觸發(fā),槽是等同于接收并處理信號的函數(shù)。三個模塊之間便是通過信號與槽機制進行切換。為了實現(xiàn)鼠標點擊工具欄各個模塊能進入響應(yīng)模塊界面,我們需要將信號與槽進行關(guān)聯(lián)。三個模塊關(guān)聯(lián)方式如下所示:
connect(Patient_Data,SIGNAL(triggered(bool)),this,SLO T(On_Patient_Data(bool)));
connect(Plan_Design,SIGNAL(triggered(bool)),this,SLO T(On_Plan_Design(bool)));
connect(Plan_Report,SIGNAL(triggered(bool)),this,SLOT(On_Plan_Report(bool)));
圖3 軟件平臺主界面
其中Patient_Data、Plan_Design 和Plan_Report 分別對應(yīng)工具欄中的病人數(shù)據(jù)、計劃設(shè)計、計劃報告按鍵,鼠標點擊后會觸發(fā)triggered 信號,On_Patient_Data(bool)、On_Plan_Design(bool)和On_Plan_Report(bool)為觸發(fā)相應(yīng)信號后需要執(zhí)行的函數(shù)。connect 函數(shù)的作用就是將發(fā)射者對象中的信號與接收者中的槽函數(shù)聯(lián)系起來,從而實現(xiàn)模塊之間切換。
病人數(shù)據(jù)模塊用于登記病人的基本信息,病人基本信息包括姓名、性別、ID、年齡等。該界面采用Qt 中的表單布局管理器QFormLayout,它是一個方便的布局類,其中的控件以兩列的形式被布局在表單中。左列包括標簽Qlabel,右列包含輸入控件,如QLineEdit、QSpinBox 等。這種布局讓界面看上去直觀簡潔。為了保存病人重要信息,設(shè)定前四項為必填項目。同時考慮到醫(yī)生特殊需求,該模塊還提供了信息備注欄以便備注重要信息(圖4)。
圖4 病人數(shù)據(jù)模塊
計劃設(shè)計模塊是該軟件平臺的核心模塊(圖5),該模塊用于設(shè)置二維計劃所需要的參數(shù),如射野名稱,處方劑量,處方次數(shù),能量等信息。軟件平臺會根據(jù)我們輸入的射野大小和選擇的限光筒大小信息讀取我們事先通過商用計劃系統(tǒng)計算好的數(shù)據(jù)。為了提高二維計劃設(shè)計速度,可以將該模塊一些固定參數(shù)預(yù)先設(shè)置好。
圖5 計劃設(shè)計模塊
為了便于將來對病人放療信息進行查看分析。我們在該軟件平臺設(shè)計過程中添加了計劃報告模塊,如圖6 所示。計劃報告模塊將呈現(xiàn)出瘢痕病人計劃設(shè)計的基本信息,最重要的是該模塊將顯示達到所需要的處方劑量需要的機器跳數(shù),如圖6 中方框內(nèi)所示。該模塊菜單欄“Print Report”可以對計劃設(shè)計的結(jié)果進行打印便于留底保存。工具欄中的“Show Cone”可以顯示出所用的限光筒和射野大小信息。圖7 顯示的便是采用10×10 的限光筒采用擋鉛形成的6×6 的照射野。“Show Cone”功能方便計劃設(shè)計者再次確認相關(guān)射野參數(shù)信息。值得說明的是在計劃報告模塊還會記錄二維計劃設(shè)計者的名字,以及計劃設(shè)計的時間等信息,這些信息極大方便了將來查看分析。
圖6 軟件平臺制定的一個放療計劃示例
在軟件開發(fā)過程中測試是極其重要的環(huán)節(jié),是軟件質(zhì)量保證的關(guān)鍵,在測試過程中可以發(fā)現(xiàn)軟件的缺點和不足,及時進行改進和修正從而提高軟件的實用性和準確性[19-20]。瘢痕二維放療軟件平臺的測試主要為程序可擴展性和計劃設(shè)計速度兩個方面。
我們首先測試了該軟件平臺在不同操作系統(tǒng)的運行情況,結(jié)合我科室情況,目前科室電腦主要為Windows 7、Windows 10 兩種操作系統(tǒng)。因此我們基于這兩種操作系統(tǒng)進行測試。
我們將由Release 版本生成的TPS.exe 執(zhí)行文件同libgcc_sdw2-1.dll、libstdc++-6.dll、libwinpthread-dll、Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll 六個動態(tài)銜接庫放置于一個文件夾中(大小為21 M)然后拷貝至兩種操作系統(tǒng)中。通過測試發(fā)現(xiàn)該軟件平臺均可以在兩種操作系統(tǒng)上平穩(wěn)運行,軟件平臺各個模塊間切換流暢。
我們將自主開發(fā)的二維瘢痕計劃設(shè)計軟件平臺同科室正在使用的商用計劃系統(tǒng)Pinnacle 9.2 (飛利浦)進行比較測試。該軟件平臺在Windows 7、Windows 10 兩種操作系統(tǒng)上啟動時間低于3 s、Pinnacle 計劃系統(tǒng)啟動到計劃設(shè)計界面需要時間為13 s。分析原因可能是Pinnacle 計劃系統(tǒng)存儲有大量病人數(shù)據(jù),每次啟動需要加載信息較多,所以啟動時間長于我們開發(fā)的軟件平臺。我們模擬了真實的瘢痕病人計劃設(shè)計情況,在Pinnacle 商用計劃系統(tǒng)進行二維瘢痕計劃設(shè)計需要的時間為6 min,在我們開發(fā)的軟件平臺計劃設(shè)計時間為2 min,盡管單個病人計劃只節(jié)省了4 min,但考慮到我們科室每天瘢痕病人可能超過十個,因此我們開發(fā)的軟件平臺更能提高工作效率。值得說明的是Pinnacle商用計劃系統(tǒng)由于價格昂貴,資源緊缺,目前科室并不能保證在每個地方都配置Pinnacle 計劃系統(tǒng)供使用,如定位室。定位室距離計劃設(shè)計室大約有15 min 路程,由于我們開發(fā)的瘢痕二維放療軟件平臺具有很好的移植性,該軟件平臺可以直接放置在定位室的電腦上運行,這將進一步節(jié)省時間。
盡管瘢痕二維計劃設(shè)計簡單,但物理師卻要為每個瘢痕病人做很多重復(fù)工作,這種工作模式效率低下。本文基于Qt 開發(fā)的二維瘢痕快速放療計劃設(shè)計軟件平臺實現(xiàn)了瘢痕疙瘩二維計劃設(shè)計從病人基本信息的錄入,計劃設(shè)計,計劃打印到計劃保存的基本功能,該軟件平臺開發(fā)的交互式界面易于操作、可視化程度高。通過測試該軟件平臺可以在Windows 系統(tǒng)上平穩(wěn)運行。值得一提的是該軟件平臺還可以通過修改數(shù)據(jù)庫用于其他直線加速器。不過該軟件平臺目前還只能應(yīng)用于瘢痕疙瘩的二維電子線放療計劃設(shè)計。將來希望通過功能的完善能夠讓該平臺應(yīng)用于各種二維計劃設(shè)計,如光子線的二維計劃設(shè)計。鑒于該軟件平臺具有良好的可擴展性,未來很容易通過修改完善該平臺的功能??傊?,該軟件平臺實現(xiàn)了功能可擴展和人機交互友好的界面功能,對于實現(xiàn)瘢痕病人的即時放療,增強瘢痕病人的就醫(yī)滿意度具有重要臨床意義。