關磊
濉溪縣醫院 信息科,安徽 淮北 235100
醫院系統客戶端的自動更新
關磊
濉溪縣醫院 信息科,安徽 淮北 235100
目的實現整個醫院局域網內基于C/S架構開發的軟件的自動更新。方法針對C/S模式軟件更新不方便的問題,設計一種在同一局域網內基于FTP協議的客戶端自動更新方案,并利用PowerBuilder9.0完成軟件的開發和測試。結果實現了醫院局域網內各客戶端對C/S架構軟件的自動檢測與更新。結論此軟件的應用大大減輕了醫院局域網的維護工作,提高了工作效率。
醫院局域網;程序自動更新;FTP;C/S模式
隨著醫院數字化進程的不斷深入,各種各樣的應用需求不斷增多,軟件更新也更加頻繁。為了更加高效的工作,尋求更加快捷的軟件更新的方式方法已迫在眉睫。
根據醫院工作的特點,醫院信息系統(HIS)軟件選用C/S模式[1]。HIS子模塊較多,各模塊之間相互調用,個性化比較強,并且經常提出應用需求,為此要經常修改操作界面或者增減模塊,這是B/S模式不能滿足的;醫院需要打印電子病歷、化驗單、檢查單、掛號單、申請單等各種不同的書面材料,需要系統很好地與打印機連接,B/S模式在打印功能方面也有些欠缺。盡管C/S模式有很多優點,但還是不能很好地適應醫院各種繁雜的維護工作,而B/S模式的更新、維護工作都很方便。為此,我們可以設置一個自動更新軟件來彌補[2]。因為B/S模式可以說是基于特定通信協議(HTTP)的C/S架構,醫院軟件基礎是C/S模式,有少部分需要與B/S模式共同完成,并不是絕對的C/S模式。
軟件自動更新有兩種方法:① 在局域網內自動更新[2],此方法是利用局域網內已知計算機用戶名和密碼,通過訪問文件服務器的共享文件,再把里面的程序COPY到本地硬盤進行覆蓋,此時如果用戶沒有使用新的版本,這種方法容易造成數據的不一致;② 利用FTP服務器下載文件更新,在同一個局域網內,通過在服務器端存放版本信息文件(.up文件)內部的參數設置文件(ini文件)來判別軟件的版本信息,實行自動更新。
根據醫院客戶端多、容錯率低、要求數據一致性的特點,我們選用利用FTP服務器下載文件這種方法,及時有效地解決了系統軟件更新問題[3]。
我院現信息系統大多是基于PB開發,為了提高兼容性,我們仍選用PB來開發本地客戶端的自動更新程序[4]。
2.1 外部參數文件的設置
更新程序需要有存放參數的配置文件(建立connect. ini文件),存放FTP服務器的IP用戶名及版本號。根據實際情況設置verson 和runname (版本號和需要更新的.exe程序[5-6]),實例如下:

意思就是通過端口21訪問FTP服務器,更新護士站nurse.exe文件,版本號為v.1.0.0.2。
2.2 服務器端設置
在FTP服務器的根目錄下設置一個名為bv1.0.0.2.up的文本文檔文件,其中.up是不可以修改的,而文件名的第一個字母是a~z之間的任意字母標注,當首字母為a時,更新程序會讀出這個文件內的第一行,并以消息盒的形式呈現給用戶。
在FTP服務器用戶的根目錄下存放需要更新的文件列表。其中,要在客戶端刪除的文件用“-”號開頭;在后面加上相對路徑,用“+>”表示要更新到客戶端的哪個路徑下(相對路徑),“+”號表示從FTP服務器端的哪個文件下更新。具體實例如下:

2.3 程序設計
打開pb9.0建立工作組workspace,添加應用application,設置Global Variables的如下全局變量[3]:
string rnewtitle="系統自動更新程序"
/
/自動更新界面的title
string newfilename="sysup.txt"
//上面提到的在FTP服務器中的bv1.0.0.2.up文件會更新此文件名放在客戶端程序根目錄下。
然后建立更新窗口w_renew(圖1):

圖1 程序更新窗口
在窗口上建立st_1文本框用來顯示更顯得版本號,顯示窗口w_renew的open事件代碼如下:
st_2.text="本程序已經有了新的版本,新版本號是:"+version+",請選擇:"
this.title=rnewtitle
最后建立commandbutton命令按鈕,用來實現軟件更新操作,主要說明開始更新調用FTP服務器的單擊click事件:
(1)定義變量和鏈接服務器:

(2)建立函數(Functions):

(3)刪除文件:
//此處可以先對舊文件進行備份,最后再刪除。


(5)更新完畢是否開啟新系統:

在實際工作中,我們還注意到網絡的負載能力和單機的負載能力,并在這方面采取了一些措施。比如:將客戶端進行分組,在軟件更新時間上進行交錯(先外科后內科或者先住院部后門診)[7]。
自動更新系統上線后,給我院的系統軟件實施工程師帶來了極大方便,使全院的軟件更新維護工作輕松了很多,特別是以前對于一些限制人員進入的科室,如ICU、新生兒科、透析室、婦產科這些科室,現在每個科室只要裝個更新軟件,就可以自行更新,不但方便了大家的工作,更提高了工作效率[8]。
[1] 顧希,曹鳴.軟件自動更新的兩種方法[J].醫療衛生裝備,2005, 26(2):38-39,48.
[2] 徐國寶.B/S模式和C/S模式信息協同管理系統的研究與應用[D].廣東:廣州,廣東工業大學,2014.
[3] 趙衛績,劉井蓮.基于FTP協議的客戶端自動更新程序的設計與實現[J].科學技術與工程,2010,10(34):8591-8593.
[4] 王超.基于PowerBuilder應用程序的設計[J].數字技術與應用,2014,(4):153-154.
[5] 周芮.醫院信息系統自動升級的實現[D].吉林:長春,吉林大學, 2006.
[6] 賀廣新.c/s模式下客戶端軟件自動升級的設計與實現[D].陜西:西安,西安電子科技大學,2013.
[7] 王鵬,孟媛.局域網內軟件的自動更新[J].醫療衛生裝備,2009, 30(9):49-50.
[8] 張志彬,白劍坤.HIS系統客戶端軟件自動更新實現[J].醫療裝備,2009,22(3):27-28.
Automatic Update of Hospital Client System
GUAN Lei
Department of Information, Suixi County Hospital, Huaibei Anhui 235100, China
ObjectiveTo realize the automatic update of the software based on C/S architecture in the whole hospital intranet.MethodsFocusing on the inconvenience in the C/S mode software updating process, an automatic update scheme was designed based on FTP protocol in the same local area network. A software was developed and tested by PowerBuilder9.0.ResultsThe automatic detection and renewal of client end of the hospital local area network was realized.ConclusionThe application of the software can greatly reduce the working load in the maintenance of the hospital intranet and increase the work efficiency in the hospital.
hospital intranet; software automatic updating; FTP; C/S mode
TP311.53
A
10.3969/j.issn.1674-1633.2016.03.028
1674-1633(2016)03-0108-03
2015-08-13
2015-09-16
作者郵箱:13201716@qq.com