noteguard / docs /CHANGELOG.md
yumi.h
Add de-identified download, remove FLock.io tech refs, add hackathon footer
6f7e511
|
Raw
History Blame Contribute Delete
4.2 kB
# Changelog
Big changes since the fork of [`NoteGuard/Automatic-PII-preprocessing-tool`](https://github.com/NoteGuard/Automatic-PII-preprocessing-tool),
grouped by pull request / milestone (newest first). Encode Vibe Coding Hackathon — FLock Sovereign AI Challenge (hosted by Encode Hub).
## Live-demo polish — 2026-06-21
Direct UI / docs changes on `main` for the public demo.
- **Download de-identified output** from the Try-it tab: a single sanitised note *or* the full
sanitised dataset, as JSON or CSV — only the de-identified text is exported (raw PHI never leaves).
- Removed FLock.io as a technical reference throughout (UI + docs); kept only the hackathon credit.
- Added a hackathon footer to every tab.
- Simplified the UI copy: dropped model / algorithm names and file / command references; renamed the
"Metrics & Leakage" tab; 1-based note index; 50 sample notes in the browser.
- Fixed the Streamlit `outputs/` path after the app moved to the repo root (the Metrics and Two-Trust
"Run" buttons read / wrote the wrong location).
## [0.0.1] — 2026-06-20 — first release (Gold-RAP restructure & Hugging Face deploy)
Branches `dev/refactor-cleancode` + `feat/hf-spaces-demo`, merged to `main`.
- Reorganised to a Gold-RAP "analysis as a product" layout: `src/` package, `tests/`, `docs/`,
`data/` (inputs), `outputs/` (generated artifacts).
- Renamed package `noteguard/``src/`; British spelling throughout (`recognisers`).
- Packaged via `pyproject.toml` as the single dependency source (removed `requirements.txt`).
- CI (`.github/workflows/ci.yml`) runs `ruff` + `pytest` on every push/PR; added logging.
- Streamlit demo moved to repo root (`streamlit_app.py`); `run_eval.py` moved under `tests/`.
- Hugging Face Spaces (Docker SDK) deploy: `Dockerfile`, README front-matter, `docs/DEPLOY_HF_SPACES.md`.
- Decluttered Claude tooling (eval skill, post-edit hook, local settings) and the root changelog.
## Post-PR #3 hardening — 2026-06-20
Direct fixes on `main` after the team-briefing work.
- Only **date-of-birth** is masked; visit / admission dates are kept (clinically useful). Human-readable
redaction labels (e.g. `[NHS number]`).
- Fixed pseudonym mis-mapping caused by spaCy ORGANIZATION over-tagging.
- Removed the roster / gazetteer feature (kept the metric honest — no circularity).
- Consolidated the frontend on Streamlit; removed the Gradio demo.
## PR #3 — Action items 1–4 from the team briefing — 2026-06-20
- Default spaCy model `en_core_web_lg` (best UK-name recall; clinical transformer tested and rejected).
- **Human-in-the-loop review queue**: low-confidence spans are still redacted *and* flagged for IG
analyst confirmation before SDE-pool admission.
- ORGANIZATION excluded from Presidio's kept entities (it over-tagged labels like "NHS"/"GMC"); NHS
site names caught by a LOCATION rule instead.
- Overlap-safe, priority-ranked span merge (precise rule entities beat broad NER spans).
## PR #2 — UK entity backport — 2026-06-20
- Added `UK_NINO`, `UK_PASSPORT`, `UK_VEHICLE_REGISTRATION` recognisers and comma-separated
NHS-number detection, with format-correct fake surrogates for each.
## PR #1 — NoteGuard de-identification gate — 2026-06-20
Consolidated two parallel implementations into one package.
- One pluggable `Detector` interface: `RuleDetector` / `PresidioDetector`, degrading gracefully to
pure-Python rules when spaCy/Presidio are unavailable.
- Patient-consistent pseudonymisation via a Faker(en_GB) vault + per-patient date-shift; redaction mode.
- Evaluation harness: per-entity precision / recall / F1 **and** a measured residual-leakage rate,
using the dataset's structured patient/admission tables as free ground truth.
- Two-Trust "sanitise-at-source" demo; Streamlit demo UI.
## Initial NoteGuard implementation
- Pure-Python `noteguard` package: rule recognisers (NHS Modulus-11 + context anchor, postcode, date,
phone, email), detection layer, redaction/pseudonymisation transforms, evaluation, pipeline.
- Loads the NHSE synthetic clinical notes (3 CSVs joined on `person_id`/`admission_id`).
## Initial commit
- Fork of `NoteGuard/Automatic-PII-preprocessing-tool`.