Modernizing a clinical-trial platform inside a validated environment

Project Overview
Industry
Clinical research (CRO)
Pharmacovigilance
Engagement
Dedicated development team
Since 2022
Domain
Clinical-trial management: CTMS, eTMF, RBQM, site analytics
Services
Frontend modernization
Full-stack development
Power BI
Technologies
React, MUI, Redux, Vite
.NET, C#
Power BI, DAX
At a glance
What it is
A European CRO's in-house clinical-trial intelligence platform.
- Trial management (CTMS) and document archiving (eTMF)
- Risk-Based Quality Management and site analytics
- Runs under 21 CFR Part 11, GCP, and EU CTR
How we're involved
A dedicated engineer embedded in the client's process since 2022.
- Lead engineer inside the client's Scrum team
- Frontend migration, then full-stack, then Power BI
- Access through isolated virtual machines
What Bluepes does
Long-term engineering inside a regulated product.
- Modernization without pausing validated releases
- Frontend, backend, and BI in one engagement
- Delivery aligned to Computer System Validation
About the Project
Background
The client is a European contract research organization running its own clinical-trial intelligence platform — trial management (CTMS), document archiving (eTMF), risk-based quality management, site analytics, and reporting. The platform operates under 21 CFR Part 11, Good Clinical Practice, ICH guidelines, and the EU Clinical Trials Regulation, and it handles patient-safety data: adverse events, lab values, deviations, and key risk indicators.
What the client needed
Parts of the platform's frontend were built on K2, a legacy workflow tool that was hard to maintain and out of step with the rest of the React interface. The internal team knew the product well but did not have the capacity to rewrite legacy screens while continuing regular feature delivery. They needed a dedicated team that could work long-term inside a regulated environment, match the client's release rhythm, and take on more responsibility over time. Every change goes through Computer System Validation before it reaches production, so pausing delivery for a large rewrite was not an option.
Why this project is engineering-complex
Change control under CSV
Every change is validated before it reaches production.
- Documentation and QA sign-off per release
- No feature freeze for a big rewrite
- Validation evidence collected each sprint
Legacy inside a live product
K2 screens modernized while features keep shipping.
- A legacy workflow tool, hard to maintain
- Out of step with the React interface
- Rebuilt screen by screen, not all at once
Patient-safety data
The platform supports safety-critical decisions.
- Adverse events, lab values, deviations, KRIs
- Engineering quality has downstream effects
- Clinical-data standards: CDISC, MedDRA
Outcomes
A modernized frontend
Legacy K2 replaced with a current React codebase.
- Class components rewritten to Hooks
- ~40 screens moved to MUI DataGrid
- Build migrated from Webpack to Vite
Scope that grew with trust
From frontend-only to full-stack over four years.
- Expanded into .NET and C# backend work
- Lead engineer still embedded in the team
- A second engineer added at peak demand
Clinical-operations reporting
Power BI for the clinical-operations team.
- Two new dashboards on the client's data
- Existing reports fixed and tuned
- R visuals for views standard charts miss
Working inside a validated environment
Delivery under change control
Under Computer System Validation, every change to the platform is documented, QA-signed, and released through the client's change-control process. That rules out big-bang rewrites: a long feature freeze is not an option, so modernization happens in small, validated increments woven into the normal sprint. The team works inside the client's tools and security perimeter rather than as a separate vendor track. Day-to-day practices that keep delivery compliant and moving:
- Validation evidence collected as part of each sprint, not bolted on at the end
- Access through isolated virtual machines, with permissions limited to the modules the team owns
- Security-policy sign-off and the client's monitoring and audit tooling
- Screen-by-screen modernization, so feature delivery never freezes for a rewrite
- Library and toolchain upgrades staged in increments that each pass review and validation
What we delivered
Frontend migration: K2 to React
- Replaced legacy K2 screens with React
- Tables, forms, and API integration
- Across multiple platform modules
Codebase refactor & toolchain
- Class components to functional + Hooks
- Upgraded React, MUI, and Redux
- Build moved from Webpack to Vite
MUI DataGrid migration
- ~40 screens moved to DataGrid
- Pagination and column controls
- Loaders and skeletons for larger datasets
Full-stack expansion (.NET / C#)
- Backend work alongside the interface
- Scope grew over four years
- One embedded lead engineer
Power BI clinical-ops dashboards
- Two dashboards for clinical operations
- Fixed and tuned existing reports
- R visuals for non-standard views
Patient visit-timeline
- Expected vs actual study-stage dates
- Modeled in the data layer, not the visual
- DAX measures for protocol edge cases
Engineering challenges we solved
Modernizing without pausing validated releases
The platform ships under CSV, so a long rewrite freeze was off the table.
- Modernized screen by screen
- Each increment passed review and validation
- Woven into the normal sprint cycle
- ~40 screens migrated to DataGrid alone
A patient timeline when patients don't follow the protocol
The clean-data assumption broke: patients skipped stages, attended out of order, or moved to amended protocols.
- Restructured the data layer
- Per-patient stage names and dates
- DAX measures for the edge cases
- The visual stayed simple
Upgrades on a live, regulated codebase
Major library and build changes had to land without disrupting releases.
- React, MUI, and Redux upgraded in steps
- Webpack replaced with Vite
- Each change validated before production
Our Approach
Step 1 — Onboarding into the client's process
- Join the Scrum team and release rhythm
- Set up VM-isolated access
- Sign security-policy documentation
Step 2 — Plan within change control
- Scope increments that pass CSV
- Sequence work to avoid release freezes
- Agree validation evidence per sprint
Step 3 — Build and modernize incrementally
- Replace legacy screens with React
- Refactor and upgrade in small steps
- Expand from frontend to full-stack
Step 4 — Validate and release
- QA sign-off and CSV documentation
- Release through the client's change control
- No feature freeze for a rewrite
Step 5 — Support and grow scope
- Maintain and improve on real usage
- Take on more responsibility over time
- Add Power BI when the need appeared



Need a dedicated team for a regulated platform?
We work as part of your engineering team, inside your tools and your security perimeter.
Discuss a dedicated teamProjects


Software Product Development for MasMovil Group
/ telecommunication
/ product_development
/ software_development


SuperYachtsMonaco — sale, purchase and charter of yachts of all sizes
/ e-commerce
/ project_management
/ software_development



Healthcare Platform Project Development
/ health-tech
/ fin-tech
/ healthcare
/ product development
/ software development
More systems we've delivered across regulated and high-load industries.
See all