Skip to main content

林協霆醫師

在病歷系統中實現 VIM Mode:從四年前的想像到落地

在病歷系統裡面支援 VIM mode

2022年4月時,我曾經發過一篇貼文,描述著我對醫療系統未來的一些想像,包含了一些提醒功能、編輯功能、片語系統等等的。從2024年開始參與醫院系統的開發,漸漸的把自己當年的想像一一實現,其中最重要的一塊拼圖,就是使用 VIM 模式,當時我曾經寫下希望系統可以支援。但那時候有人跑來留言說光看「就覺得只是一個理想」。

結果過了四年之後,叫出了Claude Code,請它深入研究各種可行的方案之後,整合 monaco Editor 的API,然後再參考了不同的套件,避免重新發明輪子,最後成功把 VIM 模式裝在自己的病歷系統中,雖然跟完整版的 VIM 來說還是有些功能不支援,但是基本的三模式、移動、選擇,都是沒有什麼問題的。

除了 vim 以外,現在的編輯器還有以下功能:

  • 動態片語,例如打CEA就會載入病人最新的數值、也支援vitals 、order.morphine 會展開目前的嗎啡劑量
  • 日期展開,打today 就會顯示目前的日期、day+5 展開成五天後的日期
  • Placeholder ___ 按下tab就可以在不同的 ___ 之間跳轉
  • 語法提示,移動到某一個日期上面,會自動計算天數、YYYY/MM/DD 轉成 YYYY-MM-DD 的 code action
  • 語法高量,一些常用的單字,我有把它設定成特殊顏色,例如 s/p
  • 所有用 # 開頭的行用粗體
  • 拼字檢查,已加入常用腫瘤科藥物 (預計加入商品名 / 學名轉換)

原始 Facebook 貼文:連結