跳轉到

資料流程 (Data Flow)

本文件描述系統中關鍵操作的資料流向。

查詢請求流程 (Query Request)

當使用者詢問「查詢糖尿病代碼」時:

  1. Client 發送 JSON-RPC 請求:
    {
      "jsonrpc": "2.0",
      "method": "tools/call",
      "params": {
        "name": "search_medical_codes",
        "arguments": { "keyword": "糖尿病" }
      }
    }
    
  2. Server (server.py) 接收並路由至 search_medical_codes 函式。
  3. Service (icd_service.py) 建構 SQL 查詢:
    SELECT code, description FROM diagnosis 
    WHERE description LIKE '%糖尿病%'
    
  4. Database (icd.db) 執行查詢並回傳 Rows。
  5. Service 將 Rows 轉換為格式化字串。
  6. Server 封裝回應回傳 Client。

資料初始化流程 (ETL)

當容器啟動時:

  1. Server 檢查 /data 目錄下的 DB 檔案是否存在。
  2. 若不存在,Service (__init__) 啟動 ETL 程序:
  3. 讀取原始 Excel/JSON (e.g., icd10cm.xlsx)。
  4. 使用 Pandas 進行資料清洗 (Drop NA, Rename Columns)。
  5. 建立 SQLite Table Schema。
  6. 批次寫入 (Batch Insert) 資料。
  7. 建立索引 (Create Index) 以優化搜尋。
  8. 初始化完成,服務準備就緒。