Skip to content

About

This is an app that notifies when a number has arrived or will be seeing the doctor in short term of time. Mainly for research assistants.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

🏥 NTUHNotifier

Intelligent Outpatient Queue Calling & Real-Time Alert Chrome Extension (Manifest V3)

GitHub Stars License: MIT Chrome Extension Browser Support PRs Welcome


NTUHNotifier Chrome Extension Preview

專為臺大醫院(NTUH)臨床研究助理、醫療人員與門診病友打造的輕量即時看診燈號追蹤擴充功能。


📖 目錄 (Table of Contents)


🌟 產品簡介 (Overview)

在大型綜合型醫學中心如國立臺灣大學醫學院附設醫院(NTUH),門診叫號往往受到臨床處置、教學巡診與病人病情複雜度影響,時間變動極大。臨床研究助理(RA)常需在各診間往返收案,病患與陪同家屬亦常受困於擁擠的候診區。

NTUHNotifier 採用 Google Chrome 最新 Manifest V3 標準架構,在瀏覽器後台透過 Service Worker 與 Chrome Alarms API 定時輪詢臺大醫院公開門診進度,在目標號碼接近或到達時立即發出原生系統推播通知與警示音,實現「免盯盤、不漏診」的智慧候診體驗。


✨ 核心功能 (Key Features)

  • ⏱️ 背景定時監控 (Silent Background Polling):運用 Chrome Alarms API,即使關閉彈出面板也能在背景靜默輪詢門診最新看診燈號。
  • 🔔 前置提前提醒 (Smart Early Warning):支援設定提前 N 號提醒(例如前 3 號通知),為您爭取前往診間或完成前置檢查的黃金時間。
  • 📋 多診間同步追蹤 (Multi-Clinic Tracking):支援同時儲存與監控多組不同科別與診間號碼,卡片化呈現各診即時狀態。
  • 🔊 雙重通知機制 (Desktop & Sound Alerts):整合瀏覽器原生桌面推播通知(Notifications API)與音效警示,重要叫號不漏接。
  • 🍃 超低資源消耗 (Zero Cloud Reliance):輕量純 JavaScript 架構,直接對院方公開資料進行客戶端解析,零伺服器開銷、零資料外洩。

🏗️ 系統運作架構 (System Architecture)

sequenceDiagram
    autonumber
    actor User as 使用者 / 研究助理
    participant Popup as Extension Popup (UI)
    participant Worker as Service Worker (Background)
    participant NTUH as 臺大醫院門診公開伺服器
    participant OS as 作業系統原生通知

    User->>Popup: 輸入診間公開網址與目標號碼
    Popup->>Worker: 儲存任務至 chrome.storage.local
    loop 每 60 秒定時鬧鐘 (Chrome Alarms)
        Worker->>NTUH: 發送 HTTP GET 查詢看診燈號 HTML
        NTUH-->>Worker: 回傳即時診間進度
        Worker->>Worker: 進行 DOM 解析與燈號比對
        alt 當前燈號接近 (目標號 - 3) 或 已叫號
            Worker->>OS: 觸發 chrome.notifications.create
            OS-->>User: 彈出 Windows/macOS 桌面警示視窗與提示音
        end
    end
Loading

🚀 安裝指南 (Installation)

本擴充功能支援 Google Chrome、Microsoft Edge、Brave 等所有 Chromium 核心瀏覽器:

  1. 取得程式碼:
    git clone https://github.com/ian030590/NTUHNotifier.git
  2. 開啟瀏覽器擴充功能頁面:
    • 在網址列輸入 chrome://extensions/ (Edge 請輸入 edge://extensions/)。
  3. 啟用開發人員模式:
    • 開啟右上角的 「開發人員模式」 (Developer mode) 開關。
  4. 載入擴充功能:
    • 點擊左上角 「載入未封裝項目」 (Load unpacked) 按鈕。
    • 選擇選取本專案目錄 NTUHNotifier/ 資料夾。
  5. 釘選至工具列:
    • 於瀏覽器右上角擴充功能清單中將 NTUH Notifier 釘選至工具列,隨時點開查看。

💡 使用指南 (Usage Guide)

  1. 前往 臺大醫院門診看診進度查詢網頁。
  2. 找到您所掛號的科別與診間,複製該診間的網址(或於該頁面點擊擴充功能圖示)。
  3. 點擊瀏覽器工具列上的 NTUH Notifier 圖示。
  4. 點選 「新增追蹤門診」,輸入欲追蹤的診號。
  5. 點擊 「確定」,擴充功能即開始常駐背景監控,您可以放心瀏覽其他網頁或進行日常工作。

📁 專案結構 (Directory Structure)

NTUHNotifier/
├── assets/
│   └── screenshot.png       # 專案預覽與使用介面截圖
├── images/                  # 擴充功能不同尺寸之圖示 (16x16, 48x48, 128x128)
├── manifest.json            # Chrome Extension Manifest V3 規範設定檔
├── background.js            # Service Worker 背景排程與通知觸發邏輯
├── content_script.js        # 網頁內容萃取與 DOM 注入腳本
├── popup.html               # 擴充功能彈出式 UI 面板視窗
├── popup.js                 # 彈出介面互動、號碼儲存與狀態渲染
└── README.md                # 專案詳細說明文檔

🔒 權限聲明與安全性 (Security & Permissions)

本專案恪遵最小權限原則(Principle of Least Privilege):

權限項目 (Permission) 用途說明
alarms 註冊背景輕量定時器,每隔固定週期自動檢查診號。
notifications 號碼到達或即將到達時發送原生桌面通知。
storage 於使用者本機儲存追蹤之診間與診號,不涉及任何雲端同步。
https://reg.ntuh.gov.tw/* 僅限抓取臺大醫院公開之門診進度資料,不觸及其他網站。

📄 授權協議 (License)

本專案採用 MIT License 授權釋出。

Crafted with ❤️ by Ian.

About

This is an app that notifies when a number has arrived or will be seeing the doctor in short term of time. Mainly for research assistants.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages