資訊硬體的二三事 - 中醫學生

Table of Contents

單就編碼這回事來補充說明一下.

※ 引述《gentlwind (ㄉㄊ)》之銘言:
: 補充:很多穴位與藥名也是非BIG5字元.我覺得能正確顯示會比較好
同意.最簡單的測試方式就是打幾個穴位,例如肩"骨翏"ㄌㄧㄠˊ便是.
若HIS系統可以顯示,要嘛有使用造字(如Unicode補完計畫),要嘛HIS是使用Unicode內碼.

Alica: mysql一定有支援unicode啦 不過這是廠商搭配設計的問題07/24 11:45
Alica: 前端廠商的HIS不支援unicode 後端資料庫支援也沒路用07/24 11:46
: 這我就不了解了.多次請人設計mySQL程式.Unicode大多要額外處理才不會變亂碼
: 古老年代我都自己造字.自學以為的概念是內碼對應字體.不過一但去讀「Unicode補完計
: 畫」的說明文件就會發現不是這麼簡單.所以我就懶得弄懂了.

中醫HIS在Windows平台上的編碼輸出入有幾個方向:

健保卡→健保讀卡機↘ +-------+ ↗顯示於螢幕上
|HIS系統| →擷取系統字型後
工作人員鍵盤輸入 ↗ +-------+ ↘列印輸出
↑↓
後端資料庫(MySQL/MSSQL等)

首先,健保卡內儲存的姓名資料都是BIG5碼,長度只有20byte,可存10個中文字的空間.
http://www.nhi.gov.tw/Resource/webdata/21718_1_1030034397-1.xls
所以若姓名有非BIG5範圍的字(例如某水牛伯的堃),健保卡內存資料讀卡時就會跑出*號.
碰到原住民或外國居留人士名字太長的也會被截斷,這時需要手動輸入患者姓名.

Windows平台下東亞語系程式處理的內碼有兩類:一類DBCS(在台灣為BIG5),一類Unicode.
開發Unicode程式比較麻煩,加上健保卡本身就存BIG5,所以多數HIS系統都是用BIG5內碼.
(好幾年前就連長庚大廟的中醫系統也是BIG5;現在不知道有沒有變化?)

BIG5也有好幾個版本.標準BIG5下是連水牛伯的堃都無法顯示,也才會跑出方方土的代稱.
Unicode補完計畫則是使用標準BIG5所保留的造字空間大量引入缺字以及假名/簡體等.
使用造字檔的問題是不同家的造字碼位不同不相容,例如堃這個字可能造在不同碼位.
(Unicode補完計畫的堃造在954A,別家造字檔的954A可能是空碼或對應到別的字)
所以在這邊看到的正確文字可能傳到別處去就變成亂碼了,以後搞電子抽審時會出現問題.

反而資料庫軟體開發時就因應全球化需求,本身都是可以使用各國不同編碼的.
但是前端廠商的HIS系統不改,資料庫支援Unicode也是備而不用而已.
依目前的生態,大概要健保IC卡哪天砍掉重練時改存Unicode才會帶動廠商更新HIS吧...

--

松 山
まつやま
◣ 南港 台北 ◥
Nankou Matsuyama Taihoku


--

All Comments

Edward Lewis avatarEdward Lewis2015-07-28
mysql一定有支援unicode啦 不過這是廠商搭配設計的問題
Lauren avatarLauren2015-07-31
前端廠商的HIS不支援unicode 後端資料庫支援也沒路用
Susan avatarSusan2015-08-02
推,個人意見這幾篇都有M的價值。
Leila avatarLeila2015-08-05
Suhail Hany avatarSuhail Hany2015-08-07
資訊廠商不夠積極是真的
Andrew avatarAndrew2015-08-10
既然IC卡本身用BIG5,官方不改資訊廠商積極也沒用吧…
Queena avatarQueena2015-08-13
要官方有效率很難XD
Hamiltion avatarHamiltion2015-08-15
UNICODE也只是減少*出現機率而已.總有人名字選怪字
Hedwig avatarHedwig2015-08-18
康熙字典在比較新的Unicode版本都收完啦 還出現*就沒輒了
再怎樣總比已知缺字一堆的BIG5強