Add per-action AI privacy mode

This commit is contained in:
2026-05-27 00:21:16 +08:00
parent 7e329f1d85
commit 5d96c1de6d
15 changed files with 1993 additions and 340 deletions

View File

@@ -5,7 +5,7 @@
仓库地址:
```text
https://gitea.huijutec.cn/admin/HIS_Front_Page.git
https://gitea.huijutec.cn/admin/HIS.git
```
仓库只保存程序、文档和配置说明。不要提交原始 PDF、处理结果、明文密码、`.env` 文件,也不再提交加密本地工作流压缩包。
@@ -31,17 +31,18 @@ README.md
## PostgreSQL 存储约定
目标数据库:
数据库连接信息只放在本地 `.env` 或运行环境变量中,不写入 Gitea。需要配置
```text
主机/IP: DB_HOST
端口: 5432
数据库名: DB_NAME
用户名: DB_USER
表名: Patient_FrontPages
PGHOST
PGPORT
PGDATABASE
PGUSER
PGPASSWORD
PGTABLE
```
脚本会在首次写入时自动创建或迁移 `"Patient_FrontPages"`。表是宽表结构`payload` 中的顶层信息会展开为独立列;不再保存 `payload``parsed_at``created_at``updated_at`
脚本会在首次写入时自动创建或迁移 `PGTABLE` 指向的宽表`payload` 中的顶层信息会展开为独立列;不再保存 `payload``parsed_at``created_at``updated_at`
脚本会为表和全部字段写入 PostgreSQL 注释,数据库客户端中可直接查看每列含义。
@@ -50,7 +51,7 @@ README.md
- `review_logs`:记录人工保存时间、修改字段、修改前后值和人工备注。
- `audit_logs`:记录抽查来源、抽查状态、抽查备注和更新时间。
历史辅助`"Patient_FrontPages_review_logs"``"Patient_FrontPages_audit_logs"` 会自动迁移进主表并删除,最终只保留 `"Patient_FrontPages"` 一张业务表。
历史辅助日志表会自动迁移进主表并删除,最终只保留 `PGTABLE` 指向的一张业务表。
核心列包括:
@@ -85,8 +86,8 @@ README.md
1. 克隆仓库:
```bash
git clone https://gitea.huijutec.cn/admin/HIS_Front_Page.git
cd HIS_Front_Page
git clone https://gitea.huijutec.cn/admin/HIS.git
cd HIS
```
2. 准备目录:
@@ -112,7 +113,7 @@ README.md
```bash
python3 数据处理工作区/02_解析入库/02_患者首页PDF解析与入库.py \
--text-source mineru \
--mineru-url "http://MINERU_HOST:4000/extract"
--mineru-url "$MINERU_URL"
```
也可以先单独转 Markdown
@@ -121,20 +122,20 @@ README.md
python3 数据处理工作区/05_备用读取/05_备用PDF转Markdown_Mineru.py \
-s 待处理-患者首页PDF \
-t 数据处理结果区/06_Mineru_MD \
-u "http://MINERU_HOST:4000/extract"
-u "$MINERU_URL"
```
5. 正式处理并写入 PostgreSQL
```bash
export PGPASSWORD='请填写数据库密码'
export PGPASSWORD='从安全渠道获取数据库密码'
python3 数据处理工作区/02_解析入库/02_患者首页PDF解析与入库.py \
--write-postgres \
--pg-host DB_HOST \
--pg-host "$PGHOST" \
--pg-port 5432 \
--pg-database DB_NAME \
--pg-user DB_USER \
--pg-table Patient_FrontPages
--pg-database "$PGDATABASE" \
--pg-user "$PGUSER" \
--pg-table "$PGTABLE"
unset PGPASSWORD
```
@@ -166,12 +167,14 @@ README.md
http://localhost:8501
```
首次进入会显示登录界面;默认管理员为 `admin`,默认密码为 `change-me`。设置页创建的本地用户会同步作为登录账号,并按权限控制各页面。
首次进入会显示登录界面;默认管理员为 `admin`,默认密码请在本地 `.env` 中通过 `REVIEW_ADMIN_PASSWORD` 设置。设置页创建的本地用户会同步作为登录账号,并按权限控制各页面。
页面顶部显示数据库连接状态、总记录数、需复核数、PDF 数量;顶部页签包括概览、复核、抽查、抽查一览、设置,设置内合并用户与权限、数据库状态和目录信息。复核页默认进入“全部复核数据”,包含需复核、自动修正、已人工复核/已人工修改;左侧选择病例,中间查看 PDF右侧以表格方式编辑摘录字段。点击“复核并保存”后会同步写回 PostgreSQL把 `manual_corrected` 标记为 `true`,自动把 `review_status` 标记为 `reviewed``Patient_Lists.has_front_page/front_page_id/front_page_source_file` 由数据库触发器按住院号自动维护。
复核提示会定位到右侧模块和字段:需要核对的位置标红,无关模块默认收起。人工备注下方会显示修改记录表,主表 `review_logs` 记录修改时间、修改字段、修改前后值和人工备注。
设置页的 AI 核验按钮可分别配置模型/Thinking 和隐私模式。“AI当前项”“AI后5项”“AI后全部”默认均开启隐私模式关闭某个按钮的隐私模式后该按钮对应任务会允许上传基本信息、地址联系人等相关局部内容用于核验和修正。
抽查页可从已人工复核或自动通过记录中随机抽样;右侧和复核页一样显示并可编辑全部结构化信息,下方有人工备注和修改记录。随机抽取不会写入“待抽查”记录,只有点击“归类通过并保存”“归类异常并保存”“归类不确定并保存”后,才把通过、异常、不确定记录写入主表 `audit_logs`;抽查一览展示修改内容、人工备注和更新时间。
PDF 以 `inline` 方式展示,不再作为附件触发保存。浏览器内核不能彻底禁止用户保存已展示内容。
@@ -210,13 +213,13 @@ sed -n '1,50p' 数据处理结果区/04_复核与人工校正/患者首页_复
1. 导出待复核表:
```bash
export PGPASSWORD='请填写数据库密码'
export PGPASSWORD='从安全渠道获取数据库密码'
python3 数据处理工作区/03_人工复核/03_人工复核导出与回写.py export \
--pg-host DB_HOST \
--pg-host "$PGHOST" \
--pg-port 5432 \
--pg-database DB_NAME \
--pg-user DB_USER \
--pg-table Patient_FrontPages
--pg-database "$PGDATABASE" \
--pg-user "$PGUSER" \
--pg-table "$PGTABLE"
unset PGPASSWORD
```
@@ -237,13 +240,13 @@ sed -n '1,50p' 数据处理结果区/04_复核与人工校正/患者首页_复
3. 回写 PostgreSQL
```bash
export PGPASSWORD='请填写数据库密码'
export PGPASSWORD='从安全渠道获取数据库密码'
python3 数据处理工作区/03_人工复核/03_人工复核导出与回写.py import \
--pg-host DB_HOST \
--pg-host "$PGHOST" \
--pg-port 5432 \
--pg-database DB_NAME \
--pg-user DB_USER \
--pg-table Patient_FrontPages
--pg-database "$PGDATABASE" \
--pg-user "$PGUSER" \
--pg-table "$PGTABLE"
unset PGPASSWORD
```
@@ -252,13 +255,13 @@ sed -n '1,50p' 数据处理结果区/04_复核与人工校正/患者首页_复
4. 做数据库体检:
```bash
export PGPASSWORD='请填写数据库密码'
export PGPASSWORD='从安全渠道获取数据库密码'
python3 数据处理工作区/04_质量体检/04_字段核验与数据库体检.py \
--pg-host DB_HOST \
--pg-host "$PGHOST" \
--pg-port 5432 \
--pg-database DB_NAME \
--pg-user DB_USER \
--pg-table Patient_FrontPages
--pg-database "$PGDATABASE" \
--pg-user "$PGUSER" \
--pg-table "$PGTABLE"
unset PGPASSWORD
```