附件管理作為醫療/業務系統高頻需求,框架將其封裝為獨立 UserControl,支援分類目錄、GUID 關聯業務主鍵、圖片縮略圖/預覽、多檔上傳進度、下載刪除、跨 Winform/WCF/Web 復用,一次整合處處可用。
病人資料分類管理影像資料 (術前 CT/MRI/X光/切片/照片、術中/術後同分類):

隨訪信息附件錄入:

多檔上傳進度即時反饋:

縮略圖列表、勾選刪除:

雙擊大圖預覽:

工具箱拖入 AttachmentControl,後台綁定 GUID 與存儲目錄:

private void SetAttachInfo(PatientInfo info) {
attachBeforeCT.AttachmentGUID = info.BeforeCT;
attachBeforeMRI.AttachmentGUID = info.BeforeMRI;
// ... 其它分類同理
}
private void SetAttachmentPath() {
if (DesignMode) return;
string dir = $"{txtName.Text.Trim()}.{txtIDNumber.Text.Trim()}"; // 姓名.ID 目錄
foreach (var ctrl in new[] { attachBeforeCT, attachBeforeMRI, ... }) {
ctrl.Init(dir, PatientInfo.ID, Portal.gc.LoginInfo.Name);
}
}
public void Init(string attachmentDir, string ownerId, string userId) {
// attachmentDir: 相對存儲目錄分類
// ownerId: 歸屬業務主表主鍵 (GUID)
// userId: 操作用戶,供審計追蹤
}
附件控件下半區 (上傳/列表/預覽/下載/刪除) 為純邏輯封裝,無 Winform 專有依賴:

上層僅需實現 IAttachmentStorage 介面 (Save/Get/Delete/List) 即可遷移至 WCF 服務端或 Web 後端,前端換用 HTML5 上傳組件即可:

此模塊已在十餘個醫療/管理專案穩定運行,是框架「業務通用功能組件化」策略的典型成果。