IVDR Compliance & Document Validation Platform
An internal platform I built at Vitrosens Biotechnology that helps in vitro diagnostic teams build and check their IVDR technical documentation. At its core is a deterministic rule engine with more than 75 rules across 15 categories that validates uploaded documents against EU IVDR and ISO standards, with results broken down by severity, category, and standard. It also tracks standards (auto-fetching the IVDR text from EUR-Lex), and bundles more than fifteen scientific tools for IVD validation, from accelerated stability modelling to limit-of-detection curve fitting. Built with FastAPI and React 19.
- Python
- FastAPI
- React
- TypeScript
- SQLite
- Tailwind CSS
- NumPy
- SciPy
- Keycloak
Summary. An internal platform I built at Vitrosens Biotechnology that helps in vitro diagnostic teams build and check their IVDR technical documentation. At its core is a deterministic rule engine that validates uploaded documents against EU IVDR and ISO standards, and around it sit standards tracking and a set of scientific tools for IVD validation.
How a document is validated
The rule engine
The heart of the platform is a rule engine with more than seventy-five deterministic rules grouped into fifteen categories, covering structure, content, tables, templates, and validation. A layer system applies the right rules for each document type and subtype, so a real-time assay sheet is checked differently from a packaging insert. Every finding carries a severity and a category and points back to the part of the standard it comes from. Because the rules are deterministic, the same document always produces the same result. Teams can also add their own rules, which go through a draft and review step before they go live.
Standards, kept current
The platform tracks the standards that matter for IVD work, including ISO 13485, ISO 14971, ISO 20916, EN 13612, and IVDR. It fetches the IVDR text automatically from EUR-Lex and parses it into sections, and a health dashboard flags anything that has gone out of date so it can be refreshed. A compliance check then compares a document against a chosen standard, deterministically, with an optional AI second opinion.
The analysis tools
Around the validation core there are more than fifteen tools for the day-to-day science of IVD validation: accelerated stability modelling with Arrhenius shelf-life projection, limit-of-detection curve fitting, clinical performance metrics such as sensitivity, specificity, and agreement, precision and repeatability, method comparison with Bland-Altman, and hook-effect detection, among others. They turn raw study numbers into the figures and summaries the documentation needs.
Stack and delivery
Python and FastAPI on the back, React 19 with TypeScript, Vite, and Tailwind on the front, SQLite for state, and PyMuPDF and python-docx for reading and writing the documents, with NumPy and SciPy behind the scientific tools. The interface is localized in English and Turkish, sign-in is local or through Keycloak single sign-on, and releases use a blue-green deployment with a health check and automatic rollback. The optional AI features run through an external gateway, so nothing is sent anywhere unless it is configured.
Questions
Does it use AI to validate documents?
No. The 75-plus rules are deterministic and repeatable, so the same document always gives the same result. AI is optional and only used for free-form questions and an optional second-opinion compliance check, through an external gateway, never as the source of truth.
What does it actually check?
Whether an IVD technical document is structured and filled in the way IVDR and the relevant ISO standards require: required sections and fields, table formats, version history, cross-references, and so on, with each finding tied to a category and a severity.