
信很客氣,但意思清楚:他們不同意其中四筆的判定,附件逐筆說明為什麼認為自己沒有問題。
我把稽核條目調出來,一條一條對。看到第二筆的時候停住了。
那條條目長這樣:
入院記錄應於入院後適時完成。
(入院記錄是病人住進來時醫師寫的第一份紀錄:為什麼住院、目前狀況、初步診斷、打算怎麼處理。它跟出院病歷摘要是一頭一尾兩份東西。)
稽核的同仁判它不合格,理由是入院第三天才完成。單位說第三天完成沒有問題,因為病人第二天才做完檢查、診斷才確定。
兩邊都對。因為那條條目從頭到尾沒有說「適時」是多久。
爭議不在病歷,在條目。而這條條目,是我們自己寫的。
這種信每一輪稽核都會收到幾封。過去的處理方式是開會、討論、形成共識、下次記得。共識留在那幾個人的腦子裡,換一批人就要重來——而條目本身一個字都沒改。規格書沒動,靠每個執行的人記得那些口頭補丁。
而當我打算把稽核交給機器,這件事突然變成繞不過去的前置作業:判準必須先寫得下來,機器才有東西可以執行。
稽核條目的品質決定稽核結果的品質。這句聽起來像廢話,但實務上被忽略得很徹底——大部分稽核表是「參考評鑑基準抄下來、每年小修」長出來的,很少有人從頭檢查過它們判不判得動。
三個門檻:
可判定。 讀完條目就知道該打勾還是打叉,不需要再問人。「適時」「妥善」「必要時」這類詞出現的地方,就是判不動的地方。而且例外必須寫進條目,不能留在資深同仁的腦子裡——腦子裡的例外,只有那個人在場的時候才生效。
可追溯。 判定成立的時候,要指得出證據在哪。不是「整體記載不完整」,是「第 X 項在哪一段沒有出現」。判定跟證據綁在一起,申復才有得談。
無歧義。 兩個不同的人讀同一條,理解要一樣。這一條最難,因為歧義通常是隱形的——寫的人覺得清楚得不得了,因為他腦子裡有情境。
這三件事你天天在做,只是名字不一樣:可判定=斷言要能回傳真或假;可追溯=失敗訊息要指出是哪一行;無歧義=規格寫得夠死,兩個工程師實作出來的東西才會一樣。
原則講完只花三分鐘。難的是接下來這件事:
把一條模糊的條目,改寫成機器判得動的條目,這個動作實際上長什麼樣。
(今天談的是單一條目怎麼變成可執行的斷言;連續量尺上「幾分算 3 分」是另一個問題,第四週有一整篇。)
以下所有條目都是為了說明自己寫的,不是任何院內表單的原文。
改寫前:
入院記錄應於入院後適時完成。
改寫後,它不再是一句話,而是一個有結構的東西:
條目 ID:ADM-001
版本:v3
判定對象:單次住院的入院記錄
適用範圍:住院日數 ≥ 2 日
排除:當日入出院、住院未滿 24 小時轉出、入院 24 小時內死亡
判準:入院記錄首次完成簽署時間 − 入院時間 ≤ 48 小時
證據要求:引用兩個時間戳的原始欄位名稱與值
判定值:符合 / 不符合 / 不適用 / 無法判定
無法判定的條件:任一時間戳無法從提供的文件中取得
這個改寫做了四件事:把形容詞換成可以計算的量;把例外從口頭共識寫進受版控的判準;要求判定必須附證據;以及最後那一項——
判定值有四個,不是兩個。
Day 2 的輸出 schema 留過一格給棄權,我說那是最重要、也最難的一欄。到了條目層次,那一格要兌現成一個值,加一句寫死的「什麼情況算無法判定」——而且會發現一格不夠:棄權有兩種。
符合 / 不符合 是二元的。但實務上有兩種情況不屬於這兩者:
抽樣時代,這兩種情況不需要寫進條目,因為人看到就自己跳過了。人腦有一個很好用的預設值:看不懂的先擱著,等一下問一下。
機器沒有這個預設值。你給它兩個選項,它就會從兩個裡面挑一個。而它挑的那個,通常是「不符合」——因為找不到證據,在它的推論裡就等於「證據不存在」,而證據不存在就等於沒做。
把「無法判定」併進「不合格」,是全量稽核最常見的自殺方式。
為什麼特別致命?因為在抽樣時代,「無法判定」是個位數,人工處理掉就好。全量之後它會跟母體同比例放大。只要調閱的資料裡有百分之幾的病歷缺某個欄位——這在任何一家醫院都是常態,不是異常——那麼這批「不合格」裡就混進了同比例的假案子。
而且它們看起來跟真的一模一樣:有判定、有理由、有信心,只是理由是憑空長出來的。
你們的說法比較短:null 不可以被 coerce 成 false。一模一樣的問題,只是我們付的代價比較貴——我們付的是單位對品管室的信任。

回到開場那一筆。依 v3,入院第三天才完成的那一份仍然不合格——排除條件裡沒有「診斷未確定前的合理延遲」這一項。
我沒有寫進去,因為我不知道怎麼把它寫成判得動的東西。「診斷未確定」要用什麼證據認定?認定不了,寫進排除條件就只是換一個地方放「適時」。
所以 v3 沒有解決那封信,它只是把爭議挪到一個有座標的位置:單位現在可以指著排除條件說「我這種情況不在裡面」,而不是跟我爭一個形容詞。判準寫得下來,不等於第一次就寫得對——差別在於,寫不下來的時候,連錯在哪都指不出來。
改寫前:
醫囑應清楚明確。
(醫囑就是醫師下的處置指示:開什麼藥、多少劑量、什麼時候給、要做哪些檢查。)
這一條沒得改。寫得再長、再文雅,它永遠判不動——「清楚明確」不是判準,是目標。判不動的不要硬改,要拆:
ORD-001 醫囑中是否出現「禁用縮寫清單 v2」內的字樣
ORD-002 劑量單位是否屬於「允許單位清單 v2」
ORD-003 PRN(需要時給藥)醫囑是否同時載明適應症與最短間隔
拆完會發現一件不太舒服的事:原本那條想涵蓋的範圍,比這三條加起來大得多。剩下的怎麼辦?誠實的答案是:目前判不動,先不判,而且要在報告裡寫清楚我們沒判。
假裝判得動的成本,是三個月後有人指著趨勢圖說「我們的醫囑品質有九成五」,而那九成五只涵蓋了三個縮寫與單位的檢查。
改寫不動的條目,通常不是條目,是願景。
「系統要好用」不是驗收條件,「首頁 LCP 低於 2.5 秒」才是。別讓一個量得到的指標,去頂替一個量不到的目標。
改寫前:
跌倒高風險病人應執行防跌措施。
這條表面上比前兩條具體——有對象、有動作。但拆下去會撞牆:
前三個問題都能靠把條目寫細解決。第四個不行。
如果第一線同仁確實做了——調整床欄、換防滑鞋、加了巡視頻次——但這些動作沒有在任何一個欄位留下痕跡,那麼再完美的條目也判不出來。
而模型會判它不合格。它不會判「無法判定」,因為對它來說欄位不是空白,欄位裡有東西,只是沒有它要找的那些東西。
你沒辦法為一個不打 log 的服務寫斷言。同樣的,你也沒辦法為一個不留痕的流程寫稽核條目。
這是寫條目的過程中最意外的收穫:寫條目這個動作,會反過來暴露流程本身缺哪些觀測點。
有幾條最後動的不是條目,是回到單位討論那個動作該不該在系統裡留下紀錄。這件事得單位主管、第一線同仁和資訊單位一起決定——加一個欄位對第一線就是多一個負擔,品管室單方面說要加,加得成也用不好。