審核與簽核
醫師在審核頁逐一確認每個條件都對得上原文,再對整條條文簽核。這頁說明逐條件的決定、怎麼直接在審核頁修改邏輯,以及哪些動作會讓簽核失效。
逐條件審核
在「條文審核」選一條條文,預設的「節點審核」分頁中間是判定邏輯,可以切換「大綱」或「結構圖」。點一個條件,右側面板就列出它的機器證據。
面板底部問「這個條件的邏輯正確嗎?」,可以選「接受」(按鈕上寫「接受此邏輯」)、「退回」或「不適用」。決定可以改:再按另一個就多一筆新紀錄,以最新的為準。
右側面板有三個分頁:
- 執行結果
- 這個條件的消融案例:以全部為真當基線,再把它換成 false 或 null,看結果是否如預期改變。有案例失敗時,決定按鈕上方會提醒。
- CQL
- 產生的 CQL 原始碼,唯讀、預設收合。審核以上面兩個分頁的證據為準。
頁首另有四層機器證據的摘要,整條條文共用:
- 結構
- 條件和群組各有幾個,由編譯後的 ELM 反推。
- 對齊
- 和頁首「對照官方 library」選定的官方邏輯比對結構;沒有選就顯示「未指定」。
- 可執行
- 消融案例通過幾個。
- 忠實
- 反向編譯的摘要和原文語意是否一致;邏輯改過之後顯示「需重新驗證」。
每筆決定都記下審核者、時間,以及當下 CQL 與 IR 的雜湊,並寫入 audit_log。每個條件都有決定之後,條文狀態會從「草稿」或「已分析」自動變成「已審核」。
頁首的「需醫師簽核」或「LLM 自動通過 · 可推翻」來自分析時的分類。它們只是標記,不會替任何人簽核。
檢視者只能看:證據都看得到,但沒有決定按鈕,也不能修改邏輯。角色說明見使用者與角色。
修改邏輯
審核者和管理員可以直接在審核頁修改邏輯,不必回工作台。有兩個入口:
- 把「判定邏輯」切到「編輯」:新增、修改、刪除條件;群組可以切換 AND、OR、NOT,加入條件或子群組,或整個移到別的群組。
- 條件旁的選單:編輯此條件、在同一群組新增條件、移至其他群組、用 LLM 重新分析此條件、刪除此條件。
脫離根群組的條件和群組會列在下方的「未連結」區,不影響判斷結果,可以從那裡重新加入群組。
每個條件至少要有一個出處。編輯條件時,「出處(原文依據)」可以連結既有的出處,或在原文裡選取一段文字新增。新增或改寫的引文必須出自原文,否則存檔會被拒絕;分析產生、沒有改過的引文不受這條限制。
按「儲存修改」時,確認視窗會列出新增、修改、刪除了幾項,以及哪些審核決定會失效;可以附上修改說明,記入審核紀錄。存檔時:
- 先檢查 IR,不合法就不存。
- 重新產生 CQL,自動重跑消融驗證。
- 反向編譯要呼叫一次 LLM,所以不自動重跑,只標成「需重新驗證」;在面板按「重新執行反向驗證」手動更新。
- 依簽核與失效的規則讓相關的審核決定失效。
開始編輯時,頁面記下當時 CQL 與 IR 的雜湊(baseHash)。編輯期間如果有人先存檔,你的存檔會收到 409,不會蓋掉對方的修改。畫面會問你要「載入最新版本」,放棄自己的修改;或是「保留我的修改」,內容留著,但無法儲存。
已核准或已鎖定的條文不能改邏輯,要先退回重審,見條文狀態;文件分析中也不能改。在工作台修改邏輯,走的是同一套規則。
「用 LLM 重新分析此條件」把這個條件連同它引用的原文,再送給模型做一次逐條件覆核,其他條件不動。結果以你的名義存成一次邏輯修改,受上面同樣的限制;條件沒有變,就不會讓任何決定失效。這個條件的模型覆核註記會換成這次的結果。
簽核與失效
條件審完之後,切到「簽核前對照」做整條簽核。左邊是原文,游標移到某個條件上,會標出它的出處;右邊逐條列出條件和它的決定,最下面是「整條簽核」,按鈕是「核准此條文」、「退回」和「不適用」。
確認視窗會列出已審幾個條件、還有幾個沒審、有幾個被退回。還有條件沒審也可以簽,視窗只會提醒。簽核以你的帳號記錄。
一次簽核只對應一個版本的邏輯。邏輯一變,跟它有關的決定就會失效:
| 動作 | 條件的決定 | 整條簽核 |
|---|---|---|
| 儲存邏輯修改 | 被修改或刪除的條件失效,其他保留 | 失效 |
| 用 LLM 重新分析此條件 | 條件有變才失效 | 條件有變才失效 |
| 退回重審、解鎖退回 | 保留 | 失效 |
| 在工作台重新分析 | 全部失效 | 失效 |
失效之後,條文狀態依剩下的條件決定重新推導:每個條件都還有決定,就是「已審核」,否則回到「已分析」。在工作台重新分析時,有簽核失效的條文一律回到「已分析」。
失效的決定不會刪除。「審核紀錄」照樣列出,加上刪除線和原因:條件被修改、條件被刪除、邏輯被修改、退回重審、重新分析。
簽核也會擋住一些修改:條文還有有效簽核時,在工作台不能改它的原文或刪除這個任務,整份文件也不能重新切段;已核准或已鎖定的條文不能重新分析。這些都要先退回重審,或重設文件。
條文狀態
條文有六種狀態。整條簽核的決定讓狀態這樣變化,「—」表示狀態不變:
| 目前狀態 | 接受 | 退回 | 不適用 |
|---|---|---|---|
| 草稿 | 已審核 | 草稿 | 已核准 |
| 已分析 | 已審核 | 草稿 | 已核准 |
| 已審核 | 已核准 | 已退回 | 已核准 |
| 已核准 | 已鎖定 | 已退回 | — |
| 已退回 | 已審核 | — | — |
| 已鎖定 | — | — | — |
也就是說,已核准的條文再做一次整條接受,就會鎖定。
逐條件的決定不會讓條文核准,只會在每個條件都有決定時,把「草稿」或「已分析」變成「已審核」。
已核准的條文要修改,先按「退回重審」,審核者和管理員都可以;已鎖定的條文只有管理員能「解鎖退回」。可以填寫原因,記入審核紀錄。退回只讓整條簽核失效,各條件的決定保留,所以狀態回到「已審核」或「已分析」。
修改邏輯、重新分析條件、退回重審、重跑反向驗證,以及每一筆簽核,都會寫入 audit_log。