SRP 合規與舉證

簽署可核對 · 紀錄可保留 · 操作可問責

合規不是事後補掃描、補 Excel。SRP 把舉證寫進收銀、療程、表單與病歷的既有動作——簽的當刻就鎖住雜湊,遠端就出示意願與私隱通知,診所就能鎖、留、查。

合規性究竟解決什麼? 爭議、稽核或資料主體查詢時,管理層最常被問三句:這個簽名是否在當時、針對當時那份內容簽署?客人遠端簽署時有沒有表明意願並知悉私隱用途?病歷、同意書或藥物紀錄其後若有更正,原始內容是否仍可追溯?SRP 以同一套系統回答,不依賴職員另外掃描紙本。

簽名舉證層常開:證據寫不入,該次簽署不算成功。核對與匯出讀取同一套雜湊。遠端 SMS 驗證碼、醫療硬閘(過敏硬擋、完成即鎖等)則為可選、預設關閉,打開才改變既有流程。

🔏
當刻舉證

簽名、文件雜湊、舉證雜湊與列雜湊鏈同一交易寫入。失敗整次退回。

📱
遠端知情同意

連結可過期、提交一次性。畫面出示電子交易意願與 PICS;可選短訊核身。

📄
密封可覆核

依當時列印版面密封 PDF。線上核對與 Pack v2 匯出同一套雜湊。

🏥
診所鎖留查

病歷可鎖、法律保留擋銷毀、DAR 可匯出、危險藥物帳只可追加。

核心使命:為什麼要把合規嵌進日常作業?

美容門店與醫療診所在真正出事時,紙本簽名夾、聊天紀錄截圖、事後補印的 PDF,往往對不上「當時那一張單」。常見四個斷點:

  1. 簽了但簽的是哪一版內容不清楚:單據其後改過價錢、項目或備註,紙本或螢幕截圖無法證明簽署當刻的內容。
  2. 遠端連結等於「誰拿到誰簽」:沒有過期、沒有一次性提交、沒有意願/私隱通知,爭議時難以說明客人知悉用途。
  3. 簽完仍可靜默改:同一角色再簽覆蓋、病歷整份覆蓋、藥物數量直接改欄,稽核看不到前後值。
  4. 合規動作散落在不同系統:事故在聊天、牌照在 Excel、查閱申請在電郵,管理層無法一頁看到未結事項。
SRP 設計原則:業務操作即舉證;寫不進證據就不算簽成;核對用同一算法重算,而不是另做一份「看起來像」的報告。

做法不是另開一套事後補件流程,而是打通既有收銀發票、療程完成單、動態表單、欠貨提取、薪資確認、庫存/調撥/盤點,以及診所病歷與藥房。畫面簽名與舉證必須在同一筆作業裡完成。舉證失敗則整次簽署退回。

能力體系四條支柱

01 電子簽署 當刻雜湊鏈

每次簽署寫入文件雜湊、簽名雜湊、舉證雜湊與列雜湊鏈,並記錄身分等級、IP 與裝置。同一角色不可靜默覆蓋。

02 遠端同意 意願、PICS、Nonce

連結按文件類型分開,預設約 7 日到期。畫面出示電子交易意願與收集個人資料聲明。每次提交只能用一次,防止重放。

03 密封核對 PDF、verify、Pack v2

以當時正式列印版面密封。其後可用現場重算雜湊對證,並匯出含歷史與核對清單的離線包。

04 醫療營運 鎖、留、查、帳

病歷可鎖定並留改正說明。法律保留擋銷毀與匿名化。DAR/DCR 立案匯出。危險藥物入/出/銷毀分開追加。

一張發票從簽署到可核對

  1. 客人或員工在發票畫面簽名:門店面對面,或透過電郵/訊息送出的簽署連結。
  2. 遠端須通過連結有效性檢查;版面若顯示條款須先接受。功能開啟時再核 SMS 驗證碼。然後原子消耗 Submit Nonce。
  3. 系統把簽名寫入發票,並依當時正式列印版面密封 PDF。
  4. 同一筆作業寫入舉證:文件內容雜湊、簽名雜湊、身分等級、同意版本與裝置環境。發票現場簽署可另掛語音舉證。
  5. 作業成功後,遠端連結才標記已簽。其後可下載密封 PDF,或以核對、匯出包覆核雜湊是否仍吻合。

門店與遠端如何分工

門店現場

收銀、療程完成單、店內填表:職員與客人均在場。員工確認薪資、庫存、調撥、盤點則以登入帳號為身分。發票可依版面設定錄製現場語音,掛到同一簽名舉證。

遠端連結

發票、療程與動態表單的連結不會互用。預設約 7 日到期。打開頁面會留下查看紀錄,提交只能用一次。預設是「持有連結即可簽」;系統資訊打開遠端簽署驗證碼後,核短訊碼升為「已用短訊確認」。

本文件性質:單檔產品與架構介紹,不連線真實 API、不構成法律或專業醫療意見。實際舉證以該店當時簽署紀錄、密封 PDF 與匯出包為準。遠端 SMS 驗證碼的畫面與開關細節見同資料夾 遠端簽署 OTP 介紹

核心亮點:不是補丁,是寫進交易的舉證

合規層刻意跟日常操作綁在同一條資料庫連線,避免「畫面已顯示簽成、證據表卻空白」或「證據先 commit、業務單卻回滾」。

亮點一:舉證常開,失敗即擋簽署
  • 沒有「先簽再補證據」的開關:合規舉證層設計為常開。任何非成功的舉證結果都會擋住該次簽署。
  • 與單據同一筆作業:畫面簽名與舉證必須一起成功,硬失敗才能整筆退回。
  • 只追加、不覆蓋:新簽不改舊列。動態表單允許重封時,只把舊的有效紀錄標為作廢(記下原因與時間),再插入新版本。歷史仍在。
亮點二:舉證失敗時,單據一併退回
  • 不提早完成外層單據:舉證寫入不會先把發票或療程更新提交掉。
  • 舉證失敗:整次簽署退回,避免「有簽名、無當刻版面快照」。
  • 並發保護:同一文件、同一角色在短時間內不會寫出兩筆有效舉證(重封路徑除外)。
亮點三:核對與匯出讀同一套雜湊,不是另做報表
  • 每種文件獨立計算內容:發票、療程、動態表單、會員、欠貨、薪資、庫存、到訪表單各自計算當時規範化內容雜湊。核對時用同一算法重算現場值。
  • 線上核對結果分級:相符、內容不符、舉證雜湊不符、鏈條不符、沒有舉證。比對在伺服器完成,介紹頁不公開比對細節。
  • 匯出包:含有效列、完整歷史、核對摘要、密封 PDF 路徑與錄音證據。唯讀,不改簽署紀錄。
亮點四:遠端可加強核身,預設不改既有遠端簽
  • 驗證碼預設關閉:關則無驗證碼欄,身分維持「持連結即簽」。門店簽署與既有遠端簽署都不會被強迫改流程。
  • 打開才升層:發碼走店舖既有驗證碼短訊通道。舉證只記這次連結已核過碼,不寫手機號碼。系統不會事後改寫歷史紀錄的身分等級。
  • 已簽完頁不顯示驗證碼:與提交掣同一組可簽署條件;提交掣收起時發碼畫面一併收起。

統一簽名舉證層:一筆紀錄寫什麼

所有簽署入口都寫入同一套簽名舉證。紀錄只能追加。沒有開關可跳過寫證據。

寫入時五步

1鎖定這次簽署同一文件、同一角色不會並發寫兩筆有效舉證
2再檢查該角色尚無有效舉證;重封路徑除外
3內容雜湊依該文件類型計算當時規範化內容
4密封 PDF發票/療程依當時列印版面出 PDF;失敗擋簽署
5與單據同一筆成功才完成簽署;失敗則整筆退回

一筆舉證記錄什麼

文件識別文件種類、單號、角色(客人/員工等)、版本;多欄表單可分別舉證
密碼學雜湊簽名、文件內容、舉證與列雜湊鏈,供日後核對
身分與通道店內或遠端、身分等級、簽署員工或會員;遠端另記這次連結
知情同意同意版本與是否已接受
環境快照裝置與簽署時間,供稽核對照
密封與版面密封 PDF 與當時列印版面;動態表單另記畫面版本
關聯發票可掛現場語音;重封可指向上一筆舉證

雜湊如何計算(核對時用同一公式)

核對時用同一套規則重算現場文件雜湊,再對儲存值。當刻沒有可雜湊內容時,空對空視為相符。

覆蓋的簽署場景

發票 invoice 療程完成單 treatment 動態表單 dynamic_form 會員 member 欠貨提取 backorder 薪資確認 wage_confirm 庫存/調撥/盤點 inventory Landing Form landing_form

每種文件有獨立 content provider。遠端簽署目前覆蓋發票、療程完成單與動態表單三類;其餘為門店或已登入職員場景。

遠端 Token 如何避免「拿錯類型的連結」

發票、療程、動態表單使用不同加密金鑰與前綴解碼 Token,不會拿發票 Token 當療程使用。提交時文件類型與 Token 必須一致。

身分保證等級:簽當時用哪種方法確認人

每筆舉證都寫死簽署當時的身分層級。匯出包會帶出這個值。系統不會事後把 link 改成 otp_verified

otp_verified遠端短訊核身
in_person / staff_login門店面對面或已登入職員
link持有有效遠端連結
寫入當時就定死匯出與核對讀同一欄,不作事後升級
門店面對面 in_store in_person

發票客戶/銷售簽名、療程完成單、店內動態表單。人在場,筆在畫面。

員工登入確認 staff_login

薪資確認、庫存、調撥、盤點、動態表單店內封存。依據已登入職員身分。

遠端持有連結 remote link

預設。能打開有效簽署連結即為該次遠端提交的身分層級。OTP 關閉時維持此層。

遠端短訊核身 otp_verified

系統資訊打開「遠端簽署驗證碼」後,提交前須核會員手機驗證碼。舉證只記這次連結已核過碼,不寫手機號碼。

SOD 職責分工

FIG-comp-01-sod

電腦身分保證

SOD 職責分工

職責分工矩陣:不同操作角色分離,避免單人完成高風險交易。

遠端簽署:意願、私隱與一次性提交

遠端簽署覆蓋發票、療程完成單與動態表單。連結按文件類型以不同加密金鑰解碼。

客人遠端畫面結構示意
文件內容

當時發票/療程/表單欄位,與密封所用列印版面同源。

意願與 PICS 通知

電子交易意願句、收集個人資料聲明、轉移說明、查閱/改正權利。動態表單須勾選同意。

簽名區

手寫或裝置簽名。多欄動態表單可分別舉證。

可選簡訊驗證碼 + 提交

僅在開關打開且本頁仍允許簽署時顯示。已簽完頁收起提交掣,驗證碼欄一併不顯示。

客人見到的通知

簽署即表示您確認以上資料真確,並有意按《電子交易條例》以電子方式簽署本表格。

同意版本會寫入舉證。發票條款如版面設定要顯示,遠端提交亦須接受條款。

連結生命週期

發出與開啟

為該文件建立或重用有效連結,預設約 7 日到期。打開頁面會留下查看紀錄,並核發一次性提交憑證,只供這次開啟的頁面使用。

提交

核對連結仍有效且未過期。驗證碼開啟則先核碼。然後消耗一次性提交憑證,再密封 PDF、寫舉證,最後標記已簽。

其後

已簽連結可再開來檢視,提交掣收起,驗證碼欄亦不顯示。失敗提交會留下紀錄。刪除動態表單答案時,仍有效的遠端連結會一併撤銷。

可選 SMS 驗證碼

位置:系統資訊 → 發票鎖單下一張卡「遠端簽署驗證碼」。

關閉(預設)開啟
客人畫面無驗證碼欄,流程與既有遠端簽相同可簽署頁顯示發碼/入碼;已簽完頁不顯示
提交閘放行,身分為持連結即簽先核碼再提交;畫面上的「已驗證」旗標不算數
發碼通道店舖既有驗證碼短訊通道
頻率與有效期同一連結約 60 秒內不可重發;驗證碼約 15 分鐘有效,核對成功即失效
舉證欄位持連結即簽已用短訊確認;不寫手機號碼

無會員手機時應提示缺少手機號碼,而不是讓提交「看起來成功」。詳見 遠端簽署 OTP 介紹頁

密封 PDF、線上核對與匯出包

發票與療程完成單在寫入舉證前,會依當時正式列印版面生成密封 PDF。動態表單在提交或重封時產出密封 PDF,並記錄檔案雜湊與 render 版本。密封失敗會擋住該次簽署。

1 落筆簽名寫入原業務表
2 密封依當時版面出 PDF
3 舉證雜湊、同意、身分入列
4 可核對下載 PDF、verify、export

三個覆核入口

下載密封 PDF

單據畫面提供下載。店內發票可把現場錄音掛到同一筆舉證(版面可設錄音,亦可設簽署前必須錄音)。

線上核對

重算現場文件雜湊,再驗舉證與列雜湊鏈。發票核對會再查門店權限。必須指定簽署角色。

匯出 Pack v2

匯出有效列、完整歷史、核對摘要、密封路徑與錄音編號。唯讀,不改簽署紀錄。

核對狀態怎麼讀: 「相符」表示現場內容與儲存值一致;「內容不符」表示單據其後可能已改;「舉證不符」表示舉證列本身對不上公式;「鏈條不符」表示列雜湊鏈斷;「沒有舉證」表示尚無有效列。管理層應先下載 PDF 再跑核對,兩份一起存檔。

簽完就鎖:幾層鎖各管什麼

合規要防止「簽完再靜默改」。SRP 分幾層鎖,範圍不同,疊加後讓已完成交易對得上密封 PDF 與舉證列。

簽署角色鎖定

同一文件、同一角色已有有效舉證,或畫面簽名位已有該角色筆跡,再簽會被拒。動態表單重封可把舊列標為作廢再開新版本,舊雜湊仍在歷史裡。

發票鎖單

系統資訊可設每月鎖、每日鎖與計數方式。鎖單管財務日期與改單,與簽名角色鎖分開。兩者同時生效時,已完成交易不易再被改到對不上密封 PDF。

動態表單法律保留

答案可標法律保留。是否啟用及保留多久由設定讀取,程式不寫死期限。有保留就拒絕刪除。允許刪除時:答案不再出現在日常畫面、遠端連結撤銷、有效舉證作廢,歷史仍在。

病歷鎖定與改正

診斷紀錄可 lock,記下誰人何時鎖。鎖定後不可整份覆蓋,改正須寫說明並連同時間與職員。已鎖定紀錄可依設定阻擋作廢。完成時是否自動鎖定見下一章「可選硬閘」(預設關)。

操作日誌

FIG-comp-04-operation-log

電腦操作軌跡

操作日誌與審計軌跡

操作日誌:每筆變更留下審計軌跡,包含操作人、時間、IP、變更前後值。

醫療合規營運:一頁看到未結事項

診所版把日常合規收進「合規營運中心」。各模組可在醫療設定獨立開關;總覽只顯示已打開模組的數字。全部關閉則提示相關模組已關閉,不顯示空卡片。

合規營運中心示意(僅已開啟模組出卡)
未結事故incidents
未結投訴complaints
30 日內到期牌照licences
待保養設備equipment
待處理查閱DAR

刷新按鈕有 loading 並 disable,避免重複點擊。下方列出近期紀錄;無數顯示空狀態。

資料主體:法律保留 vs 查閱匯出

法律保留

可按會員或指定紀錄設 active hold(可設結束時間)。hold 生效期間,銷毀與匿名化被擋。會員級 hold 亦擋住其下層紀錄銷毀。查閱匯出不因 hold 停止——保留是為了證據還在,不是為了不給當事人看。

PDPO 查閱與更正申請

申請記入 medical_data_access_request,狀態為 pending/進行中/完成/拒絕/取消。DAR 匯出臨床資料 JSON 套件(會員、過敏、問題清單、診斷、處方、醫囑與近期臨床審計;不含登入密碼)。DCR 匯出不含臨床內容的元資料套件。保留作業可 dry-run,實際銷毀仍受 hold 閘。

臨床問責、牌照、設備

事故

未結個案進入合規中心。可按狀態、嚴重度篩選。處理過程留在系統內,不單靠聊天紀錄。

投訴

可綁會員。未結投訴與事故分開計數,避免「客訴」被當成一般跟進筆記淹沒。

職員牌照

記錄牌照類型、號碼與有效期。中心顯示 30 日內到期數量,按到期日排序。

設備/感染控制/緊急演習

同一設備與應急樞紐。中心顯示 30 日內待保養設備數。感染控制與演習紀錄與設備保養放在同一開關下。

危險藥物電子登記冊

對齊危險藥物登記冊的追加式帳本做法:入貨(receipt)、出給病人(supply)、銷毀(destroy)分開記。數量列不覆蓋、不硬刪;更正用追加 note,並寫入臨床審計。

就診身分核對

每次就診可記錄至少兩項識別類型。只存類型標籤與通過/不通過,不存證件號碼原文。允許類型包括:姓名、出生日期、性別、證件類型標籤、相片、會員編號、電話、地址、其他。

過敏、醫囑與收費對齊

過敏清單、醫囑、藥費對應收銀、病歷完整度檢查,都在醫療合規服務內執行,讓臨床紀錄與收費對得上。過敏衝突是否硬擋開藥/發藥,預設為警告而非硬擋(見下一章)。

可選硬閘:預設關閉,打開才改既有習慣

簽名舉證層常開,是為了「簽了就有證據」。但診所日常開藥、完成病歷、作廢處方的操作習慣不能被新閘默默改掉。因此下列醫療硬閘各自獨立控制,預設關閉。需要危險藥物或病歷不可靜默覆蓋風格的診所,再逐項打開。

設定預設打開之後
過敏硬擋關(只警告)藥物過敏衝突時硬擋開藥/發藥
完成即鎖定診斷完成時自動鎖定病歷
鎖定後禁覆蓋鎖定後禁止整份覆蓋,只允許改正說明
鎖定後禁作廢已鎖定病歷不可作廢
已發放處方禁作廢已發放處方不可作廢
臨床審計臨床審計寫入可核對紀錄;關則只寫系統日誌
發放寫入危險藥物登記藥房發放危險藥物時必須寫入電子登記冊
遠端簽署驗證碼遠端簽署須核簡訊驗證碼
為什麼預設關:硬閘一旦打開,會改變經典開藥、完成、作廢流程。SRP 選擇 opt-in,讓未需要法定硬控的美容門店維持原操作;診所要對齊條例時再逐項開啟,並在合規中心與審計中看到效果。
IP 存取控制

FIG-comp-02-ip-control

電腦存取控制

IP 白名單控制

IP 白名單管控:指定門店 IP 範圍才能登入後台,異地登入需要審批。

管理層可以怎樣覆核

以下用系統已有入口抽樣,不必另做旁路腳本。隱藏按鈕不代表授權;後端會再檢查權限與門店隔離。

  1. 抽一張已簽發票。下載密封 PDF。執行核對(指定文件種類、單號、角色)。匯出包,對核對清單與有效列。
  2. 對身分。店內應為面對面。遠端關驗證碼應為持連結即簽。打開並核碼應為已用短訊確認,且不寫入手機號碼。
  3. 試重簽。同一角色再提交應被拒。動態表單重封應見到舊列作廢、新版本生效。
  4. 遠端連結。打開有查看紀錄;提交成功有提交紀錄。用舊的一次性憑證重放應失敗。已簽頁無提交掣、無驗證碼欄。
  5. 驗證碼開關。關:遠端簽無驗證碼欄,提交成功。開:要發碼與入碼;無手機應提示缺少手機號碼。
  6. 法律保留。動態表單標保留後刪除應被擋。醫療保留期間銷毀應提示禁止銷毀;查閱申請仍可匯出。
  7. 合規中心。只顯示醫療設定已打開模組的數字;全關則提示相關模組已關閉。
  8. 危險藥物。抽一筆出給紀錄;更正應以追加說明出現,原數量列仍在。銷毀無見證職員應失敗。
  9. 身分核對。少於兩項識別類型應無法入帳;不應出現證件號碼原文。
建議抽樣清單(內部覆核)
  • 發票客人簽、發票銷售簽、療程完成單、動態表單店內、動態表單遠端各一張。
  • 欠貨提取、一張庫存確認、一張薪資確認。
  • 一條遠端發票連結(OTP 關)、一條(OTP 開,如該店已開)。
  • 一張已 lock 病歷連改正說明、一筆 DAR 申請、一筆危險藥物出給、一筆銷毀(含見證)。
  • 合規中心:只開事故模組時應只見事故卡;全關應見「相關模組已關閉」。
權限怎麼拆(後端會再查一次)
  • 頁面入口沿用系統權限(例如醫療合規營運中心、系統資訊)。
  • 頁內核對、匯出、下載密封 PDF、敏感財務匯出等另有細部權限。只隱藏畫面按鈕不算授權。發票核對會再隔離門店。
  • 只隱藏畫面按鈕不算授權。發票核對會再隔離門店。
給店東與管理層看:本頁是產品說明,不連線真實系統。數字、卡片數量皆為示意。真實是否「簽得成、核得過」,只以該店當時的簽署紀錄、密封 PDF 與匯出包為準。
Next

相關文章

想把 SRP 合規性|簽署可核對 · 紀錄可保留 · 操作可問責 對應到你的門市?

帶上門市數量、而家用緊咩系統、最想解決嘅三件事。

權限管理

FIG-comp-03-access-rights

電腦權限控管

細部權限管理

細部權限管理:角色權限矩陣,按崗位、分店、功能模組逐項授權。