回文章列表
資訊顧問 2026-07-23 3 min read

牙醫診所預約系統改版踩雷記:序號重整為何全診所預約大亂

一家牙醫診所預約系統改版時,因為「重新排序」這個看似無害的小功能,差點讓候診序號全部錯亂。這篇拆解問題根源與修復邏輯,給正在做預約系統的人參考。

  • <parameter name="summaryPoints">["候診序號重整功能設計不周,會讓低序號病患資料被過濾掉,變成無法排序的孤兒資料","多入口寫入同一張表卻沒有統一資料來源規則,遲早會出現重複序號或來源不一致","改版前先問「這個欄位在系統裡還被誰用」,比急著上線更重要"]
牙醫診所預約系統改版踩雷記:序號重整為何全診所預約大亂

有家牙醫診所的線上預約系統,找我們處理一個聽起來很小的問題:候診序號重整功能會把部分病患的資料搞不見。診所端說法是「系統怪怪的,序號重整之後有些人就消失了」。聽起來像鬼故事,其實是很典型的邏輯設計錯誤。

問題一:搜尋範圍當成資料範圍在用

這套系統原本設計,重整序號時要輸入起始序號和終止序號,系統就照著這個範圍重新排號。乍聽合理,但這兩個欄位原本是給「搜尋列表」用的,只是拿來過濾畫面上顯示哪些資料,不是拿來決定要重整哪些資料。結果診所人員一輸入範圍,系統就真的把範圍外的病患直接排除在重整邏輯外,序號比較低的那批人資料還在,卻永遠排不進新的序號順序,變成系統裡看得到、但邏輯上找不到的孤兒資料。

搜尋條件拿來當資料篩選條件用,是系統設計裡最陰險的一種bug,因為畫面看起來完全正常。

修法:把「問使用者」這一步加回來

我們的解法不是加更多防呆檢查,而是把決定權還給人。改成按下重整按鈕時,先跳出提示框,讓診所櫃檯人員自己輸入新的起始序號,系統只負責從那個號碼往後排,起止欄位回歸原本「畫面顯示範圍」的角色,不再幹涉底層資料處理。這個案例的重點是分清楚兩件事:篩選畫面顯示的邏輯,跟決定資料如何被處理的邏輯,永遠不能共用同一個輸入欄位。

問題二:四顆按鈕,四套自己的規矩

這套預約系統有四種重整方式,依備註、依多人掛號、依來源、還有另一種常規重整。每顆按鈕是不同時期加上去的功能,各自長出各自的防呆邏輯,導致有些按鈕會擋掉已經送出的預約單,有些按鈕完全沒擋,診所人員常常照著慣用的那顆按鈕操作,結果不小心把已經跟病患確認好的預約全部重整掉。我們的做法是把四顆按鈕的防呆規則統一,已送出或已列印的預約單一律鎖住不能被重整動到,行為一致,使用者才不用記四套規則。

問題三:同一張表,三個入口在寫,沒人管來源標籤

診所的預約單有三種產生方式,網站直接預約、櫃檯人工補登、還有批次匯入舊資料。這三個入口都會寫進同一張預約資料表,但寫入時「來源」這個欄位各自表述,有的寫網站,有的留空,有的寫錯批次程式碼。等到要依來源重整序號時,系統偵測到跨來源序號重複,整批作業直接卡住。我們後來新增一套共用的來原始碼規則,統一三個入口的寫入邏輯,付款完成轉正式預約時自動正規化來源標籤,同時保留原始欄位不刪除,方便日後追蹤問題是從哪個入口進來的。

系統會出包,通常不是因為邏輯太複雜,而是因為三個人各自寫了一套自己以為對的規則。