藥學雜誌電子報106期
106
Vol. 27 No. 1
Mar. 31 2011
中華民國一○○年三月三十一日出版

以PERL應用於健保藥價更改比對


國軍台中總醫院藥劑科藥師
徐俊生、謝永宏、劉孟基、楊東寶、陳俊源

摘要

在藥品管理中,藥事人員在藥學專業方面具有豐富的經驗,但在藥品管理的電腦應用軟體中,藥事人員往往只能遵從已開發藥品軟體之設計方式,未必能夠真正符合日常作業上的需求。在一些臨時性、小規模且不影響系統運作的軟體功能需求上,醫院資訊部門往往將此類案件的優先順序列在較低序位,而在小規模的資訊部門中,甚至沒有多餘人力可以處理這類需求。本文的目的在介紹經由Perl (Practical Extraction and Report Language) 開發出來並使用一段時間的一個健保藥價離線搜尋比對程式,根據此程式所比對的結果,以917筆的藥品資料比對健保用藥品項約7萬9千筆,所需時間不到1分鐘即可完成,不但可以正確迅速地比對出健保給付藥品品項的藥價變更,同時亦可以篩檢出目前健保局所不給付的品項及查無健保碼的品項。此程式不但沒有比對筆數上的限制,而且只需細部修改後亦適用在健保給付的特殊材料上。

關鍵字: PERL、程式、健保藥品給付、藥價更新、National Health Insurance medication、medication price change

壹、研究背景

在藥品管理中,藥事人員在藥學專業方面具有豐富的經驗,但在藥品管理的電腦應用軟體中,藥事人員往往只能遵從已開發藥品軟體之設計方式,未必能夠真正符合日常作業上的需求。在一些臨時性、小規模且不影響系統運作的軟體功能需求上,醫院資訊部門往往將此類案件的優先順序列在較低序位,而在規模較小的資訊部門中甚至沒有多餘人力可以處理這類需求。

在健保實施媒體申報之制度下,各健保特約醫療院所為求健保藥價申報的正確性,每個月均需要到健保局網站下載資料以進行藥價更新的工作。一般的作業流程是申報單位利用健保局網站提供的健保用藥品項檔,下載後逐一比對後更新,在某些醫院的醫療資訊系統 (Hospital Information Systems, HIS) 中有提供較方便的比對功能,只需按幾個按鍵即可完成比對,並正確地更新藥價;而在HIS不具備比對功能的醫院,負責更新藥價的人員必須耗時地以人工比對,具有能力者則以Microsoft Office Excel所提供的函數 (function) 進行比對,更進階者則以Excel VBA發展出具有自動比對功能的巨集 (macro) 來完成此工作1,此不但可達到完全地準確性,且時間上亦較人工比對節省許多。

然Excel對於能夠處理的資料筆數有其侷限性,在目前仍為大多數人所使用的版本Excel 2003其資料筆數最多只能容納65,536 (216) 列2,超過65,536列的文字檔案無法開啟完整顯示,而目前健保局網站所提供的健保用藥品項總壓縮檔資料筆數約為7萬9千筆3,已大大超過Excel 2003所能處理的極限。至於最新版本Excel 2007則可容納1,048,576 (220) 列4,可以符合資料處理需求,但軟體的升級對醫院營運成本上將是一筆不小的開銷,因此在不增加經費前提下尋求更好的解決方案成為我們研究的重點。

貳、研究方法

一、為何使用PERL?

由Larry Wall創造出來的PERL (Practical Extraction and Report Language) 屬於命令稿語言 (scripting language) 的一種,從1988年1月發行第一版至今日已是第五版,是個非常容易學習與使用的程式語言,擁有超強的文字處理功能,也有豐富的封裝群組 (packages) 與模組 (modules),使得它非常適合於檔案輸出與輸入以及存取幾乎所有常用的資料庫系統 (如Oracle, Sybex, SQL Server, ODBC, etc.)5

人類基因計劃 (The Human Genome Project, HGP) 在大約1990年開始雄心勃勃的發展,期望能以國際合作的力量找出人類以及部分實驗動物的完整DNA序列。經過六年的努力,人類以及實驗動物的詳細基因地圖已接近完成(用一連串的標記來安排DNA是決定完整序列的第一步),大規模的人類DAN定序工作也已經在各研究中心展開,將這些一小塊一小塊部分重疊含有DNA訊息的片段定序成有義意的長序列,就像拼圖般地利用演算法來檢查並找出相配的地方以重組成真正的序列並對其實驗加上註解等等。當時研究人員就瞭解到資訊學 (Informatics) 將會在整個基因計劃中扮演很重要的角色,當時兩個最大的研究中心 (英國劍橋與美國定序研究中心) 發展出了一個簡單以PERL為基礎的資料處理核心,其強大的正規表示式 (regular expression) 比對以及字串操作使這個工作變得簡單而沒有其他語言能相比,這也就是Perl大量被拿來使用作為文字處理的原因之一6

PERL倚仗著本身的優點及在基因計劃中大量地被使用的經驗,除了程式執行的環境是可以免費取得的之外,連同開發程式的工具也只要使用Windows內建的記事本或其他免費的文字編緝程式即可 (如:Notepad++、EmEditor、Crimson Edito )7-9,所以將其應用在搜尋健保藥價變更比對的工作是最適合不過的了。

二、程式設計邏輯、架構

本程式設計的邏輯架構是以「醫院藥品檔」比對「健保用藥品項檔」,若「查無健保碼」,表示該項藥品無健保給付或健保碼錯誤,則將該項藥品存入「查無健保碼.csv」檔案中,以進一步查證。若「有此健保碼」則進一步比對「健保藥價」,凡「健保藥價」不同者,則將該項藥品的新藥價及藥品資料存入「藥價更新.csv」檔案中,此即為我們需要更新藥價的品項;若「健保價」相同,則繼續檢查下一筆,直到全部品項比對完成(如圖一)。為了有效利用此一離線 (off-line) 搜尋比對藥價的程式,需完成部份前置作業:

 

圖一 藥價搜尋比對程式設計邏輯、架構

 

(一)安裝Active PERL

為了要在Win32平台下執行PERL程式,需至ActiveState公司下載ActivePERL來安裝PERL的執行環境。目前提供的版本是5.10版,連上ActiveState公司網頁後找到ActivePERL直接下載安裝即可,安裝過程並無需要特別設定之處,只要依畫面指示進行安裝10

(二)藥品檔案的準備

1.健保用藥品項檔:

至中央健康保險局全球資訊網→下載檔案→5.《用藥品項》→下載最新之「健保用藥品項壓縮總檔」,解壓縮後之文字檔檔名為「all-9811.b5」(此處以98年11月的壓縮總檔為例,如圖二),格式及檔名不需做任何修改,直接和搜尋比對的程式放在同一個目錄即可。

2.醫院藥品檔:

將欲進行比對的醫院用藥品項依圖三設定的欄位順序儲存為Excel格式,欄位的名稱不需和圖三相同,但資料必須僅守如圖三的格式(第一欄為藥品代碼、第二欄為健保碼、第三欄為原健保藥價,之後的欄位則不設限),自訂檔案名稱後存成Excel檔,和搜尋比對的程式放在同一個目錄即可。

 

11-1.tif

圖二 健保用藥品項壓縮總檔格式,檔名為all-9811.b5之文字格式

 

11-2.tif

圖三 醫院藥品檔Excel格式

 

(三)搜尋比對程式的執行及特色

本「藥價搜尋比對」PERL程式在設計時保留了許多的彈性,例如:(1)「健保用藥品項檔」的檔名,只要是「all」開頭且結尾為「.b5」者都可以不必修改檔名直接比對。(2)「醫院藥品檔」的檔名不設限,只要是Excel檔即可,唯內容格式的前三欄有固定格式,之後的欄位數量或內容則無限制。(3)同一目錄中若含有先前已比對過的結果(「查無健保碼.csv」或「藥價更新.csv」),在程式執行時會自動判斷並予以刪除,以確保比對的結果是最新的資料。

參、結果與討論

根據此程式比對的結果,以917筆的藥品資料比對健保用藥品項約7萬9千筆,所需時間不到1分鐘即可完成比對工作(圖四)。檢視目錄中比對結果所產生的兩個檔案,在「藥價更新.csv」(圖五)中可以發現各個更新的品項資料,其中「價差百分比」欄位顯示了給付價格異動幅度,如有藥價變動過大的情形,則須考慮健保藥品代碼是否正確等情形。因此在執行比對前,務必先行核對醫院藥品的「健保藥品代碼」可以確保執行的準確性,這是必需的工作,因為涉及「搜尋、比對」的過程,必需要有一個正確無誤可供比對的資料欄,而本程式係使用健保局公告的「藥品代碼」資料欄作為搜尋的依據。比對完成後,負責藥價更新的人員只要依據「藥價更新.csv」的內容,即可正確且迅速地在系統中執行藥價更新的工作。

 

11-3.tif

圖四 執行後的說明訊息

 

11-4.tif

圖五 「藥價更新.csv」

 

在「查無健保碼.csv」(圖六)中,詳列了醫院藥品品項無法比對到「健保用藥品項壓縮總檔」的所有品項,至於為何比對不到健保代碼,其可能原因約為:(1)醫院藥品品項之健保代碼不正確。(2)健保代碼已被更新。(3)健保局尚未核價。(4)健保局不給付品項(如某些指示藥、許可證註/撤銷)。(5)藥價內含於手術或麻醉醫療費用。(6)各醫院TPN申報碼。(7)後天免疫缺乏症候群治療藥品。(8)「門診戒菸治療計劃」之戒菸藥品(9)流感疫苗接種計畫藥品品項。

健保局也定期提供「異動檔」供各醫院下載更新,所謂「異動檔」係指相對於上一次健保局公告異動品項的更新或新增品項,若醫療院所沒有任何新增品項時,其實用這個「異動檔」可以很快地比對做藥價更新的工作;但如果有增加品項,則這個「異動檔」可能不會包含新增的這些品項,因為對健保局而言,這些醫療院所的新增品項並非是「新品項」,但這些品項一定都會在擁有最完整資料的「健保用藥品項壓縮總檔」裡,因此使用壓縮總檔來進行比對是比較完整且不會有遺漏的。

 

11-5.tif

圖六 「查無健保碼.csv」

 

肆、結論

此程式不但可以正確迅速地比對出健保給付藥品品項的藥價變更,同時可以篩檢出目前健保局所不給付的品項及查無健保碼的品項,不但在比對筆數上沒有限制,而且只需細部修改後亦適用在健保給付的特殊材料的比對上。經過不斷地測試及使用後,它可以替負責藥價更新的人員節省許多時間。且Perl程式的原始碼完全開放,使用人員可以自行修改以符合各式各樣的需求。

參考資料:

1. 秦亞惠、回德仁、李勇進:以Excel執行健保藥價更改比對方法。台灣臨床藥學雜誌2002;10(1):45-53。

2. Microsoft技術支援。資料來源:http://support.microsoft.com/kb/120596/zh-tw。擷取日期:2009/11/11。

3. 中央健康保險局,下載檔案,用藥品項。資料來源:http://www.nhi.gov.tw/webdata/webdata.asp?menu=1&menu_id=498&webdata_id=873&WD_ID=。擷取日期:2009/11/11。

4. Microsoft Office Excel 2007產品概觀。資料來源:http://office.microsoft.com/zh-tw/excel/HA101656321028.aspx。擷取日期:2009/11/11。

5. 簡信昌:Perl學習手札。上奇科技,2004。

6. Lincoln Stein: How Perl saved human genome. Perl Journal 1996;1.

7. Notepad++產品介紹及下載。資料來源:http://notepad-plus.sourceforge.net/tw/site.htm。擷取日期:2009/11/11。

8. EmEditor產品介紹及下載。資料來源:http://www.emeditor.com/。擷取日期:2009/11/11。

9. Crim Editor產品介紹及下載。資料來源:http://www.crimsoneditor.com/。擷取日期:2009/11/11。

10. ActivePerl產品介紹及下載。資料來源:http://www.activestate.com/activeperl/。擷取日期:2009/11/11。

 

Applying Rightly in the National Health Insurance Medication Price Change Compared by PERL

Chun-Sheng Hsu, Yung-Hung Hsieh, Meng-Chi Liu,
Tung-Pao Yang, Chun-Yuan Chen
Pharmacist, Taichung Armed Forces General Hospital

Abstract

In the medication management, the pharmacist have the rich experience in the pharmacy specialized aspect, but probably not in the computer application software of medication management. The pharmacist often can only comply with the design of the software, but not truly meet in the daily work demand. In some temporaries, small scale, and does not affect the system operation in the software function demand, the hospital information department is often sort this kind of case in the low foreword position. In other smaller information department, even does not have the necessary technician to be possible to process this kind of demand. The studied hospital has already been developed and used a period of time a National Health Insurance medication price change off-line search compared program. According to this program, the result of applied 917 medications compared to the National Health Insurance medication items approximately 79,000 needs the time less than 1 minute to complete. Not only compare the medicine price change rapidly, correctly, but also pick out the present the National Health Insurance not to pay the item and to look up the National Health Insurance without code the item. This program does not limit the compare items, only needs to be modified is suitable on the special material which the the National Health Insurance pays.