EVA CTMS Archive — Clinical Data ETL Pipeline
Archivo EVA CTMS — Pipeline ETL de Datos Clínicos
The Problem
El Problema
A decommissioned Clinical Trial Management System left ~9,925 documents in inconsistently named folders, plus a separate 6,830-record patient database — with no archive structure. Everything had to be understood, cleaned, and validated before migration, without ever exposing patient data to an external AI or cloud service.
Un Sistema de Gestión de Ensayos Clínicos desmantelado dejó ~9,925 documentos en carpetas con nombres inconsistentes, más una base de datos de 6,830 pacientes — sin estructura de archivo. Todo debía entenderse, limpiarse y validarse antes de migrar, sin exponer nunca datos de pacientes a una IA o nube externa.
The Action
La Acción
I built a 10-stage local Python ETL pipeline: capture raw structure, crawl and classify every document, build a patient roster, clean the patient database, cross-validate documents against patients, generate a SharePoint build plan, and tag by study and deviation. The validation stage cross-checks each document's extracted patient ID against the real database.
Construí un pipeline ETL local de 10 etapas en Python: capturar la estructura, rastrear y clasificar cada documento, construir un registro de pacientes, limpiar la base de datos, validar los documentos contra los pacientes, generar un plan de SharePoint y etiquetar por estudio y desviación. La etapa de validación coteja el ID extraído de cada documento contra la base de datos real.
Tech Stack
Tecnologías
Python (pandas, openpyxl), Regex, JSON/YAML config, python-docx, SharePoint
Workflow
Flujo de Trabajo
Raw logs + patient DB → Clean & classify → Cross-validate → SharePoint archive
Logs + base de datos → Limpiar y clasificar → Validar → Archivo SharePoint
The Impact
Impacto
- Data integrity: caught 1,791 documents (18%) whose filename patient IDs matched no real patient — before migration, not after.
- Compliance: all processing local; PHI masked in every log; no patient data exposed to AI or cloud.
- Usability: delivered a searchable SharePoint archive with Patient Lookup and Deviation views staff had asked for.
- Integridad de datos: detectó 1,791 documentos (18%) cuyos IDs de nombre no coincidían con ningún paciente real — antes de migrar, no después.
- Cumplimiento: todo el procesamiento local; PHI enmascarado en cada registro; sin exponer datos a IA o nube.
- Usabilidad: un archivo SharePoint consultable con vistas de Búsqueda de Paciente y Desviaciones que el personal pedía.
What This Demonstrates
Lo que esto Demuestra
End-to-end ETL on messy, real-world clinical data — with validation that catches errors before they propagate, compliance built in by design, and a reproducible, documented, schema-driven pipeline.
ETL de extremo a extremo sobre datos clínicos reales y desordenados — con validación que detecta errores antes de que se propaguen, cumplimiento por diseño y un pipeline reproducible, documentado y guiado por esquema.