專案

一般

配置概況

動作

Feature #441

進行中
SC

Phase 2 ER:MAGI 檢傷 backend 串接(契約 v1.0) + 開窗 splash/視窗放大/殭屍防護(v0.9.0)

Feature #441: Phase 2 ER:MAGI 檢傷 backend 串接(契約 v1.0) + 開窗 splash/視窗放大/殭屍防護(v0.9.0)

是由 Sashiba Chou 於 約 2 個月 前加入.

狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-08-11
完成日期:
完成比例:

0%

預估工時:

概述

Phase 2 ER:MAGI 檢傷 backend 串接(契約 v1.0) + 開窗 splash/視窗放大/殭屍防護(v0.9.0)

背景

跨專案協調公告第 18/19 號進入第二波(Phase 2)。①MAGI(急診部門資料 API)正式納入
協調,ER 開窗時由 backend 隨用隨撈檢傷資料,取代原「預跑程式先 POST context」;
②公告 18 §四 ER 改善票:開窗慢、視窗尺寸偏小、殭屍行程。MAGI 契約 v1.0 已凍結、
兩份官方樣本到位,ER 依契約 + 樣本 mock 獨立開發(最後於部屬機整合測試)。

變更內容

1. MAGI 檢傷串接(公告 19 契約 v1.0,方案 A:後端適配成前端已會讀的 v2 結構)

  • backend/magi_service.py(新):
  • fetch_triage(reg_seq):httpx GET /visits/by-registration/{reg_seq}/triage,
    5s timeout;狀態碼 200 帶入、404/422/401/502/503/504 皆降級;任何例外不冒泡、
    一律回 None
    (契約 §4 紅線);502 的 requestId 記 log 供對帳。
  • to_context():MAGI 回應 → 前端 v2 context 結構。只填前端 applyContext 實讀
    路徑
    (age/sex 扁平、triage.chief_complaint/mechanism_text、
    history.past_history_text/allergies.other_text);vitals/gcs/patient.* 前端未讀故不填。
  • 型別寬鬆(str/int/float/None 皆容忍,不用嚴格 model 綁定);
    history 否定字串「無」「無已知用藥過敏史」原樣保留、不當 null。
  • main.py GET /plugin/context?reg_seq=:MAGI 為主 → 預存(預跑程式)備援 → 404
    (決策 1)。MAGI_BASE/MAGI_API_KEY 只存 server .env。
  • 前端小改:page.tsx fetch context 帶 ?reg_seq;PluginAssessment
    composeAllergies + type 加 other_text(承載 MAGI 自由過敏字串)、type 加
    triage_completed;檢傷進行中橫幅(triage_completed:false → 提示資料可能不完整)。
  • requirements.txt 補 httpx;兩份官方樣本存 backend/samples/ 當 fixture。

2. 開窗改善(公告 18 §四 批次 1,純 ER)

  • splash:開窗先秒顯 loading 畫面(spinner +「開啟中…」),GUI 就緒後才
    load_url 真實病歷頁,遮住 WebView2 冷啟延遲。
  • 視窗尺寸放大:1180×860 → 1400×960(config 範本 + 程式 fallback;人體圖免捲動)。
  • 殭屍行程防護:打包 exe(frozen)關窗後 os._exit 強制終止,防 WebView2
    COM/背景執行緒殘留累積;開發/測試(非 frozen)用可捕捉的 sys.exit。

3. 版本

  • version.ts → v0.9.0 + CHANGELOG(Phase 2 里程碑)。

驗收標準

  • magi_service_test.py 22 PASS(trauma 完整 / in_progress 大量 null 容忍 /
    降級實測「真的連不上→None」/ 型別寬鬆 / _norm_sex)
  • test_startup.py 69 PASS(splash 改載入方式 → 同票更新 3 個斷言)、
    test_contract_v11.py 41 PASS
  • smoke 59 PASS(含新增 9.4b:reg_seq query 相容不破壞;backend API 測試門檻)
  • 前端 build + lint 全過
  • MAGI 部屬機整合測試(接 live MAGI,等 API 金鑰 + 部署;公告 19 §一)
  • 實機開窗實測:splash 切換 / 視窗尺寸 / 殭屍行程(frozen 才 os._exit) / 開窗置前(等 SyncHUD S3)

沒有任何資料可供顯示

動作

匯出至 PDF Atom