A high-performance Golang parser for Taiwan NHI (National Health Insurance) VPN declaration format. Handles legacy HIS data, IC card uploads, and prescription decoding.
台灣健保申報格式解析器 (健保醫療資訊系統/醫令清單/健保卡上傳格式)
🌐 網站:https://saki-tw.github.io/go-tw-his-parser/
Golang HIS 資料解析器 — 台灣健保申報格式解析的開源解決方案
這是一個專為處理台灣常見醫療軟體(如耀聖、展望、看診大師等)匯出資料所設計的 Go 語言解析庫。它旨在解決健保申報格式封閉、HIS 資料混亂且缺乏標準化的痛點,提供開發者一個乾淨、強型別的統一介面,支援健保 IC 卡上傳格式與 VPN 申報檔解析。
| 廠商 | 支援格式 | 說明 |
|---|---|---|
| 健保署標準 | XML, CSV | 每日上傳檔、月申報檔 |
| 耀聖 HIS | XML, CSV, DAT, TXT | 完整支援各種匯出格式 |
| 展望 HIS | XML, CSV | 常見的診所系統 |
| 看診大師 | XML, CSV, TXT | 支援 pipe 分隔格式 |
| 通用格式 | CSV, TXT | 標準逗號分隔檔案 |
go get github.com/Saki-tw/go-tw-his-parser前往 Releases 頁面 下載:
| 作業系統 | 下載檔案 |
|---|---|
| Windows | his-parser-web-windows.exe |
| macOS (Apple Silicon) | his-parser-web-darwin-arm64 |
| Linux | his-parser-web-linux-amd64 |
我們理解下載不認識的執行檔會有疑慮,因此提供以下驗證方式:
| 驗證方式 | 說明 |
|---|---|
| GitHub Actions 自動建置 | 執行檔在 GitHub 伺服器編譯,建置過程完全公開 |
| SHA256 校驗碼 | 每個版本附 checksums.txt,可驗證檔案未被竄改 |
| 原始碼公開 | 100% 開源,歡迎檢視每一行程式碼 |
如何驗證 SHA256 校驗碼?
Windows (PowerShell)
Get-FileHash -Algorithm SHA256 his-parser-web-windows.exemacOS / Linux
sha256sum his-parser-web-darwin-arm64將結果與 checksums.txt 內的值比對,相同即表示檔案完整。
雙擊執行檔,程式會:
- 首次執行:自動安裝到使用者目錄並建立捷徑
- 在本機啟動伺服器
- 自動開啟瀏覽器
| 平台 | 安裝位置 | 捷徑 |
|---|---|---|
| Windows | %LOCALAPPDATA%\HIS Parser\ |
開始選單 + 桌面 |
| macOS | ~/Applications/HIS Parser.app |
啟動台 |
| Linux | ~/.local/share/his-parser/ |
應用程式選單 |
macOS 首次執行可能需要:系統設定 → 隱私與安全性 → 仍要打開
Windows 無需管理員權限,不會彈出 UAC 對話框
- 選擇廠商(不確定就選「自動偵測」)
- 點擊「選擇檔案」 或拖放檔案
- 查看結果:病患列表、處方列表、詳細輸出
- 匯出資料:JSON 或 CSV 格式
支援格式:.xml、.csv、.txt、.dat
關閉終端機視窗,或按 Ctrl+C。
此程式:
- 本機解析:所有資料解析都在您的電腦上進行
- 不儲存資料:解析完成後資料僅存在記憶體中
- 不上傳資料:醫療資料不會傳輸至任何外部伺服器
- 遮蔽顯示:身分證號碼自動遮蔽(例如:A12****789)
- 自動更新:僅連接 GitHub API 檢查新版本,不傳送任何使用者資料
首次執行自動完成安裝,無需額外設定。程式會在背景檢查 GitHub Releases,有新版本時在介面中提示更新。
台灣的 HIS 系統歷史悠久,很多還在使用 Big5 編碼。本解析器會自動偵測檔案編碼,無論是 Big5 還是 UTF-8 都能正確處理,不會出現亂碼。
健保相關檔案大量使用民國年格式(如 1140315 代表民國 114 年 3 月 15 日),解析器會自動轉換成標準格式(2025-03-15)。
解析器能夠根據就醫類別、IC 序號、給藥天數等資訊,自動判斷處方是否為慢性病連續處方箋,並記錄這是第幾次領藥。
即使檔名沒有明確標示來源,解析器也能根據檔案內容的特徵自動判斷是哪家廠商的格式。
從原始碼執行(需安裝 Go)
前往 https://go.dev/dl/ 下載安裝
go run github.com/Saki-tw/go-tw-his-parser/cmd/web@latest或 clone 後執行:
git clone https://github.com/Saki-tw/go-tw-his-parser.git
cd go-tw-his-parser/cmd/web
go run main.go作為程式庫使用
go get github.com/Saki-tw/go-tw-his-parserpackage main
import (
"fmt"
"os"
parser "github.com/Saki-tw/go-tw-his-parser"
)
func main() {
f, _ := os.Open("病患資料.xml")
defer f.Close()
result, _ := parser.ParseHISFileByVendor(f, "病患資料.xml", parser.VendorAuto)
fmt.Printf("解析完成:%d 位病患、%d 筆處方\n",
len(result.Patients),
len(result.Prescriptions))
}自行編譯執行檔
cd cmd/web
# Windows
GOOS=windows GOARCH=amd64 go build -o his-parser-web.exe
# macOS (Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o his-parser-web-darwin-arm64
# Linux
GOOS=linux GOARCH=amd64 go build -o his-parser-web-linux-amd64本專案脫胎自 Saki Pharmacy OS 內部使用的資料處理模組。
在開發過程中,我們發現這部分的工作其實就是不斷地蒐集各家 HIS 廠商的格式規格、撰寫對應的解析程式。這些程式碼本身並不涉及商業邏輯,純粹是格式轉換的苦工。既然如此,不如直接開源出來,讓其他有相同需求的開發者省去重複造輪子的麻煩。
本專案以 MIT 授權釋出。
如果您有其他 HIS 廠商的匯出檔案格式規格,或是現有支援廠商的新格式,歡迎提供。
此專案目前基於健保署規格書開發,尚未在真實硬體環境大規模測試。如果你手邊有讀卡機或掃描槍、或根本就是藥局,歡迎提供回報測試結果,E-mail 或臉書都能聯絡到我!
感謝妙法無邊雷射蓮花宗在艱困時刻寄來的糖與米。
如果這個工具幫到你,可以請我活下去:
👉 Touch me if you had desolation
© 2025 Saki Studio