?

“軍衛一號”數據庫字符集升級

2013-07-31 16:16莊紹燕楊保衛
中國醫療設備 2013年11期
關鍵詞:客戶機客戶端服務器

莊紹燕,楊保衛

中國人民解放軍第一八零醫院信息科,福建 泉州 362000

“軍衛一號”數據庫字符集升級

莊紹燕,楊保衛

中國人民解放軍第一八零醫院信息科,福建 泉州 362000

本文分析了“軍衛一號”數據庫的US7ASCII字符集存在的不足,同時介紹了我院“軍衛一號”數據庫升級字符集的總體設計方案和具體實施過程。

軍衛一號信息系統;Oracle數據庫;ASCII編碼;GBK編碼

“軍 衛 一號 ” 系 統 自 1995 年 先 后 在 200 所軍 隊 醫院和 100 多家地方醫院成功運行。最早部署數據庫時只支持US7ASCII字符集。隨著醫院數字化的進一步發展,麻醉系統、心電系統、重癥監護系統、移動護士工作站、圖象歸檔與傳輸系統(PACS)、臨床檢驗信息系統(LIS)等逐步加入“軍字一號”系統。同時,隨著網絡和區域醫療的發展,數據庫間的通信已成為一種趨勢[1-3]。

“軍衛一號”后臺 Oracle 數據庫最早版本為 Oracle7.3,支持的編碼方案是 ASCII編碼。據不完全統計,目前全軍92% 的部隊醫院和 45% 的地方醫院仍然使用 ASCII字符編碼的 Oracle 數據庫[5-6]。由于 ASCII支持的字符數量非常有限,因此隨后又出現很多的編碼方案。隨著數字化醫療的進步,支持 ASCII字符集的數據庫在使用上出現越來越多的弊端。GBK 編碼是 1995 年發布的指導性規范編碼方案[7]。因此,數據庫字符集升級迫在眉睫。本文就我院“軍衛一號”數據庫字符集升級的一些經驗與大家分享。

1 US7ASCII字符集的弊端

近幾年來新構建的數據庫基本以國家標準的 GBK 字符集為基礎,原來的 US7ASCII字符集已經逐漸暴露出許多弊端:

(1)生僻字讀寫困難。有的患者姓名為生僻字,在“軍衛一號”數據庫系統中無法存取,只能存儲相近字并輔以文字說明,使數據庫的唯一性和完整性管理極大不便。

(2)系統間數據通信問題。近些年迅速發展的醫保、農 保、區 域 衛 生醫 療 系統 皆 適 用 GBK 數 據庫 字 符 集?!败娦l一號”內的相關系統與這些系統程序互相通信時,無法通過系統默認的字符集直接通信。多數單位使用時,要通過文本文件交互的方式解決,降低了通信的效率。

(3)客戶機配置字符集困難。醫院內部存在多種不同字符集的數據庫系統。當客戶機同時訪問醫院內部的不同服務器系統時,一臺客戶機同一時刻只能配置一種字符集連接模式,使客戶機配置字符集難度增加。

(4)影響 Web 瀏覽。近些年,數據庫 Web 瀏覽訪問成為趨勢。但基于“軍衛一號”數據庫開發基于 JAVA 的Web 瀏覽系統,應用 ASCII字符集轉換難度大。

(5)部署客戶機繁瑣。部署客戶機時,默認的字符集為 GBK;訪問“軍衛一號”數據庫時,需要手動設置為ASCII,非常繁瑣。

可見,ASCII字符集的使用已經成了制約醫院信息化發展的絆腳石。大多數醫院雖然有這方面的需求,但總是害怕數據庫升級失敗導致醫院數據庫停止運行而沒有對文字集進行升級。以下對我院數據庫字符集升級進行總結性介紹。

2 我院數據庫字符集升級方案

2.1 總體方案

根據 Oracle 官方提供的升級方案,對數據庫字符集進行升級,雖然過程比較簡單,且升級的時間基本可以控制在 30 min 以內,但還是存在一定的風險。如果升級不當,則會造成數據庫的永久損壞。因此,對醫院的數據庫字符集進行升級時需制定一個總體方案。該方案可以簡單描述為備份、測試、制定應急預案。確定升級前,應該做大量測試和字符集升級失敗時的應急預案工作,并對數據庫進行一次冷備份。測試主要針對客戶端一些較早研發的軟件,并要在升級后的數據庫上測試各個軟件升級后的使用情況。

2.2 HIS服務器IP地址修改或DNS名稱修改

字符集升級時,需要考慮醫院的 HIS 客戶端訪問數據庫服務器的方式,如果是通過DNS訪問的,則建議更換數據庫服務器 DNS 名稱和 IP 地址。如果是通過 IP 地址訪問的,則建議更換服務器 IP 地址。在升級數據庫服務器前 3 h 更改客戶端 IP 地址。HIS 服務器 IP 地址參數設置,見表 1。

表1 HIS服務器IP地址參數設置

服務器 IP 地址的更改是整個升級過程中最為關鍵的一步,有著至關重要的意義。主要是因為醫院各信息系統連接數據庫服務器的客戶機數量眾多、且分布比較零散。數據庫升級后,一定要做到寧可有部分客戶端不能訪問數據庫也不能存在部分客戶端通過錯誤的字符集方式訪問數據庫。一旦有沒有修改字符集的客戶端登錄數據庫,會造成數據庫的數據不一致,給將來相關方案的制定造成困難。

2.3 HIS數據庫字符集升級

根據 Oracle 官方提供的文檔,通過自行整理后,數據庫升級步驟如下:

(1)關閉數據庫,并進行數據庫冷備。

(2)在服務器端使用 SQLPLUS 工具做如下修改 :

(3)修改服務器端注冊表 :NLS_LANG=simplified chinese_ china.zhs16gbk。

(4)在服務器端查看字符集:SQL>select userenv(‘language’)from dual。

2.4 客戶端服務器IP地址、字符集參數修改

客戶端訪問數據庫服務器,通常需要設置4個比較重要的參數 :① NLS_LANG ;② 服務器 IP 地址 ;③ 服務名 ;④ 端口號。

為保證升級成功,在升級時服務器修改了 IP 地址,避免客戶端錯誤的字符集連接數據庫服務器。通過修改ORACLE_HOME$db_1 etworkADMINTNSNAME.ORA 文件實現。具體修改說明如下:

緊接著修改注冊表中 NLS_LANG 按鍵的參數值 :

HKEY_LOCAL_MACHINESOFTWAREORACLE HOME0NLS_LANG=simplified_chinese_china.zhs16gbk。

在修改客戶機連接參數時,一定要同時修改服務器 IP 地址和注冊表字符集參數。

3 結束語

修改 HIS 數據庫服務器的字符集,對許多使用“軍衛一號”系統的醫院是一件頭疼的事。其實,到 Oracle8 版本后,數據庫字符集升級并不是一件難事。升級成敗的關鍵不在于數據庫服務器升級本身,而在于如何設計整個升級方案,以確保整個升級過程平穩、順利。

[1] 李懷慶,張文東.基于數據倉庫的醫院信息系統概述[J].中國醫療設備,2008,23(1):53-55.

[2] 楊紅玲,師恩洲.影響HIS的臨床病區代碼問題及解決方案[J].中國醫療設備,2012,27(5):44-46.

[3] 余元龍,王德坤,楊勇.醫院信息化建設的幾點認識[J].現代醫院,2008,(10):4-5.

[4] 樊同科,陶紫瓊.數據倉庫技術及其在醫院信息系統中的應用[J].電腦知識與技術,2009,(9):2051-2052.

[5] 張志彬,白劍坤.HIS系統客戶端軟件自動更新實現[J].醫療裝備,2009,(3):27-28.

[6] 王明實.醫院信息系統[M].北京:科學出版社,2008:89-91.

[7] 國家標準總局.中華人民共和國國家標準信息交換用漢字編碼字符集基本集[S].北京:技術標準出版社,1981:32-36.

Character Set Promotion of “No.1 Military Medical Project” Database

ZHUANG Shao-yan, YANG Bao-wei
Department of Information, The 180thHospital of PLA, Quanzhou Fujian 362000, China

This paper dicusses the deficiencies of US7ASCII character set of “No.1 Military Medical Project” database, and introduces the total design scheme and specific implementation process of the character set promotion of “No.1 Military Medical Project” database in our hospital.

No.1 Military Medical Project; Oracle database; ASCII code; GBK code

TP311.53

A

10.3969/j.issn.1674-1633.2013.11.018

1674-1633(2013)11-0054-02

2013-05-14

2013-06-11

作者郵箱:3817118@qq.com

猜你喜歡
客戶機客戶端服務器
服務器組功能的使用
通信控制服務器(CCS)維護終端的設計與實現
如何看待傳統媒體新聞客戶端的“斷舍離”?
PowerTCP Server Tool
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
隔山亦能打牛,本本巧變遠控利器
計算機網絡安全服務器入侵與防御
升騰瘦客戶機借神碼翱翔“云端”
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合