-
Core OCR modules merged into
src/ocr/andomni_medical_suite/preprocessing/src/ocr/rtl_utils.pysrc/ocr/field_extractor.pysrc/ocr/deduplication.pyomni_medical_suite/preprocessing/compare_raw_vs_printed.py
-
Routing expanded with explicit fallback chains
- Handwriting →
Arabic-handwritten-OCR (Qwen)→QARI→TrOCR - Vocalized Arabic →
QARI - Structured extraction / forms →
Nougat - Printed Arabic fallback →
EasyOCR/PaddleOCR/Tesseract
- Handwriting →
-
Patient-safe deduplication
- Weighted fields: patient name, patient ID, date, diagnosis, medications, template signature
- Same-template / different-patient cases are now intentionally penalized
-
Semantic search path
QdrantMedicalSearchuses Qdrant when configured- Falls back to local fuzzy retrieval when vector dependencies are unavailable
-
New experimental review UI
app/advanced_review_app.pyadded as an experimental review app (Compare / Search / Review tabs)- Not production-ready: missing image upload, Jais proofreading, HF Dataset save, translation, dictionary update
app/gradio_full_hitl.pyremains the official production app (944 lines, all 10 features intact)
-
Packaging and repository hygiene
pyproject.tomlkeepssetuptools.build_metaand now includes Qdrant support- root
requirements-dev.txtreduced to a compatibility wrapper .gitattributesnow tracksdata/**,*.jsonl, and*.parquetwith Git LFS
-
Regression coverage
- RTL fixes
- Field extraction
- Advanced engine routing
- Same-template / different-patient dedup edge case
- Wire
WeightedMedicalDeduplicatorinto API / job processors - Persist search index metadata alongside OCR jobs
- Add upload-and-index flow in the review app
- Add CER/WER batch benchmark fixtures for raw vs preprocessed text
- Store experiment outputs under a dedicated benchmark artifact path instead of the repo root
- Validate Qwen/QARI/Nougat routing on representative medical samples
- Save physician corrections in a single durable schema
- Link corrected text back into search and dedup pipelines
- Surface confidence + routing decisions in the UI for auditability
- Remove obsolete duplicate scripts once imports are verified safe
- Continue collapsing legacy requirement files into
pyproject.tomlextras - Move large benchmark fixtures fully behind Git LFS