前言
在數位醫療與健康科技快速發展的浪潮中,臨床資料不僅用於日常照護,更被廣泛應用於醫學研究、AI 模型訓練、跨院臨床試驗與教學展示。然而,病患的醫療紀錄屬於最高敏感等級的個資(Protected Health Information, PHI)。
如果直接將包含病患真實姓名、國民身分證統一編號、聯絡電話、甚至確切就醫時間戳記的資料匯出給研究單位或演算法工程師,將直接違反《個人資料保護法》及國際醫療隱私規範(如美國 HIPAA、歐盟 GDPR),面臨嚴重的法律責任與巨額罰鍰。
今天我們將聚焦於醫療資安的關鍵防線——資料去識別化(De-identification)。我們將參考全球最權威的 HIPAA 安全港法則(Safe Harbor Method),在 Node.js (TypeScript) 後端實作一套去識別化轉譯管線,涵蓋敏感字串遮罩、假名化(Pseudonymization)雜湊,以及在保留臨床時序關聯下至關重要的日期平移技術(Date Shifting)!
一、HIPAA 安全港法則的 18 項識別標識
美國 HIPAA(Health Insurance Portability and Accountability Act)的 Safe Harbor 原則明訂,一份醫療資料若要被認定為合法「去識別化」,必須徹底移除或遮蔽以下 18 類直接或間接識別標識:
1.姓名 (Names)
2.地理資訊 (小於州/縣市,含地址)
3.所有重要日期 (出生、入院、出院等)
4.電話號碼
5.傳真號碼
6.電子郵件信箱
7.社會安全碼 / 身分證字號
8.病歷號 (MRN)
9.健康保險受益人代號
10.帳號 (Account numbers)
11.證照/執照號碼
12.車牌號碼與車輛識別
13.設備序號 (Device IDs)
14.網路 URL
15.網際網路 IP 位址
16.生物特徵 (指紋、聲紋)
17.全臉照片或可辨識圖像
18.其他任何唯一識別特徵
特別注意:年齡若大於 89 歲,必須統一歸類為「90 歲以上(90+)」,以防極少數超高齡者被重新識別(Re-identification)。
二、臨床研究去識別化的核心矛盾:如何保留時序分析價值?
如果將所有日期欄位(birthDate、measuredAt、administeredAt)全部刪除或抹平,這份資料在臨床研究上將變得毫無價值——研究者無法得知病患在給藥後「多久」體溫下降,也無法計算 NEWS 早期預警評分在 24 小時內的惡化斜率。
為了解決這個矛盾,業界採用了 「可逆/一致性日期平移技術(Deterministic Date Shifting)」:
1.為每一位病患隨機生成一個固定範圍的位移天數(例如偏移 -45 天到 +45 天),並儲存在高度加密的對照表或由密鑰推導。
2.該病患的所有事件日期(入院時間、體溫量測時間、給藥時間)一律平移相同天數。
3.優點: 破壞了與真實日曆的關聯(無法比對當天的新聞或特定排班),但完美保留了所有事件之間的相對時序間隔與時差(Delta T)!
三、實作去識別化核心服務
建立 src/services/de-identification.service.ts,實作單向雜湊、字串脫敏與日期位移:
四、FHIR Bundle 去識別化轉換管線實作
建立 src/adapters/fhir-deidentify.adapter.ts。這個模組接收 Day 21 產出的標準 FHIR Document Bundle,徹底脫敏為可安全公開的研究用封包:

五、實機對比測試(脫敏前後輸出)
脫敏前(原始敏感資料):
經過 FhirDeIdentifyAdapter 脫敏後:
所有直接識別項全數抹除,電話被安全剔除,生日平移並抹除日數;體溫與給藥時序同步平移相同天數,成功維持時序分析完整度!
小結
今天我們為智慧醫療平台建立了一道合規的隱私護城河:
1.參照 HIPAA 安全港 18 項指標,釐清了醫療資料外釋時的法規邊界。
2.實作了 HMAC 假名化演算法 與 確定性日期平移技術(Date Shifting),在徹底切斷個人關聯的同時,100% 保留了臨床時序間隔的分析價值。
3.完成了 FhirDeIdentifyAdapter,可將任意標準 FHIR Bundle 轉化為完全合法、可安全共享的去識別化數據集。
除了靜態資料的脫敏外,另一個資安核心是「操作追蹤」——誰在什麼時間偷看了哪位名人的病歷?明天 Day 26 我們將探討:醫療資安防護(二):RBAC 權限控管與 AuditEvent 稽核軌跡留存!