Browse Category

Computer

AutoHotkey 實戰:RDP 斷線與鎖定 Session 下的 Windows UI 自動化突破(AutoWorklistUpdate 背景排程開發紀錄)

在臨床醫療自動化工作流中,為了隨時掌握放射科資訊系統 (Radiology Information System, RIS) 的待打報告工作清單 (Worklist) 狀態,我設計了一套整合自動化方案:

  1. 背景自動化推送 (Background Automation):透過 Windows 工作排程器 (Task Scheduler) 定時執行獨立的 AutoHotkey Utility 腳本,自動讀取並抓取 RIS 工作清單的未報告筆數。
  2. 資料庫儲存與整合 (Database Integration):將抓取到的工作清單狀態推送到 n8n Webhook,並利用 n8n Data Table 建立一個輕量級的小型資料庫來儲存最新數據。
  3. 隨時手動查詢 (On-demand Query):隨時透過 Telegram Bot 發送指令,手動讀取該 n8n 資料庫中的最新工作清單狀態。

設計此方案的初衷與痛點:
在日常臨床工作中,雖然可以直接透過 VPN 連回醫院主機並開啟 RDP 去查看工作清單,但醫院的 VPN 並非隨時隨地都方便連線;此外,每次開啟電腦、連線 VPN、開 RDP 登入查看的過程也相當耗時且繁瑣。因此,我希望能設計一個更輕量、能快速取得 Worklist 狀態的方案,讓我僅需透過手機 Telegram 發個訊息,就能在幾秒內掌握當前科內報告的累積狀況。

然而,在 Windows 環境下,當試圖在後台自動化 UI 時,遇到一個經典的棘手問題:本機運作完全正常,但只要透過遠端桌面 (Remote Desktop Protocol, RDP) 連線後直接關閉視窗(中斷連線),自動化 UI 便完全卡死或失效。

本文將以完整的時間軸與技術演進紀錄,回顧當初在 RisController 裡開發此功能的過程,深入分析 RDP 斷線後 UI 自動化失效的底層原因,並探討如何透過獨立運作的 AutoWorklistUpdate.v2.ahk 腳本與 UI Automation (UIA) 技術優化,完美突破此限制,實現 24/7 的穩定背景更新。

Keep Reading

Obsidian 多裝置同步最終版

最近慢慢把筆記主力改到 Obsidian,主要的原因還是最近的 AI 浪潮,幻想以後可以用 CLI 的 AI 工具來快速處理這些筆記。但 Obsidian 有個很大的麻煩是不同裝置間的同步,如果要省事,去訂閱官方的 Obsidian Sync 就 ok,不過我就是想省錢嘛!就得想辦法解決同步的問題。這篇就整理一下我最近試用了一些 Obsidian 同步方案的過程。

Keep Reading

NoduleTracker.ahk 開發日誌 (2026/1~3)

來 update 一下最近調整肺結節報告工具的心得,最近越來越覺得它是工作上不可或缺的存在了。

之前只定義了兩組視窗物件對應的 pattern,後來發現其實遠遠不止,陸續擴充到十組左右,雖然依序比對的速度應該也不慢,但還是希望可以盡可能在越前面的組別就 match 到,改用動態命中排序 (Dynamic Pattern Sorting),新增了 PatternStats.ini 統計機制,會記錄每種抓取模式的歷史命中次數,並在啟動時自動調整掃描順序。常用的模式會被排在最前面,大幅減少無效偵測的延遲。

Keep Reading

輔助肺結節 (Lung Nodule) 報告的 AHK 工具

作為放射科醫師,最磨人的工作之一莫過於處理 Lung Nodule (肺結節) 的追蹤報告。在目前的醫院文化中,許多微小、subpleural(肋膜下)的小點,甚至有些根本不具備結節特徵的影像,都被要求詳盡報告。最痛苦的是:你可能要在前後兩份 CT 影像中比對十幾個點,每顆都要手動標註位置、Series 與 Image 序號。

當你看到前一份報告長得像下面這樣,真的會暈倒:

Tiny nodules/GGOs in RUL (Ser/Img:4/13,14,17,20,23,27), RLL (Ser/Img:4/24,28,29,39,46), LUL (Ser/Img:4/13,17) and LLL (Ser/Img:4/24,50) of lung, up to 7mm in LUL. No significant interval change.

為了找回工作的快樂,我決定用 AutoHotkey (AHK) 開發一個小工具。目標很明確:看到 Nodule 時按一下快速鍵,自動紀錄影像位置,最後一鍵產出格式化的文字。

Keep Reading

自架 Misskey instance 拿回資料自主權

最近 Elon Musk 把 Twitter 買下來後,好像亂搞了一陣,隨意大砍員工亂關門之類的,Twitter 上一片風聲鶴唳,覺得遲早會被他玩到倒掉,掀起最新一波逃難潮,至於逃到哪呢?最知名的就是 Mastodon 這種聯邦式的 microblog 服務。

早在幾年前就已經有註冊過 g0v.social 這個 g0v 台灣人社群自架、感覺相對有規模和保障的的帳號,最近也開始比較活躍地使用。不過只要是資料在人手裡,總是沒辦法確保站點會不會倒掉,多年經營付諸流水。就像 blog 要自架一樣,認真考慮起自架一個 microblog 服務。

Keep Reading

自動勾選滿意度問卷 Script

又到年終要趕線上課程時數的時候了,每堂課都要填滿意度問卷,基本上我都是勾非常同意啦!但是用滑鼠點也是要點二十幾下,有點煩,而且問卷會有陷阱,有三題要選非常不同意。

為了節省一點力氣,弄了個 javascript 可以幫我完成這件事,打開 Chrome 的開發人員工具,貼上下列的 code 再執行就 OK 了。

Keep Reading