Files
PACS/UPP列表处理/数据处理工作区/07_处理程序说明.md
2026-05-25 12:33:24 +08:00

105 lines
4.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 通用图片表格识别处理程序说明
本目录是一套可复用的图片表格 OCR 处理脚手架。默认只提供通用字段和通用数据库结构;用于 UPP、PACS、HIS 或其他任务前,先复制并修改 `01_任务配置.template.json`
## 文件顺序
1. `01_任务配置.template.json`任务名、字段顺序、主唯一键、分类规则、OCR 参数、数据库表名。
2. `02_图片表格OCR归档.py`:处理单个图片批次,输出结构化 JSON、CSV、复核报告和 OCR 缓存。
3. `03_人工复核修正.template.json`:人工修正文件模板。正式修正时复制为 `03_人工复核修正.json`,不要提交真实数据。
4. `04_合并批次结果.py`:扫描 `数据处理结果区`,合并所有 `*-列表归档结果`
5. `05_同步PostgreSQL单表.py`:把合并结果同步到 PostgreSQL 通用 JSONB 单表。
6. `06_PostgreSQL建表结构.template.sql`:通用表结构模板,正式任务可改成业务正式列。
7. `07_处理程序说明.md`:当前说明。
8. `08_本地运行流程.template.sh`:按顺序执行的本地命令模板。
## 首次使用
```bash
cp 数据处理工作区/01_任务配置.template.json 数据处理工作区/01_任务配置.json
cp 数据处理工作区/03_人工复核修正.template.json 数据处理工作区/03_人工复核修正.json
cp 数据处理工作区/06_PostgreSQL建表结构.template.sql 数据处理工作区/06_PostgreSQL建表结构.sql
```
然后人工修改:
- `project_name``record_name`
- `unique_key`
- `fields` 字段顺序、字段类型、必填规则、正则规则。
- `classification.folder_rules`
- `ocr.rows_per_image``ocr.row_height_px`,如果要启用行数漏识别校验。
- `postgres.table_name` 和 SQL 表名。
## 处理单个批次
```bash
export TENCENTCLOUD_SECRET_ID='填入腾讯云 SecretId'
export TENCENTCLOUD_SECRET_KEY='填入腾讯云 SecretKey'
python3 数据处理工作区/02_图片表格OCR归档.py \
--config 数据处理工作区/01_任务配置.json \
--input "待处理-[任务名]图片集群/[批次文件夹名]" \
--output "数据处理结果区/已处理-[任务名]图片集群/[批次文件夹名]-列表归档结果"
```
只用已有 OCR 缓存重建:
```bash
python3 数据处理工作区/02_图片表格OCR归档.py \
--config 数据处理工作区/01_任务配置.json \
--input "待处理-[任务名]图片集群/[批次文件夹名]" \
--output "数据处理结果区/已处理-[任务名]图片集群/[批次文件夹名]-列表归档结果" \
--rebuild-from-cache
```
## 合并和入库
```bash
python3 数据处理工作区/04_合并批次结果.py --config 数据处理工作区/01_任务配置.json
```
如需同步 PostgreSQL
```bash
export WORKFLOW_DB_HOST='数据库主机'
export WORKFLOW_DB_PORT='5432'
export WORKFLOW_DB_NAME='数据库名'
export WORKFLOW_DB_USER='数据库用户'
export WORKFLOW_DB_PASSWORD='数据库密码'
python3 数据处理工作区/05_同步PostgreSQL单表.py \
--input 数据处理结果区/合并_图片表格_结构化.json \
--schema 数据处理工作区/06_PostgreSQL建表结构.sql
```
## 输出文件
单批次输出:
- `图片表格_结构化.json`
- `图片表格_记录.jsonl`
- `图片表格_记录.csv`
- `复核报告.json`
- `重复主键报告.json`
- `缺少主键报告.json`
- `merged_images/`
- `raw_ocr/`
- `信息记录/汇总.json`
合并输出:
- `数据处理结果区/合并_图片表格_结构化.json`
- `数据处理结果区/合并_图片表格_记录.jsonl`
- `数据处理结果区/合并_图片表格_记录.csv`
- `数据处理结果区/信息记录/全局汇总.json`
- `数据处理结果区/信息记录/批次汇总.csv`
- `数据处理结果区/信息记录/重复主键报告.json`
- `数据处理结果区/信息记录/缺少主键报告.json`
## 注意
- 腾讯云密钥、数据库密码只放环境变量。
- `03_人工复核修正.json` 可能含真实业务数据,不要提交。
- `raw_ocr/``merged_images/` 是过程文件,建议保留在本地,便于复核和缓存重建。
- 当前 PostgreSQL 模板采用 `record_data jsonb` 保存业务字段;正式稳定后可把高频查询字段改成独立列。