1.企业内部数据,需要脱敏才能对外使用,但大部分内部工具缺少个性化脱敏工具
2.主要用于企业内部使用,行业不限
点击空白处退出提示
1.企业内部数据,需要脱敏才能对外使用,但大部分内部工具缺少个性化脱敏工具
2.主要用于企业内部使用,行业不限
这是一个本地化的数据脱敏桌面工具(pywebview + Flask 架构),所有处理在本机完成,数据不出本机,适用于医疗影像、患者表格等隐私合规场景。
功能模块按代码划分:桌面入口(app.py)负责启动后端线程与桌面窗口;后端服务(server.py)提供文件、规则、预览、处理任务与 SSE 实时推送等 REST 接口;状态管理(state.py)用单例缓存会话数据;配置(config.py)保存枚举与敏感标签;规则引擎(rules_engine.py)是策略中枢,管理规则加载匹配与脱敏原语;脱敏引擎分三块——表格脱敏(excel_masker)、DICOM 标签脱敏(dicom_masker)、普通影像 OCR 脱敏(image_masker);OCR 抽象层(ocr_provider)懒加载 RapidOCR/PaddleOCR;报告模块(report)生成 PDF;前端(static)提供影像、结果、进度等页面。
主要功能:一、Excel/CSV 按列规则做遮盖、随机替换、哈希、清空;二、DICOM 清除患者姓名、ID、机构等敏感标签并保留像素,可导出 DICOM/JPG/PNG;三、JPG/PNG 通过 OCR 识别烧录文字并以黑块、模糊、马赛克覆盖;四、规则可视化配置与持久化;五、影像逐区域标注与手动框选;六、后台处理配合 SSE 实时进度与日志;七、结果前后对比、统计图表、单文件下载、ZIP 打包与 PDF 报告;八、历史记录跨会话管理。OCR 引擎缺失时自动禁用图片识别并提示,其余功能不受影响,支持打包为离线 exe。
本项目为本地化数据脱敏桌面工具,采用 pywebview + Flask 混合架构:原生 WebView2 窗口加载本地 Flask 服务,数据不出本机。
架构上分四层:表现层(原生 HTML/JS 前端)、接口层(Flask REST + SSE)、状态层(进程内加锁单例,缓存文件/规则/检测结果/任务/历史)、引擎层(规则引擎 + Excel/DICOM/Image 三类脱敏器 + OCR 抽象层 + PDF 报告)。数据流为上传→登记→预览检测持久化→用户调整→后台线程处理→SSE 推流→对比导出。
技术栈:Python 3、pywebview、Flask 3、pandas/openpyxl、pydicom、Pillow、rapidocr/paddleocr、reportlab,PyInstaller 打包,前端用 Tailwind 与 EventSource(SSE)。
实现亮点:隐私优先纯本地;OCR 抽象层懒加载且优雅降级;统一规则引擎按 scope 区分方法并持久化;预览即持久化检测框支持逐项动作与手动框选;历史跨会话持久化且剥离大体积预览;冻结环境兼容、OCR 模型随包离线可用;DICOM 多格式导出与边缘羽化遮罩。
难点:多线程并发访问状态的锁与死锁防护;rapidocr 与 paddleocr 结果归一化;DICOM 多模态像素渲染与异常安全写入;预览 base64 大体积传输与历史裁剪;宽松关键词召回与精确分类的误判平衡;PyInstaller 隐藏依赖与模型收集导致调试困难。




评论